0netw0m1ra

[051] 분류모델 - LogisticRegression, KNeighborsClassifier, DecisionTreeClassifier, RandomForestClassifier, XGBClassifier 본문

빅데이터분석기사 실기

[051] 분류모델 - LogisticRegression, KNeighborsClassifier, DecisionTreeClassifier, RandomForestClassifier, XGBClassifier

M1RA 2022. 6. 22. 14:06

중요 1) score의 결과가 가장 높은 것이 좋음!!

중요 2) train과 test의 성능 차이가 크지 않은 것이 좋은 것!!

 

1. LogisticRegression

- 독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는데 사용되는 통계 기법

- https://ko.wikipedia.org/wiki/%EB%A1%9C%EC%A7%80%EC%8A%A4%ED%8B%B1_%ED%9A%8C%EA%B7%80

- 반복하면서 기울기 값을 갱신, 기울기 미분값이 0이 되는 지점을 찾음

- max_iter, tol 등을 변경하여 성능을 개선할 수 있음

- max_iter : 반복횟수

- tol : 허용오차, 반복을 중단하는 조건으로 사용됨

- panalty : panalty 종류

- C : panalty 세기

- LogisticRegression(penalty='l2', *, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state=None, solver='lbfgs', max_iter=100, multi_class='auto', verbose=0, warm_start=False, n_jobs=None, l1_ratio=None)

- from sklearn.linear_model import LogisticRegression

 

2. KNeighborsClassifier

- k 개의 근접 이웃을 확인하여 클래스를 선택

- n_neighbors 를 변경하여 성능 개선

- n_neighbors : 확인할 근접 이웃 개수

- KNeighborsClassifier(n_neighbors=5, *, weights='uniform', algorithm='auto', leaf_size=30, p=2, metric='minkowski', metric_params=None, n_jobs=None)

- from sklearn.neighbors import KNeighborsClassifier

 

3. DecisionTreeClassifier

- overfitting 경향 있음

- max_depth를 줄이는 방법으로 overfitting 해결

- DecisionTreeClassifier(*, criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0, class_weight=None, ccp_alpha=0.0)

- from sklearn.tree import DecisionTreeClassifier

 

4. RandomForestClassifier

- DecisionTreeClassifier를 100개 사용하는 앙상블 모델

- n_estimators의 개수를 늘리거나, max_depth의 숫자를 조절하는 방법으로 성능 조절 가능

- RandomForestClassifier(n_estimators=100, *, criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None, ccp_alpha=0.0, max_samples=None)

- from sklearn.ensemble import RandomForestClassifier

 

5. XGBClassifier

- 앙상블 모델 중 부스팅 방법을 적용한 모델

- XGBClassifier(max_depth=3, learning_rate=0.1, n_estimators=100, verbosity=1, silent=None, objective='binary:logistic', booster='gbtree', n_jobs=1, nthread=None, gamma=0, min_child_weight=1, max_delta_step=0, subsample=1, colsample_bytree=1, colsample_bylevel=1, colsample_bynode=1, reg_alpha=0, reg_lambda=1, scale_pos_weight=1, base_score=0.5, random_state=0, seed=None, missing=None, **kwargs)

- from xgboost import XGBClassifier

 

 

<출처>

인프런 - [EduAtoZ] 빅데이터분석기사 실기 대비 Part3. 분류모델-모델링 1/2, 분류모델-모델링 2/2

https://www.inflearn.com/course/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC