728x90
결정트리(Decision Tree)
- 데이터 마이닝에서 일반적으로 사용되는 방법론
- 입력 변수를 바탕으로 목표 변수의 값을 예측하는 모델을 생성하는 것을 목표로 한다
- 수 많은 if절로 이루어져 있다고 생각하면 이해하기 쉬움
*장점
- 알고리즘의 동작과정이 직관적이다 -> 이해하기 쉽다
- 학습시간이 빠르다
- 개별 feature들을 판단하므로, 일반화가 필요하지 않다.
*단점
- 오버피팅에 빠지기 쉽다
==> 너무 세부적으로 나누어 진 트리는 결국 training data에만 맞추어지기 때문에 예측값의 정확도가 떨어질 수 있다.
*scikit-learn의 DecisionTree Estimator
from sklearn.tree import DecisionTreeClassifier #분류(classification) 문제에 사용
from sklearn.tree import DecisionTreeRegressor #회귀(regression)문제에 사용
dt_clf=DecisionTreeClassifier()
dt_rg=DecisionTreeRegressor()
#트레이닝 시키기
dt_clf.fit(X_train, y_train)
#예측하기
y_pred=dt_clf.predict(X_test)
#예측정확도
from sklearn.metrics import accuracy_score
accur=accuracy_score(y_test,y_pred)
*결측치 채우기
범주형 (categorical Column) : 제일 많이 나온 값으로 채운다.
dataset['column'].fillna(dataset['column'].decribe()['top'], inplace=True)
숫자형 (numerical Column) : 평균값으로 채운다.
dataset['column'].fillna(dataset['column'].mean(), inplace=True)
*컬럼을 String type -> int type으로 변경
=> 문자형태로 나타나던 값들을 int type으로 매핑하는 과정
from sklearn import processing
le=processing.LabelEncoder()
dataset['column']=le.fit(dataset['column']).transform(dataset['column'])
*중복되는 컬럼 삭제
drop_cols=["column","column"]
dataset=dataset.drop(drop_cols, axis=1)
728x90
'Machine Learning' 카테고리의 다른 글
[머신 러닝] 상관분석(Correlation Analysis) (0) | 2021.09.01 |
---|---|
[머신 러닝] K-Fold Cross Validation(K-Fold 교차검증) (0) | 2021.09.01 |
[머신 러닝] Scikit-learn (0) | 2021.09.01 |
Regression 알고리즘의 성능 평가 지표 (0) | 2021.08.22 |
[PANDAS] seaborn으로 데이터 분포 살펴보기 (0) | 2021.08.22 |