본문 바로가기

MachineLearning14

# 9. 앙상블 기법 (Ensemble) 지난 포스트에서는 의사 결정 나무에 대해서 다루었다. 의사 결정 나무는 단 하나의 분류기를 사용하지만, 이번 포스트에서는 여러 분류기들을 결합한 방법인 앙상블 기법에 대해 다룰 것이다. 마치 오케스트라처럼 여러 악기가 모여 화음을 이루듯, 여러 분류기들을 결합하는 것이다. P.S) 이미지, 영상, 음성과 같은 비정형 데이터의 분류는 딥러닝이, 정형 데이터에서는 앙상블이 좋은 성능을 낸다. 우선 앙상블의 조합 기법 4가지를 간단하게 살펴볼 것이다. 1. Voting 기법 특징 1 : 서로 다른 알고리즘 결합 특징 2 : 전체 데이터 셋을 알고리즘 사이에서 공유 2. Bagging 기법 특징 1 : 같은 알고리즘 결합 특징 2 : 전체 데이터 셋에 대하여 Bootstraping sampling (복원 추출).. 2021. 10. 28.
# 8. 의사 결정 나무 (Decision Tree) 의사 결정 나무에 대한 내용을 다루기 이전에 지금까지 정리했던 내용을 큰 맥락으로 한번 짚고 넘어갈까 한다. 1. 전처리 1.1 encoding from sklearn.preprocessing import LabelEncoder from skelarn.preprocessing import OneHotEncoder 1.2 feature scaling from sklearn.preprocessing import StandardScaler from sklearn.preprocessing improt MinMaxScaler 1.3 학습 데이터 분리 & 교차검증 from sklearn.model_selection import train_test_split from sklearn.model_selection imp.. 2021. 10. 24.
# 6. 정확도와 오차행렬 (Accuracy and Confusion matrix) 이번 포스트에서는 모델의 성능을 평가하기 위한 지표에 대해서 알아볼 것이다. 그중에서 가장 직관적인 방법인 정확도와 정확도의 한계점을 보완하기 위한 오차행렬에 대해서 알아본다. 정확도는 실제 데이터와 예측 데이터가 얼마나 같은지를 판단하는 지표이다. 정확도의 공식은 다음과 같다. 정확도는 쉽고 직관적이지만, 불균형한 데이터 세트에서는 적절하지 않다. 예시를 들자면, 100개의 데이터중 True가 90개, False가 10개가 있다고 가정하자. 이러한 경우 무조건 결과를 True로 반환하는 경우 정확도는 90%가 된다. 정확도가 가지는 한계점을 극복하기 위해 여러가지 분류 지표를 적용해야 한다. 앞에서 언급한 여러가지 분류 지표의 기반이 되는 개념은 오차행렬에 대해서 알아보겠다. 오차행렬을 도식화하면 다음.. 2021. 10. 11.
# 5. Feature Scaling and Normalization (StandardScaler, MinMaxScaler) 서로 다른 변수의 값 범위를 일정한 수준으로 맞추는 작업을 feature scailing이라고 한다. 그에 대표적인 방법으로는 표준화(Standardization)와 정규화(Normalization)이 있다. 1. Standardization (StandardScalar) 표준화는 가우시안 정규 분포를 따르도록 데이터의 피처를 변환하는 작업이다. 여기서 가우시안 정규 분포는 평균이 0, 분산이 1인 분포를 의미한다. 서포트 벡터 머신, 선형회귀, 로지스틱 회귀에서는 데이터가 가우시안 정규 분포를 따르는 것을 가정한다. 표준화는 보통 하나의 데이터 그룹에 대해 표준화를 할 때 사용한다. 특정 데이터가 데이터 그룹에서 어느 위치에 있는지 파악하기 위함. $z_i = \frac{x_i - mean(x)} {s.. 2021. 4. 16.
# 4. Data Preprocessing (Label Encoder, One-Hot Encoder) 데이터 전처리는 머신러닝 알고리즘만큼 중요하다. 어떻게 처리하느냐에 따라 모델의 성능을 좌지우지 한다. 이번에는 사이킷런에서 제공하는 전처리 방법인 Label Encoder와 One-Hot Encoder에 대해 포스팅한다. # Label Encoding from sklearn.preprocessing import LabelEncoder items = ['TV', '냉장고', '전자레인지', '컴퓨터'] encoder = LabelEncoder() encoder.fit(items) labels = encoder.transform(items) print(labels) print(encoder.classes_) print(encoder.inverse_transform(labels)) >> [0 1 2 3] [.. 2021. 4. 13.
# 3. GridSearchCV GridSearchCV API는 교차검증을 기반으로 하이퍼 파라미터의 최적값을 찾는데 도움을 준다. (Grid는 격자라는 뜻으로, 촘촘하게 파라미터를 입력하면서 테스트를 하는 방식) 예를 들어, 결정 트리 알고리즘의 파라미터 조합을 찾는다고 가정해보자. 그럼 다음과 같은 파라미터가 필요할 것이다. grid_parameters = {'max_depth': [1, 2, 3], 'min_samples_split': [2, 3]} 최적의 파라미터 (max_depth, min_samples_split)의 값을 찾기 위해서는 for문을 사용하여 6번(3 * 2)에 걸쳐 하이퍼 파라미터를 변경하면서 교차 검증 데이터 세트에 수행 성능을 측정한다. 여기에 CV가 3회라면 3개의 폴딩 세트가 존재하므로 총 18번(6 *.. 2021. 4. 12.