시작하기무료로 시작하기

러닝 커브 만들기

하나의 하이퍼파라미터에 대해 매우 많은 값을 시험하면, 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.____
코드 편집 및 실행