728x90
반응형
0717 첫 머신러닝 수업
혼자 공부해 왔던 이후 처음으로 누군가에게 강습을 받는다는 생각에 살짝 떨렜다...
<Freeplane>
Freeplane을 이용한 마인드맵
강의에 대한 전체적인 개요를 볼 수 있었고, 링크까지 첨부되어 있어서 편리했다.
그래프도 넣을 수 있고( 그냥 사진이었나..), 수식까지 들어가있어서
연결고리를 한눈에 보기 좋았다.
<Orange3>
파이썬으로 머신러닝, 딥러닝 모델을 짜지 않아도 됨!
플로우차트 처럼 전체적인 구조를 이해하고 시각화 하는데에 좋다.
머릿속으로는 어떻게 모델을 쓰고 돌려야 할지 알지만 막상 코드로 치려니 나오지 않을 때
임의적으로? 한번 그림그려보듯이 써보면 좋을 듯 하다.
근데 설치하는데 너무 오래 걸림...
((실루엣기법))
$$\ s = (b - a)/max(a, b) /$$
머신러닝 강의 전체 일정에서 최종적으로 프로젝트를 팀별로 하나 완성해야 하는데
데이터 셋을 정하는데 힘들었다.
# 조건1 : 2-3메가 바이트 이상의 데이터 셋
# 조건2 : 1만줄 이상의 데이터 셋을 가질 것
# 조건3 : 15개 이상의 컬럼을 가질 것
등.. 한가지가 더 있었던거 같은데 기억이 안나네..
<과제>
그리드 서치를 이용한 LightGBoost 모델 만들기!
- 파라미터 값을 조정하여 높은 R2값이 나온 코드를 제출하라
pip install xgboost
pip install lightgbm
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from xgboost import XGBRegressor
from lightgbm import LGBMRegressor
df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/2017DC1-all.csv')
# 연속변수 타겟 VALP를 가지고 스케일 조정이 되지 않은 데이터셋인 house-unscaled-VALP.csv 불러오기
df.drop(['VALP_B1'], axis=1, inplace =True)
data= df.drop(['VALP'], axis=1)
target= df['VALP']
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test= train_test_split(
data, target, test_size=0.2, random_state=42)
from sklearn.metrics import r2_score
# 기본 lGBMRegressor 모델
from lightgbm import LGBMRegressor
from sklearn.metrics import r2_score
lgb = LGBMRegressor(random_state=0)
lgb.fit(X_train, y_train)
pred = lgb.predict(X_test)
print('r2: {0:.5f}'.format(r2_score(y_test, pred)))
#그리드 서치 실행
from sklearn.model_selection import GridSearchCV
from lightgbm import LGBMRegressor
lgb = LGBMRegressor()
parameters = {'colsample_bytree': [0.87, 0.88, 0.89, 0.9],
'learning_rate': [0.05, 0.1, 0.11],
'max_depth': [20],
'min_child_weight' : [4],
'n_estimators': [5000],
'subsample': [0.2],
'min_data_in_leaf': [10],
'min_samples_split':[4]
}
lgb_grid = GridSearchCV(lgb,
parameters,
scoring = 'r2',
cv = 8,
n_jobs = -1,
verbose=True)
lgb_grid.fit(X_train, y_train)
pred= lgb_grid.predict(X_test)
score= r2_score(y_test, pred)
print(score)
best= lgb_grid.best_params_
print(best)
-> 최대 잘나온 값 : 0.741
ㅜㅜ,,, 0.76 이 목표였는데 아쉽다..
728x90
반응형
'Machine Learning' 카테고리의 다른 글
[ML] 앙상블 기법 정리 (0) | 2024.10.30 |
---|---|
DevOps란? (1) | 2024.02.24 |
[Machine Learning] SMOTE (0) | 2023.07.23 |
[Machine Learning] Hyper Parameter 하이퍼 파라미터 (0) | 2023.07.23 |
[Machine Learning] Grid Search 그리드 서치 (0) | 2023.07.22 |