4주차 일정
8/28 - 9/1 머신러닝
8/28-9/1 머신러닝
일주일 동안 머신러닝을 배우는 내가 머신러닝입니다.
사실 난 머신러닝 3트째라고 해도 과언이 아니다..
학교에서 전공 수업으로 처음 머신러닝을 배웠는데 당시에는 너무 어려워서 그냥 머신러닝이라는 4글자에 drowning..🥶
하지만 데청캠 이후로 재미(?)를 붙이게 되어 빅분기 공부하고 네이버 코칭스터디를 참여하면서 생존 swimming이 가능해졌다.
그러므로 이번 수업은 각종 모델들을 완벽하게 내 걸로 만들어 어디든지 적용할 수 있는 freestyle diving 선수로 거듭날 차례
이번주는 블로그 주인장 마음대로 수업에서 얻은 능력들을 요약해 봅니다.
5일간 같은 코드만 무한반복을 한 결과 이젠 눈 감고도 코드를 칠 수 있는 스킬 획득.
# 불러오기
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_absolute_error
# 선언하기
model = LinearRegression()
# 학습하기
model.fit(x_train, y_train)
# 예측하기
y_pred = model.predict(x_test)
# 평가하기
print('MAE:',mean_absolute_error(y_test, y_pred))
사실 평가지표가 뭐가 있는지는 다 알고 있지만 구체적인 의미나 해석방법은 항상 헷갈려서 어떤 게 1에 가까울수록 좋은 건지 검색하곤 했었는데 오늘부로 진화 완료.
- error들은 오차를 의미하므로 작을수록 좋음
- r2_score는 모델의 설명력을 의미하므로 클수록 좋음 → 평균보다 이만큼 잘했어요!
- recall: 실제 1인 것 중 1이라고 예측한 비율
- precision: 1이라고 예측한 것 중 실제 1인 확률
- 회귀모델에서 model.score는 r2_score와 같은 의미
- 분류모델에서 model.score는 accuracy와 같은 의미
항상 애를 먹었던 부분인 교차검증도 이젠 마스터 완.
from sklearn.model_selection import cross_val_score
cv_score = cross_val_score(model, x_train, y_train, cv=10, scoring='accuracy')
print(cv_score)
print(cv_score.mean())
성능 향상을 위해 매번 구글링 했던 랜덤 서치, 그리드 서치도 이젠 나라는 머신의 한 부분으로 장착.
from sklearn.model_selection import RandomizedSearchCV
param = {'n_neighbors': range(1, 101),
'metric': ['euclidean', 'manhattan']}
# 기본 모델 선언
knn_model = KNeighborsClassifier()
# RandomSearch 선언
model = RandomizedSearchCV(knn_model, param, cv=3, n_iter=20) # n_iter:선택할 조합 수
from sklearn.model_selection import GridSearchCV
param = {'n_neighbors': range(1, 101),
'metric': ['euclidean', 'manhattan']}
# 기본 모델 선언
knn_model = KNeighborsClassifier()
# RandomSearch 선언
model = GridSearchCV(knn_model, param, cv=3)
다음 주는 지금까지 귀로만^^ 공부한 딥러닝을 일주일간 배우게 된다.
이번에는 내 머릿속에 잘 안착시켜 오랫동안 집을 짓고 살 수 있도록 해줄 거다. 꼭.
혹시라도 내 손이 미끄러져 놓치려 해도 날 꼭 붙잡아주길 바란다. 딥러닝아.
반응형