분류 전체보기 86

Linear Discriminant Analysis

Linear Discriminant  Analysis`Linear Discriminant Analysis (LDA)`는 분류와 차원축소에 사용되는 기법 중 하나입니다. 차원축소에 있어 LDA는 정사영(행렬 분해)을 통해 차원을 축소한다는 점에서 Principal Component Analysis (PCA)와 비슷하지만, 그 방향은 다소 다릅니다. PCA는 원본 데이터의 분산을 최대화하는 벡터를 찾고, LDA는 클래스 정보를 분할하기에 적합한 벡터를 찾아냅니다. 또한 분류 문제에서의 LDA는 지도학습의 일종으로, 두가지 클래스를 가장 잘 나누는 초평면을 구하는 방법으로 사용됩니다. 이 처럼 `LDA`는 결정경계의 추정, 분류 문제, 단순 차원축소등 활용가능한 범위가 넓습니다.ObjectivesClassif..

[Python] F1 Score, Zero Division

의미종종 sklearn.metrics.f1_score을 사용하여 F1 score를 계산 하다보면 발생하는 문제로, 아래와 같은 경고가 뜬다./usr/local/lib/python3.10/dist-packages/sklearn/metrics/_classification.py:1609: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no true nor predicted samples. Use `zero_division` parameter to control this behavior. _warn_prf(average, "true nor predicted", "F-score is", len(true_sum)..

정리 조금/Codes 2024.05.09

Molecular Descriptor

Molecular descriptor는 화학물질을 수학적인 처리가 가능하도록 표시하는 방법이다.이는 표기 차원에 따라 아래의 여러 종류로 나뉘어진다.0D-descriptors (i.e. constitutional descriptors, count descriptors)1D-descriptors (i.e. list of structural fragments, fingerprints)2D-descriptors (i.e. graph invariants)3D-descriptors (such as, for example, 3D-MoRSE descriptors, WHIM descriptors, GETAWAY descriptors, quantum-chemical descriptors, size, steric, sur..

Tanimoto Coefficient

Tanimoto Coefficient유사도를 측정하는 metric중 하나이다. Tanimoto coefficient (or similarity)는 화합물 사이의 유사도, 약물 유사도를 측정할때 많이 사용되는 방법이다. 사실 이 유사도는 Jaccard similarity의 continuous version으로, 그냥 Jaccard similarity로 표기하는 사람도 있다. Pearson correlation coefficient 와 point-biserial correlation coefficient 의 관계와 비슷하다. 두 집합의 교집합 크기를, 두 집합의 합집합 크기로 나눈 값으로 정의되며, 식은 아래와 같다.$$\frac{|A \cap B|}{|A \cup B|}$$직관적으로 A와 B사이에 얼마나 ..

Google Scholar sort by the Number of Citations

종종 새로운 분야에 대해 공부할 때에, 원문이 되는 논문을 공부한 뒤, 내가 공부하고싶은 파생 논문, 그리고 가장 인기있는 논문에 대해 공부한다. 구글 학술검색에서 기본적으로 앞의 두가지는 잘 검색하면 나오지만, 트렌드를 알기 위해서는 커뮤니티를 잘 뒤지거나, 피인용수와 년도를 비교하며 "트랜디"한 논문을 고른다. 하지만, 구글 학술검색에서는 이 기능을 제공하고 있지 않다. 이러한 검색에 대한 수요가 조금 있는지 아래의 깃헙에서는 검색어를 넣으면 자동으로 정렬해주는 프로그램을 만들어 소개하고 있다. 여기서는 colab으로 들어가서 프로그램 돌리고, .csv 결과 파일을 확인하면 된다. Default 설정으로 검색어 "deep learning", 정렬기준 "citations/years" 로 되어있다. 이 ..

유용한 사이트 2024.04.27

[Python] Jupyter Notebook, Virtual Environment Kernel

Intro가상환경을 사용하여 프로젝트 개발을 하려하는데, 동료에 따라 torch로 하는 경우도 있고 tensorflow로 하는 경우도 있다. 별 신경안쓰다가 torch로 실험하던 환경에서 tensorflow를 실행시켜 프로젝트 진행에 차질이 생긴적이 있었다. 둘 다 되게끔 하려다가 결국 기존의 패키지 버젼이 꼬이고, torch마저 돌아가지 않는 상황이 발생했다... 각각의 프로젝트에서 사용하는 버젼상 진짜로 이렇게도 맞지않는 경우도 있구나 싶다... 그리고 이런 이유에서 가상환경을 쓰는것인데, 나는 왜 알면서 꼭 겪어봐야 제대로 하는지...;; 무튼 이러한 분리된 두가지 프로젝트에서 작업이 가능하도록 쥬피터에서 가상환경의 커널을 연결하도록 하는 코드를 가져왔다. Code예를들어, proj1 이..

정리 조금/Codes 2024.04.24

[Python] ModuleNotFoundError: No module named 'tensorflow.keras'

tensorflow_addons은 tensorflow에서 지원하지 않는 다양한 방법이 들어있다. 이 프로젝트를 활용해야 할 때가 있어 아래와같이 불러오면 import tensorflow as tf import tensorflow_addons as tfa 이런 문제가 발생한다. ModuleNotFoundError: No module named 'tensorflow.keras' 나의 경우 이런 module없음 문제는 아래의 호환되는 짝을 찾아 다시 설치해주면 해결되었다. https://github.com/tensorflow/addons#python-op-compatibility-matrix GitHub - tensorflow/addons: Useful extra functionality for TensorF..

정리 조금/Codes 2024.04.23

parquet

Intro Parquet은 일반적으로 herringbone 스타일 패턴(V shape)으로 짜여진 바닥 나무 블록이다. 컴퓨터, 특히 data science에서 parquet은 종종 코드를 보다보면 데이터 포맷으로 등장하는데, 하둡에서 많이 사용되는 column-oriented 방식으로 압축 및 저장하는 형태이다. 이 방식은 기존의 방식보다 데이터를 효율적으로 처리 가능하다. Google research에서 2010년에 발표된 방법론 , " Dremel: Interactive Analysis of Web-Scale Datasets ", 에 영감을 받았다고 한다. Parquet Row-oriented & Column-oriented Parquet는 column-oriented 방법으로 row-oriente..

SplitFed

Intro SplitFed (SFL)은 Federated Learning (FL) & Split Learning (SL)을 합쳐놓은 방법론이다. 이 내용은 아래의 논문에 등장하는데, 호주 연방과학산업연구기구 (CSIRO)에서 출판한 논문이다. 사실 이 논문의 결과는 그닥 좋지 않다... Result 부분을 보고 리뷰할까 고민이 많이 됬던 논문이다. 뒤에 언급함... 그럼에도 읽다보니 구조적으로 활용하거나 여러 개념을 조립하여 적용 가능해보여서 결국 다 읽게 되었다. 여기 논문에서는 새로운 구조 제시와 privacy protecting methods에 집중하여 논문을 전개하는데, 오늘은 논문의 구조에 대해서만 집중하여 포스트를 올린다. 그리고 혹시 FL과 SL에 대해 잘 모르겠거나 읽다가 헷갈리신다면 아래..