Я использую пакет случайной лесной регрессии в sklearn, python.Мой набор данных содержит 146 образцов для обучения и 38 образцов для тестирования.Я обучил модель, но я хочу построить график ошибок OOB с количеством деревьев, варьируя num_features.Кривая, которая дает наименьшую ошибку OOB для определенного числа деревьев, будет выбрана для оптимальных параметров модели для тестового набора.
Я рассчитал частоту ошибок OOB как (1-OOB оценка).Но частота ошибок OOB уменьшается с 0,8 до 0,625 для лучшей кривой.Это означает, что мой показатель OOB не сильно улучшается даже при большом количестве деревьев (300).Я хочу знать, следую ли я правильной процедуре, чтобы построить график ошибок OOB или нет.И как я могу улучшить производительность моей модели случайного леса
ensemble_clfs = [
("max_features=1",
RandomForestRegressor(n_estimators=125,max_depth=5,min_samples_split=6,
warm_start=True,max_features=1,min_samples_leaf=3,
oob_score=True,random_state=42)),
("max_features=2",
RandomForestRegressor(n_estimators=125,max_depth = 5,min_samples_split=8,
warm_start=True, max_features=2,min_samples_leaf=3,
oob_score=True,
random_state=42)),
("max_features=3",
RandomForestRegressor(n_estimators=125,max_depth
=5,min_samples_split=8,
warm_start=True, max_features=3,min_samples_leaf=3,
oob_score=True,
random_state=42))
]
error_rate = OrderedDict((label, []) for label, _ in ensemble_clfs)
min_estimators = 10
max_estimators = 300
for label, clf in ensemble_clfs:
for i in range(min_estimators, max_estimators + 1):
clf.set_params(n_estimators=i)
clf.fit(X, Y)
# Record the OOB error for each `n_estimators=i` setting.
''''''
oob_error = 1 - clf.oob_score_
error_rate[label].append((i, oob_error))
''''''
Я ожидаю, что частота ошибок OOB снизится настолько низко, насколько это возможно, может быть до 0,1, что говорит о том, что моя проверка точна.Так что я могу применить его к тестовому набору Коэффициент ошибок OOB с количеством деревьев