Saya bereksperimen dengan hutan acak dengan scikit-belajar dan saya mendapatkan hasil yang bagus dari set pelatihan saya, tetapi hasil yang relatif buruk pada set tes saya ...
Inilah masalah (terinspirasi dari poker) yang saya coba selesaikan: Kartu hole pemain A, kartu hole pemain B dan flop (3 kartu), pemain mana yang memiliki kartu terbaik? Secara matematis, ini adalah 14 input (7 kartu - satu peringkat dan satu suit untuk masing-masing) dan satu output (0 atau 1).
Berikut adalah beberapa hasil saya sejauh ini:
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%
Berikut adalah kode yang relevan yang digunakan:
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:])
Tampaknya terlepas dari jumlah pohon yang digunakan, kinerja pada set pelatihan jauh lebih baik daripada pada set tes, meskipun set pelatihan yang relatif besar dan sejumlah kecil fitur ...