RandomForest Высокий балл OOB против низкого балла проверки KFold - PullRequest
0 голосов
/ 31 января 2020

Я тренировал модель случайного леса с набором данных Titani c. Во многих статьях говорится, что нам не требуется перекрестная проверка для классификаторов RF, в то время как мало кто говорит, что вы можете использовать перекрестную проверку. Я попробовал оба, и я не знаю, что делать с оценками, и я подозреваю, что моя модель переоснащается, если используется без перекрестной проверки.

Показатель Oob модели равен 96,85, а средний показатель перекрестной проверки - 83,27 [Эта модель дает 74,01 если я поставлю оценку = 'f1']

Вот мой код,

from sklearn.ensemble import RandomForestClassifier

clf = RandomForestClassifier(n_estimators=10, random_state=44, oob_score=True)

clf.fit(titanic[features], titanic['Survived'])

clf.score(titanic[features], titanic['Survived'])

score : 0.9685746352413019

predictors = features
clf = RandomForestClassifier(random_state=10, n_estimators=10)
clf.fit(titanic[features],titanic["Survived"])

kf = KFold(n_splits=10)

scores = cross_val_score(clf, titanic[predictors], titanic["Survived"], cv=kf)

print(scores.mean())
score : 83.27

Может кто-нибудь, пожалуйста, пролить свет на этот счет?

Спасибо!

1 Ответ

0 голосов
/ 31 января 2020

clf.score не возвращает показатель OOB, а тот, который указан в данных тренировки.

Оценка OOB доступна с помощью метода clf.oob_score_.

...