본문 바로가기

Archive/데이터 분석 관련49

[Data] Data Clustering 정리 데이터 클러스티링이란? 비지도학습의 일종으로, 학습 데이터가 주어지지 않은 상태에서 유의미한 결과를 찾아내야 한다. 여기서 Clustering에서 하고 싶은 것은 주어진 데이터를 적당한 군집으로 나눠주고자 하는 것이다. 여러가지 방법이 있지만 크게 다음 두가지에 대해 정리하고자 한다. (1) K-means (K-means ++) (2) DBSCAN K-means K-means는 kNN과 유사한 방법을 사용한다. 구체적으로는 평균을 계속 적용하여 중심점을 지속적으로 조절하는 방법을 사용한다. 이를 통해 각 클러스터 내에서 분산을 최소화 해서 군집화 하는 방식이다. K-means의 작동 원리 (1) K값을 정해 몇 개의 클러스터로 나눌지 결정한다. (K값은 중심점의 개수가 된다) (2) 최초의 중심점은 랜덤.. 2021. 9. 30.
[Data] kNN 이해하기 및 활용 kNN 알고리즘 원리 kNN(k-Nearest Neighbor)은 분류 또는 회귀 모두에서 사용 가능한 모델이다. 일반적으로는 분류에서 사용하는 모델이나, 회귀에서도 kNN을 적용할 수 있다. kNN의 개념 kNN은 주어진 데이터셋에서 새로운 점이 들어왔을 때, 해당 점을 어떻게 분류할지에 대해 고려하는 것이 문제이다. 예를 들어, 다음과 같은 데이터 셋이 주어졌을 때 붉은색과 녹색으로 분류하는 문제를 고려하자. 여기서, 검은색 데이터가 새로 들어 왔을대를 고려할 때, k = 3이라면 검은색에서 가장 가까운 데이터 3개를 확인한다. 여기서는 빨강 1개, 초록 2개이니 검은색을 초록색으로 분류하게 된다. 모델 설계시 고려해야 할 사항 정규화 변수의 값이 적당히 퍼진 정도가 아니라, 매우 넓게 퍼진다면 편차.. 2021. 8. 28.
[Data] ROC Curve ROC Curve란? 임계값에서 분류 모델의 성능을 보여주는 그래프이다. 임계값 부근에서는 분류가 잘못 일어나는 경우도 발생하는데, 이에 대한 성능을 그래프를 통해 측정할 수 있다. 용어 정리 다시 한번, 이진 분류 문제에서의 용어를 정리해보자. 실제 양성 실제 음성 양성 판단 TP FP 음성 판단 FN TN TPR : 실제로 양성인 케이스를 양성으로 분류하는 정도 FPR : 실제로 음성인 케이스를 양성으로 잘못 분류하는 정도 ROC Curve 이해하기 ROC Curve는 임계값의 변화에 따른 FPR과 TPR의 변화를 살펴보는 것이 목적이다. 만일, 양성 클래스와 음성 클래스가 잘 분리되었다면, FPR대비 TPR값이 더 크게 나올 것이다. 이 그림을 통해 이해해보자. 임계보다 작으면 음성, 임계보다 크면.. 2021. 8. 24.
[Data] 로지스틱 회귀분석의 해석 및 개선 로지스틱 회귀 분석의 해석 scikit-learn 혹은 stat-models를 통해서 로지스틱 회귀 분석이 진행 가능하다. 이에 따라 나온 계수의 의미의 해석에 대해 확인하자. 여기서는 stat-model을 활용한다. import statsmodels.api as sm X = sm.add_constant(X_train_reg) model = sm.Logit(y_train, X) results = model.fit() # 결과 요약표 출력 results.summary() # 회귀 계수 출력 results.params stat_model을 통해서는 다음과 같이 로지스틱 회귀 분석을 진행할 수 있다. 이 때, 계수는 로지스틱에 log를 취한 값이기 때문에, 바로 오즈비로 해석을 하는 오류를 범해서는 안된다. .. 2021. 8. 23.
[Data] Ensemble - Gradient Boosting 앙상블 학습은, 기존에 배웠던 여러 학습 모델들을 결합하여 사용하는 방법이다. XGBoost, LightGBM에 대해 알아보기 전에, 먼저 Gradient Boosting부터 정리하고자 한다. Boosting이란? Boosting은 앙상블 학습의 일종으로, 약한 분류기를 결합하여 더 강한 분류기를 만드는 과정이다. 즉 이전 학습에서 오차가 심했던 데이터에 가중치를 주는 방식을 예로 들 수 있다. 이를 통해 오차를 계속 보완해 나가는 일련의 과정을 거치게 된다 Bagging 또한 여러 개의 모델을 만드나, 각각의 모델은 서로 영향을 주지 않고 임의로 데이터 세트를 생성하여학습하게 된다. Gradient Boosting이란? Gradient Boosting의 가장 기본은 '모델이 예측한 데이터의 오차'를 가.. 2021. 8. 2.
[Data] UnderSampling, OverSampling 개요 분류 문제, 특히 binary-classification 상황을 고려하자. class 0, 1이 5 : 5 정도로 깔끔하게 나오는 상황은 분포가 균일하므로 학습에 문제가 없을 것이다. 그러나 이상탐지 문제처럼 하나의 클래스의 비중이 매우 낮아, 데이터가 균일하지 않은 상황에 도달할 수 있다. 이 때는 모델의 학습이 제대로 이루어지지 않을 수 있다. 이 문제를 해결하기 위해 나온 개념이 오버샘플링, 언더샘플링이다. (사진 출처 : https://www.kaggle.com/rafjaa/resampling-strategies-for-imbalanced-datasets) 언더샘플링 imbalanced class 문제를 해결하는 하나의 방법은 언더샘플링(undersampling)이다. 이는 다수가 속한 cl.. 2021. 7. 31.