SW/주가 예측

주식, 비트코인 예측 : 머신 러닝 알고리즘 성능 측정 : 방법, 분석, 특징

얇은생각 2019. 7. 6. 07:30
반응형

머신 러닝 모델 성능 측정

머신 러닝 모델의 성능을 측정하는 방법은 문제의 성격에 따라 달라집니다. 머신러닝 모델은 주가의 방향을 예측하는 분류자입니다. 상승과 하락 중 어느 쪽을 잘 맞추는 지 정확도와 재현율은 얼마나 되는지 알 수 있습니다. 그렇다면, 모델이나 전략을 수정해 더 높은 수익률을 기대할 수 있기 때문입니다. 


또한, 앞서 포스팅한 모델들은 각 머신러닝 알고리즘에 별도의 파라미터를 지정하지 않고 기본값을 사용했습니다. 그러나 더 좋은 성능을 올리기 휘해서는 적절한 파라미터를 설정해줘야 합니다.




혼동 행렬

혼동 행렬은 항목별 분류 결과를 테이블 형태로 표혀한 것입니다. 분할표라고도 합니다. 


주식, 비트코인 예측 : 머신 러닝 알고리즘 성능 측정 : 방법, 분석, 특징

혼동 행렬은 예측 정확도만으로 알 수 없는 머신러닝 모델의 예측 특성과 데이터 편향 등의 추가적인 정보를 알 수 있어 매우 유용한 도구입니다.


앞의 결과를 종합해서 학습에 사용된 데이터가 편향된 것은 아닌지, 파라미터 설정이 부적절한지, 적당한 크기의 데이터를 학습에 사용했는지를 판단해 볼 필요가 있습니다.




Classification Report

Classification Report는 sklearn에서 제공하는 기능입니다. 학습시킨 분류자들의 성능을 알기 쉽게 요약해줍니다. Recall, F1-score 등의 값을 제공해줍니다. 


주식, 비트코인 예측 : 머신 러닝 알고리즘 성능 측정 : 방법, 분석, 특징



precision은 정확도를 의미합니다. recall은 민감도라합니다. f1-score은 조화평균값을 의미합니다. support는 예측값에 대한 수를 나타냅니다. 




ROC 곡선

ROC 곡선은 혼동 행렬, Classification Report와 더불어 머신러닝 모델의 성능을 평가할 수 있는 또 하나의 유용한 도구입니다. ROC 곡선은 시각적으로 성능을 보여주어 직관적으로 이해하기 쉽습니다. 성능 평가에 사용한 데이터가 편향되었더라도 적용할 수 있습니다. 


주식, 비트코인 예측 : 머신 러닝 알고리즘 성능 측정 : 방법, 분석, 특징



AUC는 ROC 곡선의 면적을 의미합니다. 이 면적이 크면 클수록 우수한 성능을 가집니다. ROC 곡선은 학습시킨 분류자의 예측 성능에 대한 전체 궤적을 파악할 수 있으므로 이해해야 하는 개념입니다. 


주식, 비트코인 예측 : 머신 러닝 알고리즘 성능 측정 : 방법, 분석, 특징


또한, ROC 곡선은 예측 성능을 높이는 데 적당한 분계점이 무엇인지를 결정하는 데 사용할 수 있습니다.



def drawROC(self,y_true,y_pred):
false_positive_rate, true_positive_rate, thresholds = roc_curve(y_true, y_pred)
roc_auc = auc(false_positive_rate, true_positive_rate)
plt.title('Receiver Operating Characteristic')
plt.plot(false_positive_rate, true_positive_rate, 'b', label='AUC = %0.2f'% roc_auc)
plt.legend(loc='lower right')
plt.plot([0,1],[0,1],'r--')
plt.xlim([-0.1,1.2])
plt.ylim([-0.1,1.2])
plt.ylabel('Sensitivity')
plt.xlabel('Specificity')
plt.show()


관련 내용을 참조하여 공유합니다. 간단한 컨셉만을 정리하였지만, 다른 분들의 포스팅을 참조하여 해당 개념들을 더욱 깊이 공부하는 것도 좋을 것입니다.

반응형