ฉันกำลังทดลองกับป่าสุ่มที่มี scikit เรียนรู้และฉันได้รับผลลัพธ์ที่ยอดเยี่ยมจากชุดการฝึกอบรมของฉัน แต่ผลลัพธ์ที่ได้ค่อนข้างแย่ในชุดการทดสอบของฉัน ...
นี่คือปัญหา (ได้รับแรงบันดาลใจจากโป๊กเกอร์) ที่ฉันพยายามจะแก้ไข: เมื่อได้ไพ่ของผู้เล่น A, ไพ่ในหลุมของผู้เล่น B และไพ่ปัด (3 ใบ), ผู้เล่นคนไหนมีมือที่ดีที่สุด? ในทางคณิตศาสตร์นี่คือ 14 อินพุต (7 ใบ - หนึ่งอันดับและหนึ่งชุดสำหรับแต่ละคน) และหนึ่งเอาต์พุต (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:])
ปรากฏว่าไม่ว่าจะใช้ต้นไม้จำนวนเท่าใดประสิทธิภาพของชุดฝึกอบรมนั้นดีกว่าชุดทดสอบถึงแม้จะมีชุดฝึกอบรมที่ค่อนข้างใหญ่และมีคุณสมบัติจำนวนน้อยพอสมควร ...