본문 바로가기

[AI] - Machine Learning18

# 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.
# 2. Stratified K 폴드 이전 포스트에서 K 폴드에 대해서 알아봤다. K 폴드의 단점은 치중되어 있는 레이블 데이터 집합을 고려하지 못한 것이다. 이게 무슨 소리인지 극단적인 예시를 들어보겠다. 10 폴드인 상태에서 1억개의 레이블 데이터 세트(분류는 O와 X)가 있고 그중 1번째부터 10번째 데이터는 O, 나머지 9999만 9990개는 X이라고 가정하자. 첫 번째 폴드를 검증 데이터 세트로 사용했을 때 1천만개의 데이터중 10개의 O가 있다. 하지만, 두 번째 폴드부터는 검증 데이터 세트로 사용할 때 전부 X 밖에 없을 것이다. 이러한 상태를 imbalanced 하다고 표현한다. imbalanced 상태를 위해 적은 레이블을 고르게 분포한 뒤에 K 폴드를 적용한다. import pandas as pd import numpy a.. 2021. 4. 1.
# 1. 교차 검증 (K-폴드 교차 검증) 교차 검증은 오버피팅(Overfitting)을 방지하기 위한 프로세스 중 하나이다. 오버피팅이 발생하는 이유는 모델의 학습이 Training-Set에만 너무 의존되어 있기 때문에 일반화가 잘 이루어지지 않아 다른 데이터가 들어오면 성능이 떨어진다. 그래서 Training-Set을 Training-Set과 Validation-Set으로 세분화하는 것이 교차 검증이다. 이를 세분화해서 무엇을 하느냐? Training-Set으로 학습된 모델을 Test-Set으로 평가하기 전에 Validation-Set으로 평가하는 것이다. 즉, 모의고사를 본다고 생각하면 된다. 우선 K-폴드 교차 검증부터 확인해보겠다. Training-Set을 K등분한다. 예를들어, 100개의 Training-Set이 있다면.. K = 1(.. 2021. 4. 1.
#0. Scikit-learn의 주요모듈 예제 데이터 sklearn.datasets 사이킷런에 내장되어 있는 예제 데이터셋 피처 처리 sklearn.preprocessing 데이터 전처리에 필요한 다양한 가공 기능 제공 (원핫인코딩, 정규화, 스케일링..) sklearn.feature_selection 알고리즘에 큰 영향을 미치는 피처를 우선순위대로 셀렉션 작업을 수행하는 다양한 기능 제공 sklearn.feature_extraction.text sklearn.feature_extraction.image 텍스트나 이미지 데이터의 벡터화된 피처 추출 ex) 텍스트 데이터의 Count vectorizer, tf-idf vectorizer 피처 처리 & 차원 축소 sklearn.decomposition 차원 축소와 관련한 알고리즘 ex) PCA, N.. 2021. 4. 1.