목차
1. 분류
2. 회귀
3. 정리 및 예시
1. 분류
1.1 분류 모델
DecisionTreeClassifier | from sklearn.tree import DecisionTreeClassifier |
KNeighborsClassifier | from sklearn.neighbors import KNeighborsClassifier |
LogisticRegression | from sklearn.linear_model import LogisticRegression |
RandomForestClassifier | from sklearn.ensemble import RandomForestClassifier |
XGBClassifier | from xgboost import XGBClassifier |
LGBMClassifier | from lightgbm import LGBMClassifier |
# knn모델선언 예시
model = KNeighborsRegressor(n_neighbors=5)
# 학습
model.fit(x_train, y_train)
# 예측
y_pred = model.predict(x_test)
# 평가(r2)
print(r2_score(y_test,y_pred))
1.2 분류 평가
accuracy_score | from sklearn.metrics import accuracy_score | 실제 값을 정확히 예측한 비율 (TP+TN) / (전체) |
recall_score | from sklearn.metrics import recall_score | 실제인 것중 예측한 비율 TP / (TP+FN) |
precision_score | from sklearn.metrics import precision_score | 예측한 것중 실제인 비율 TP / (TP +FP) |
classification_report | from sklearn.metrics import classification_report | 각 클래스별 평가지표 |
confusion_matrix | from sklearn.metrics import confusion_matrix | 혼동 행렬 |
2. 회귀
2.1 회귀 모델
LinearRegression | from sklearn.linear_model import LinearRegression |
KNeighborsRegressor | from sklearn.neighbors import KNeighborsRegressor |
DecisionTreeRegressor | from sklearn.tree import DecisionTreeRegressor |
RandomForestRegressor | from sklearn.ensemble import RandomForestRegressor |
XGBRegressor | from xgboost import XGBRegressor |
LGBMRegressor | from lightgbm import LGBMRegressor |
2.2 회귀 평가
mean_absolute_error | from sklearn.metrics import mean_absolute_error |
오차 절대값의 평균 |
mean_squared_error | from sklearn.metrics import mean_squared_error |
오차제곱(SSE)의 평균 |
root mean_squared_error | mse에서 math.sqrt 혹은 **(1/2) | MSE에 루트 |
mean_absolute_percentage_error | from sklearn.metrics import mean_absolute_percentage_error |
오차 비율 |
r2_score | from sklearn.metrics import r2_score |
전체 오차 중에서 회귀식이 잡아낸 오차 비율 (MSE의 표준화된 버전, R2=1이면 MSE=0, R2 = SSR/SST = 1 - SSE/SST) |
3. 정리 및 예시
그 외에 필요한 것
가중치 확인 |
coef_ | model.coef_ | 회귀계수(=가중치) |
intercept_ | model.intercept_ | 편향 | |
스케일링 | 정규화 (Normalization) | from sklearn.preprocessing import MinMaxScaler |
각 변수의 값이 0과 1사이 값이 됨 (X-Xmin) / (Xmax - Xmin) |
표준화 (Standardization) | from sklearn.preprocessing import StandardScaler |
각 변수의 평균이 0, 표준편차가 1이 됨 (X-Xmean) / X(std) |
|
하이퍼파라미터 튜닝 | Random Search | from sklearn.model_selection import RandomizedSearchCV |
파라미터 값 범위에서 몇 개 선택 후 최선을 찾아냄 (n_iter 수행) |
Grid Search | from sklearn.model_selection import GridSearchCV |
파라미터 값 범위를 모두 사용 후 최선을 찾아냄 | |
결측치 처리 |
ffill / bfill | data.fillna(method='ffill', inplace=True) data.fillna(method='bfill', inplace=True) |
ffill : 바로 앞의 값으로 채우기 bfill : 바로 뒤의 값으로 채우기 |
선형 보간법 | data.interpolate(method='linear', inplace=True) | 선형을 유지하게 결측치 채움 | |
가변수화 (원핫인코딩) |
get_dummies | pd.get_dummies(titanic, columns=dumm_cols, drop_first=True) | 다중공선성을 없애기 위해 drop_first |
OneHotEncoder | from sklearn.preprocessing import OneHotEncoder ohe = OneHotEncoder(sparse=False) |
sparse=True가 디폴트(매트릭스를 반환) |
스케일링 예시
# 정규화
scaler = MinMaxScaler()
sclaer.fit(x_train)
x_train_s = scaler.transform(x_train)
x_test_s = scaler.transform(x_test)
하이퍼파라미터 튜닝 예시
from sklearn.svm import SVR
param_grid = {
'C': [0.1, 1, 10], # C 파라미터 범위 설정 (작은 값부터 큰 값까지)
'kernel': ['linear', 'rbf', 'poly'], # 커널 함수 설정
'epsilon': [0.1, 0.2, 0.5], # epsilon 파라미터 범위 설정
}
# SVR 모델 생성
model_dt = SVR()
# Grid Search 모델 생성
model = GridSearchCV(
model_dt, # 기본 모델 설정
param_grid, # 탐색할 하이퍼파라미터 범위
cv=5, # 5-폴드 교차 검증 사용
scoring='neg_mean_absolute_error', # 평가 지표 설정 (MAE의 음수값)
)
# 최적 파라미터
model.best_params_
# 최고 성능
model.best_score_
'KT AIVLE SCHOOL' 카테고리의 다른 글
[7주차] 시각지능 딥러닝 + 3차 미니프로젝트 (0) | 2023.10.30 |
---|---|
[6주차] 2차 미니프로젝트 (0) | 2023.09.24 |
[5주차] 딥러닝 (0) | 2023.09.11 |
[1-3주차] GIT, 단변량과 이변량 분석, 미니프로젝트(단일변수 분석) (0) | 2023.08.28 |
AIVLE SCHOOL을 시작하면서 (0) | 2023.08.28 |