정리 조금 47

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사이에 얼마나 ..

[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에 대해 잘 모르겠거나 읽다가 헷갈리신다면 아래..

Split Learning

Intro Federated Learning (FL)은 여러 기관이 raw data의 공유 없이 협업이 가능하도록 하는 형태의 학습전략이다. 구조상 FL은 distributed data에 대한 학습을 진행하여, 단일 머신에서의 학습의 결과와는 다소 차이를 보일 수 밖에 없다. Split Learning (SL)은 FL과 같이 raw data의 공유 없이 단일 머신에서의 학습과 같은 결과를 낼 수 있도록 새로운 접근법을 제시한다. SL을 공부하기 전에, 이름만 들어서는 SL의 "Split"은 무얼 쪼갠다는건지 감이 안왔다. 데이터을 쪼갠다는 의미일까? 그렇다면 sample을 쪼개는걸까, feature를 쪼개는걸까? 데이터를 숨겨서 보내는 걸텐데, 어떻게 쪼갠다는거지...? 여러 생각을 하며 논문을 읽기 시..

Federated Learning

IntroFederated Learning (FL) 연합학습이란 말 그대로 여러 device 혹은 기관 (client라고 부르는) 에서 협업하여 모델을 만드는 방법 중 하나로, 각각의 client별 민감한 자료를 중앙 서버로 직접 보내지 않아도 되는 특장점이 있다. 이 방법은 간단하면서도 논문대로라면 굉장히 강력한 학습방법이 될 것이라 생각된다. FL은 머신러닝 분야에서 비교적 최근 등장한 개념이다. 2016년 arxiv에 처음 등장하였고, Google에서 제시한 기법이다. 이 논문을 처음 본 2020년 즈음에 봤을때는 피인용수가 1500회정도 였던거로 기억하는데, 2024-04-03 기준으로 15000회 정도된다. 최근 지속적으로 각광받고 있다는 방증이기도 하다. 이번 포스터에서는 이 논문에 소개된 방..