티스토리 뷰
TIL & WIL/Machine Learning
0502. 범주형 데이터/ One-Hot-Encoding(pd.get_dummies)/ RandomForest
니츄 2023. 3. 13. 23:03📝 모델의 성능 개선하기
- train_test_split() : 데이터셋 나누기
- pd.get_dummies() : One-Hot-Encoding
- RandomForestClassifier
📝 One-Hot-Encoding
- pd.get_dummies() 사용.
X = pd.get_dummies(X_raw)
- Ordinal encoding & One hot encoding : 범주형 변수를 수치형으로 변환하는 방법
- Ordinal encoding : 범주형 변수에 정해진 순서나 등급이 있을 때 사용. => 모델학습에 문제발생 가능성 O
- One hot encoding : 범주형 변수의 모든 값을 이진수(binary)로 표현. => 데이터 양 증가
📝 train과 test 데이터 나누기 : train_test_split()
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y,
stratify=y,
test_size=0.2,
random_state=42)
- train, test 어느 한 쪽이 더 많고 적고 하면 안 됨.
- 정답의 비율이 train, test가 비슷하게 나뉘도록 해주는 것이 stratify의 기능
- 클래스를 균형있게 나눠주면 학습과 예측에 도움이 된다.
📝 RandomForest로 예측하기
- n_estimators : 숲에 있는 나무의 수. ( int타입 / default=100 )
- criterion : 분할의 품질을 측정하는 피처. ( { 'gini', 'entropy', 'log_loss' } / default='gini' )
- max_depth : 트리의 최대 깊이. ( int타입 / default=None )
- min_samples_split : 내부 노드를 분할하는 데 필요한 최소 샘플 수 ( int 혹은 float 타입 / default=2 )
- max_features : 최상의 분할을 찾을 때 고려해야 할 피처의 수 (int 혹은 float 타입 / { 'auto', 'sqrt', 'log2' } / default='auto' )
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(random_state=42)
# 학습하기
model.fit(X_train, y_train)
# 실행하기
y_predict=model.predict(X_test)
# 정확도 평가하기
# 정확도(accuracy)는 성능 평가 기준 중 하나로, 전체 샘플 중에서 올바르게 예측한 샘플 수를 의미합니다.
(y_test == y_predict).mean()
# 모델 평가하기
# feature_importances_ 를 통해 모델의 피처 중요도를 추출합니다.
fi = pd.DataFrame(model.feature_importances_)
fi.index = model.feature_names_in_
fi = fi.sort_values(by=0)
※ 공부 마무리 : 주요 파라미터 알아두기 !
※ 더 알아볼 개념 : 랜덤포레스트
랜덤 포레스트란 무엇입니까?
홈 Reference Center 관련 용어 랜덤 포레스트란 무엇입니까? 랜덤 포레스트는 지도 머신 러닝 알고리즘입니다. 정확성, 단순성 및 유연성으로 인해 가장 많이 사용되는 알고리즘 중 하나입니다. 분
www.tibco.com
잠들기 전에 읽어보기 !
'TIL & WIL > Machine Learning' 카테고리의 다른 글
0601. ExtraTreesRegressor / CrossValidation / 회귀모델 평가 (0) | 2023.03.14 |
---|---|
0503. One-Hot-Encoding(Scikit-learn) / train 평가 / cross validation 기법 (0) | 2023.03.14 |
0501. Scikit-learn API기초 / DecisionTree (1) | 2023.03.13 |
머신러닝 분류 (2) (0) | 2023.03.09 |
머신러닝 분류 (1) (0) | 2023.03.07 |