나는 scikit-learn을 사용하여 임의의 숲을 실험하고 있으며 훈련 세트의 결과는 훌륭하지만 테스트 세트에서는 상대적으로 열악한 결과를 얻습니다 ...
내가 해결하려고하는 문제 (포커에서 영감을 얻음)는 다음과 같습니다 .A 플레이어의 홀 카드, B 플레이어의 홀 카드 및 플롭 (3 카드)을 고려할 때 어떤 플레이어가 가장 좋은 핸드를 가지고 있습니까? 수학적으로 이것은 14 개의 입력 (7 개의 카드-1 개의 등급과 각각에 대한 1 개의 벌)과 1 개의 출력 (0 또는 1)입니다.
지금까지 내 결과 중 일부는 다음과 같습니다.
Training set size: 600k, test set size: 120k, number of trees: 25
Success rate in training set: 99.975%
Success rate in testing set: 90.05%
Training set size: 400k, test set size: 80k, number of trees: 100
Success rate in training set: 100%
Success rate in testing set: 89.7%
Training set size: 600k, test set size: 120k, number of trees: 5
Success rate in training set: 98.685%
Success rate in testing set: 85.69%
사용 된 관련 코드는 다음과 같습니다.
from sklearn.ensemble import RandomForestClassifier
Forest = RandomForestClassifier(n_estimators = 25) #n_estimator varies
Forest = Forest.fit(inputs[:trainingSetSize],outputs[:trainingSetSize])
trainingOutputs = Forest.predict(inputs[:trainingSetSize])
testOutputs = Forest.predict(inputs[trainingSetSize:])
사용 된 트리 수에 관계없이 훈련 세트의 성능 은 비교적 큰 훈련 세트와 상당히 적은 수의 기능에도 불구하고 테스트 세트보다 훨씬 우수합니다 ...