머신러닝

ㅇㅇ

 

학습 구분 상세 구분 종류
지도학습
(Supervised)
회귀(Regression) Linear Regression
Ridge Regression
Lasso Regression
Decision Trees Regression
Support Vector Regression
K-Nearest Neighbors Regression
Random Forests Regression
분류(Classification) Logistic Regression
Decision Trees Classifier
K-Nearest Neighbors Classifier
Random Forests Classifier
비지도학습
(Unsupervised)
군집화 K-Means clustering
DBSCAN
차원 축소 PCA

머신러닝 유형별 다양한 알고리즘들이다.

물론 이보다 훨씬 더 많고 상세한 분류 알고리즘들이 존재한다.

 

ㅇㅇ

 

독립 변수, 종속 변수 선택

 

필터 방법 설명
상관계수 기반 선택
(Correlation Coefficient)
연속형 변수와 연속형 타겟 간의 상관 관계를 측정하여 중요한 특성을 선택
카이제곱 검정 기반 선택
(Chi-square Test)
범주형 변수와 타켓 간의 관계를 평가하여 선택
분산 분석 기반 선택
(Variance)
분산이 낮은 특성, 정보가 적은 특성을 제거
정보 이득 기반 선택
(Information Gain)
각 특성과 타겟 간의 정보의 양을 측정하여 선택

어떤 컬럼을 선택할 지에 대한 방법 중 필터 방법(Filter Method)에 해당하는 방법이다.

통계적 특성에 기반하여 중요도를 평가하고, 특정 기준에 따라 변수를 선택하거나 제거한다.

변수 선택을 모델 학습과 독립적으로 수행한다.

 

래퍼 방법 설명
전진선택법
(Forward Selection)
가장 중요한 특성부터 하나씩 추가하면서 모델의 성능을 평가
후진제거법
(Backward Elimination)
모든 특성으로 시작하여 가장 덜 중요한 특성부터 하나씩 제거
단계적 선택법
(Stepwise Selection)
전진선택법과 후진제거법을 번갈아가면서 적용

어떤 컬럼을 선택할 지에 대한 방법 중 래퍼 방법(Wrapper Method)에 해당하는 방법이다.

특정 모델을 사용하여 다양한 특성 조합을 평가하고 가장 좋은 성능을 보이는 조합을 선택한다.

변수 선택 과정에서 모델 학습을 한다.

 

임베디드 방법 설명
L1 정규화
(Lasso)
회귀 모델에서 L1 정규화를 적용하여 특성 중 일부의 계수를 0으로 만들어 선택
L2 정규화
(Ridge)
L2 정규화를 통해 덜 중요한 특성의 영향력 감소
엘라스틱넷 Lasso와 Ridge의 조합
트리 기반 방법 트리 기반 모델로 특성 중요도를 계산하여, 이를 바탕으로 중요하지 않은 특성을 제거

어떤 컬럼을 선택할 지에 대한 방법 중 임베디드 방법(Embedded Method)에 해당하는 방법이다.

모델 학습 과정에서 변수 선택을 수행한다.

특정 알고리즘이나 특성 선택을 내장하고 있어 학습과 선택이 동시에 이루어진다.

 

차원 축소 방법 설명
주성분 분석
(PCA)
데이터의 분산을 최대화하는 새로운 축을 찾아 차원을 축소한다.
선형 판별 분석
(LDA)
클래스 구분을 최대화하는 축을 찾는 방법으로, 분류 문제에서 유용하다.

차원 축소 방법(Dimensionality Reduction)에 대한 설명이다.

특성의 수를 줄이는 접근 방식으로, 원래 특성을 사용하지 않고 주성분이라는 새로운 특성을 생성한다.

 

결측치 처리 방법 구체 방안 설명
결측치 제거 Listwise Deletion 결측치가 있는 행 전체를 제거하는 방법
Pairwise Deletion 분석에 사용하는 변수에 결측치가 있는 경우만 제거하는 방법
결측치 대체 특정 값 대체 특정 값(0, 1, -1 등)으로 대체하는 방법
대푯값 대체 평균값, 중앙값, 최빈값 등으로 대체하는 방법
회귀 대체 결측치가 있는 변수를 다른 변수의 값으로 예측하여 대체하는 방법
KNN 대체 K-최근접 이웃 알고리즘을 사용하여 유사한 샘플들의 값으로 대체하는 방법
전방값으로 채우기 시계열에서 이전 값으로 대체하는 방법
후방 값으로 채우기 시계열에서 다음 값으로 대체하는 방법
도메인 지식 활용하기 전문가의 판단으로 적절한 값으로 대체하는 방법

결측치 처리 방법에 따라서 분석 결과가 달라질 수 있으므로 가능하면 여러 방법을 시도 후 결과를 비교하며 선택한다.

 

ㅇㅇ

 

이상치 처리 설명
제거 확실한 이상치나 오류인 경우 해당 데이터를 제거
변환 로그 변환, 제곱근 변환, Box-Cox 변환 등을 통해 큰 값의 영향을 줄임
대체 평균/중앙값 대체, 이상치를 특정 한곗값으로 대체, 도메인 지식을 활용하여 수정 등의 방법으로 대체
모델링 이상치에 덜 민감함 모델링 기법을 사용(RandomForest, Boosting 모델 등)
스케일링 Robust 스케일링 사용
이는 이상치의 영향을 줄이기 위해 중앙값과 IQR을 사용하여 데이터를 스케일링하는 방법

 

ㅇㅇ

 

데이터 유형 특징 예시
수치형 데이터 연속형 데이터 셀 수 없는 수치형 자료 키, 몸무게, 기온
이산형 데이터 셀 수 있는 수치형 자료 나이, 판매량
범주형 데이터 순위형 데이터 순서가 있는 범주형 자료 등급, 학점
명목형 데이터 순서가 없는 범주형 자료 성별, 혈액형, 지역

범주형 데이터는 숫자 형태로 인코딩이 필요하다.

 

ㅇㅇ

 

종류 방법 적용 사례
표준화
(Standardization)
평균이 0, 분산이 1이 되도록 변환 - 선형회귀, 로지스틱회귀, SVM 등 대부분에 적합
- 데이터가 정규 분포를 따른다고 가정하는 경우
정규화
(Normalization)
데이터를 0과 1 사이 범위로 변환
음수가 있을 경우 -1에서 1사이로 변환
- KNN, SVM 등의 거리 기반 알고리즘을 사용하는 경우
- 데이터가 정규 분포를 따르지 않는 경우
- 신경망, 이미지 처리 등 0 ~ 1 범위가 중요한 경우
로버스트 스케일링
(Robust Scaling)
중위수(median)과 IQR(사분위수)를
사용하여 스케일링
- 이상치가 존재할 때 평균과 표준편차 대신에
  중위수와 IQR을 사용하여 이상치의 영향을 줄여야 하는 경우
로그 변환
(Log Transformation)
데이터의 값을 log 스케일로 변환 - 비대칭 분포인 경우
(데이터가 정규 분포에서 벗어나 한 쪽으로 치우친 경우)
- 양수에 대해서만 가능하다는 한계

피처 스케일링(Feature scaling)에 대한 설명이다.

특정 변수의 값이 서로 다른 범위에 있는 경우, 이를 동일한 범위로 조정하는 방법

수치형 변수의 범위, 분포가 차이나는 경우에 사용한다.

 

평가 방법 종류
회귀 MSE, MAE, RMSE, R^2
분류 Accuracy, Precision, Recall, Sensitivity, F1-score, ROC-AUC curve

ㅇㅇ

 

Scikit Learn

구분 모듈 함수 및 클래스
데이터 전처리 sklearn.preprocessing StandardScaler, MinMaxScaler, Robustscaler
데이터 분리
및 검증
sklearn.model_selection train_test_split, KFold, cross_val_scores
머신러닝 sklearn.linear_model LinearRegression, Ridge, etc...
성능 평가 sklearn.metrics mean_squared_error, etc...

00

 

구분 함수 설명
선형 회귀
예측기
fit(X_train, y_train) 모델 훈련
predict(X_test) 훈련한 모델 기반 결괏값 예측
score(X, y) 점수 산출
coef_ 모델의 회귀 계수
intercept_ 모델의 절편
표준화
변환기
fit(X_train, y_train) 변환기 학습
transform(X_test) 변환기로 변환
fir_transform(X, y) 학습 및 변환 동시 진행

ㅇㅇ

 

- Hamming Distance

- Euclidean Distance

- Manhattan Distance

- Minkowski Distance

 

00

00

+ Recent posts