-
Machine Learning 실습 (16)Machine Learning 2022. 7. 18. 16:40
5. 모델링(분류 모델 사용하기)
- knn : K개의 최근접 이웃의 답을 확인하고 test를 예측하는 모델
- tree : yes 또는 no라고 대답하면서 예측해나가는 모델
- logistic regression : 선형 분류 모델
- svm : 서포트 벡터 머신
from sklearn.neighbors import KNeighborsClassifier # knn분류 모델 from sklearn.tree import DecisionTreeClassifier # tree 분류 모델 from sklearn.linear_model import LogisticRegression # Logi 분류 모델 from sklearn.svm import LinearSVC # svm 분류 모델 # 모델의 일반적인 성능 확인 => 교차검증 확인 from sklearn.model_selection import cross_val_score
# 1. 모델 생성 knn_model = KNeighborsClassifier(n_neighbors=5) # K == n_neighbors 5개 확인 # 거리를 계산해서 가장 가까운 값들의 답을 확인하고 투표하여 예측 tree_model = DecisionTreeClassifier() logi_model = LogisticRegression() svm_model = LinearSVC() # 하이퍼 파라미터 -> 모델 내부에 있으면서 과대적합을 제어하는 파라미터(사용자 지정)
import warnings # 경고창 없애기, 무시 warnings.filterwarnings(action = 'ignore') # 일반화 성능 검사 (교차검증) # 검증을 5번 실행했을때 모델이 가지는 일반적인 정확도 성능 정도 확인 knn_result = cross_val_score(knn_model, X_train, y_train, cv = 5) tree_result = cross_val_score(tree_model, X_train, y_train, cv = 5) logi_result = cross_val_score(logi_model, X_train, y_train, cv = 5) svm_result = cross_val_score(svm_model, X_train, y_train, cv = 5)
# 교차 검증 결과 확인 print('knn :', knn_result.mean()) print('tree :', tree_result.mean()) print('logi :', logi_result.mean()) print('svm :', svm_result.mean())
6. 스케일링
- 데이터의 범위(단위)를 조정하는 작업
from sklearn.preprocessing import MinMaxScaler
# 0 ~ 255 값들의 데이터 # 단위를 줄여주기 min_max_sc = MinMaxScaler() # 스케일링 도구 생성 # 데이터의 단위를 확인 - fit min_max_sc.fit(X_train) # 데이터의 단위를 변경 - transform() # train, test 단위 변경 X_train_sc = min_max_sc.transform(X_train) X_test_sc = min_max_sc.transform(X_test)
plt.hist(X_train_sc[0])
# 스케일링된 데이터로 교차검증 진행해보기 # svm 모델에 적용해보기 svm_result2 = cross_val_score(svm_model, X_train_sc, y_train, cv = 5) print('svm2', svm_result2.mean()) # 0.82 -> 0.86 # 모델의 성능 향상 1. 모델측면 -> 하이퍼파라미터조정 2. 데이터측면 -> 데이터수정, 추가
'Machine Learning' 카테고리의 다른 글
Machine Learning 실습 (18) (0) 2022.07.19 Machine Learning 실습 (17) (0) 2022.07.18 Machine Learning 실습 (15) (0) 2022.07.18 Machine Learning 실습 (14) (0) 2022.07.18 Machine Learning 실습 (13) (0) 2022.07.15