5일차: 비지도학습
5일차 요약
- 오전: 비지도학습 이론 수업 및 실습 코드 작성
- 오후: 팀별 프로젝트 아이디어 회의 진행
의사 결정 나무(Decision Tree)
- 데이터 전처리 필요없음
- 문자열 사용 가능
- 스케일링 필요 없음(일반적으로 현업에서는 의사 결정 트리 + a를 사용하기 때문에 스케일링은 하는 편)
- 이상치에 영향을 덜 받음
- 성능이 좋지는 않음
CART(Classification And Regression Tree)
- yes/no로 분리하는 의사결정트리 알고리즘 중 1개
- Infromation Gain: 질문을 통해 불순도의 차이가 생긴 것을 정보 이득, information gain 이라고 함
의사결정나무 모델 실습 코드
from sklearn.tree import DecisionTreeClassifier
clf = DecisionTreeClassifier(random_state=42)
clf = clf.fit(X_train, y_train)
의사결정나무 depth를 보면서 어떻게 이진으로 나누어지는지 시각화
from sklearn.tree import plot_tree
plot_tree(clf, feature_names = cols, filled=True)
plt.show()
Ensemble Learning(앙상블)
- 강력한 하나의 모델을 사용하는 대신 보다 약한 모델 여러 개를 조합하여 더 정확한 예측에 도움을 주는 방식
- 많은 모델이 있으므로 한 모델의 예측이 어긋나더라도 어느 정도 보정이 되는 효과가 있음
- 종류: 보팅, 배깅(랜덤 포레스트), 부스팅
군집화(K-means clustering)
PCA: 주성분 분석
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_p = pca.fit_transform(X_s)
k-means clustering
from sklearn.cluster import KMeans
km = KMeans(n_clusters=3)
km.fit(X_p)
실습 코드를 작성하는 시간이 많아짐에 따라 코드는 github에 따로 올려서 정리해야겠다..