융무의 기술블로그
article thumbnail

순서와 상관없이 결승선을 통과하는 1등마, 2두마,3두마를 머신러닝을 활용해서 예측해보려고 한다.

모델을 randomforest모델과 LogisticRegression모델을 사용하였다.

각 1등말,2두마,3두마별로 RF모델을 적용하고

각 1등말,2두마,3두마별로 LR모델을 적용했다.

각 데이터의 결과를 보면 과적합이 된것을 볼 수 있다. 가중치를 주어서 과적합을 해결하려고한다.

각각의 모델에 class_weight = 'balanced' 를 적용시켜 가중치를 주었다.

https://scikit-learn.org/stable/modules/generated/sklearn.utils.class_weight.compute_class_weight.html

 

sklearn.utils.class_weight.compute_class_weight — scikit-learn 0.21.3 documentation

Parameters: class_weight : dict, ‘balanced’ or None If ‘balanced’, class weights will be given by n_samples / (n_classes * np.bincount(y)). If a dictionary is given, keys are classes and values are corresponding class weights. If None is given, the class w

scikit-learn.org

해당 코드에 대한 설명은 sklearn 공식 사이트에서 확인할수있다.

 

그결과 과적합이 되지않고 f1-score도 75%값을 얻었다.

전체 실험 결과 가중치를 두고 학습한 결과과 유의미하다고 판단하였고

 

ROC커브 결과 로지스틱 모델보다 랜덤포레스트모델이 더 성능이 좋다고 판단하였다.

 

경마 데이터 분석 프로젝트를 하면서 데이터를 직접 수집하고 분석하는 과정이 재밌었고 많은 공부가 되었던거 같다.

지금와서 보면 많이 손볼곳도 많지만 아직도 머신러닝에 대해서 더 공부하고 사이킷에 대해서 더 공부를 해야될거같다.

profile

융무의 기술블로그

@융무

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!