해당 글은 코드잇 강의를 참고하여 작성되었습니다.
- 결정 트리와 앙상블
- 앙상블 : 여러 독립적인 객체들이 만들어내는 조화로운 단체
- in 결정트리 : 수많은 모델들을 만들고 이 모델들의 예측을 합쳐서 종합적인 예측을 하는 기법
- 랜덤 포레스트
- 트리 모델들을 임읭로 많이 만들어서 다수결 투표로 결과를 종합하는 알고리즘
- Bootstrapping : 갖고 있는 데이터 셋으로 (임의로)다른 데이터 셋을 만들어내는 방법 → 모든 모델을 정확히 똑같은 데이터 셋으로 학습시키면 결과 다양성이 떨어질 수 있기 때문이다.
- Bagging : Bootstrapping 데이터 셋을 만들어 내고, 모델들의 결정을 합치는 것
- bootstrapping을 사용해서 임의로 데이터 셋을 만들고, 결정 트리를 만들 때 속성을 임의로 여러 개를 골라 속성들의 불순도를 계산해 root 노드의 질문을 정하는 것을 반복해 결정 트리를 임의로 만들 수 있다. 이렇게 만든 모든 트리들을 랜덤 포레스트라고 한다.
- scikit-learn으로 랜덤 포레스트 만들기
ex)
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
import pandas as pd
# 데이터 셋 불러 오기
cancer_data = load_breast_cancer()
X=pd.DataFrame(cancer_data.data, columns=cancer_data.feature_names)
y=pd.DataFrame(cancer_data.target, columns=['class'])
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=5)
y_train = y_train.values.ravel()
model=RandomForestClassifier(n_estimators=10, max_depth=4, random_state=42)
model.fit(X_train,y_train)
predictions=model.predict(X_test)
score=model.score(X_test,y_test)
# 출력 코드
predictions, score
'데이터 > 머신러닝' 카테고리의 다른 글
실전 1.2 내용 기반 추천 (0) | 2021.07.26 |
---|---|
4.3 에다 부스트 (0) | 2021.07.26 |
4.1 결정 트리(Decision Tree) (0) | 2021.07.25 |
3.3 모델 평가와 하이퍼파라미터 고르기 (0) | 2021.07.24 |
3.2 정규화 (0) | 2021.07.24 |