러닝 커브 만들기
하나의 하이퍼파라미터에 대해 매우 많은 값을 시험하면, DataFrame 형태로는 한눈에 비교하기가 어렵습니다. 이전에 이를 분석하기 위한 좋은 요령을 배웠죠. '러닝 커브'라는 그래프는 특정 하이퍼파라미터를 증가시키거나 감소시켰을 때 최종 결과가 어떻게 달라지는지 잘 보여 줍니다.
이번에는 학습률(learning rate)을 몇 가지만 시험하는 대신, 넓은 범위에서 많은 값을 시험해 이 하이퍼파라미터의 영향을 쉽게 확인해 보겠습니다. NumPy의 유용한 함수 np.linspace(start, end, num)는 지정한 구간(start, end) 내에서 동일 간격의 값 num개를 생성합니다.
X_train, X_test, y_train, y_test 데이터셋이 제공됩니다.
이 연습은 강의의 일부입니다
Python에서의 하이퍼파라미터 튜닝
연습 안내
- 0.01에서 2 사이를 동일 간격으로 나눈 학습률 30개 리스트를 만드세요.
- 직전 연습 문제와 유사한 루프를 작성하되, 정확도 점수만 리스트에 저장하세요.
- 학습률과 정확도 점수를 그래프로 시각화하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Set the learning rates & accuracies list
learn_rates = np.linspace(____, ____, num=____)
accuracies = []
# Create the for loop
for learn_rate in learn_rates:
# Create the model, predictions & save the accuracies as before
model = GradientBoostingClassifier(learning_rate=____)
predictions = model.fit(____, ____).predict(____)
accuracies.append(accuracy_score(y_test, ____))
# Plot results
plt.plot(____, ____)
plt.gca().set(xlabel='learning_rate', ylabel='Accuracy', title='Accuracy for different learning_rates')
plt.____