scikit-learn에서 신경망을 사용해보기

소개



scikit-learn의 최신 버전에서 신경망을 사용할 수 있게 되어 있다는 이야기를 들었으므로 조속히 시험해 보았습니다.

버전 업



첫째, scikit-learn 버전을 제공합니다.
$ pip install scikit-learn --upgrade

라이브러리 로드



자세한 것은 이하의 URL을 참조해 주시면(자), 우선 회귀의 라이브러리를 읽어 봅니다.
from sklearn.neural_network import MLPRegressor

전력 수요를 예측해보기



앞에 된장이지만, 다음 기사에서 소개하고 있던 내용을 신경망에서 실행해 보겠습니다.

필요한 곳만 다시 쓰면 ...
from sklearn.neural_network import MLPRegressor

model = MLPRegressor(random_state=42)
model.fit(X_train, y_train)
print(model.score(X_test,y_test))

초기 값의 점수는 "0.77841866071119836"이었습니다.

숨겨진 레이어를 늘려보세요



초기 설정은 다음과 같습니다.
MLPRegressor(activation='relu', alpha=0.0001, batch_size='auto', beta_1=0.9,
       beta_2=0.999, early_stopping=False, epsilon=1e-08,
       hidden_layer_sizes=(100,), learning_rate='constant',
       learning_rate_init=0.001, max_iter=200, momentum=0.9,
       nesterovs_momentum=True, power_t=0.5, random_state=None,
       shuffle=True, solver='adam', tol=0.0001, validation_fraction=0.1,
       verbose=False, warm_start=False)

그래서 다음과 같이 다시 작성해 보겠습니다.
from sklearn.neural_network import MLPRegressor

model = MLPRegressor(hidden_layer_sizes=(100,100,100,100,),random_state=42)
model.fit(X_train, y_train)
print(model.score(X_test,y_test))

그러자 점수가 '0.83302793729266389'가 되었습니다(^-^)
상당히 현저하게 점수가 바뀌는군요.

덧붙여서, 예측 결과를 그래프화하면 이런 느낌.



그 밖에 변경해 보면, max_iter라든지 alpha라든지일까요.

좀 더 놀아 보겠습니다! !

좋은 웹페이지 즐겨찾기