Вам необходимо разделить данные на тест и поезд (20:80) (например, test_train_split в sklearn), затем запустите модель с данными поезда и проверьте точность. Если это не то, что вы ожидаете, тогда вы можете попробовать применить Hyper-параметр Tuning.
Вы можете сделать это с помощью GridSearchCV, где вам нужно подобрать требуемый оценщик (в зависимости от типа проблемы) и значения параметров.
Прикрепленный пример кода:
from sklearn.model_selection import GridSearchCV
# Create the parameter grid based on the results of random search
param_grid = {
'bootstrap': [True],
'max_depth': [50, 55, 60, 65],
'max_features': ["auto","sqrt", 2, 3],
'min_samples_leaf': [1, 2, 3],
'min_samples_split': [2, 3, 4],
'n_estimators': [60, 65, 70, 75]
}
grid_search = GridSearchCV(estimator = rfcv, param_grid = param_grid, cv = 3, n_jobs = -1, verbose = 2)
grid_search.fit(X_train, Y_train)
grid_search.best_params_
На основе наилучших результатов параметров можно точно настроить поиск по сетке.
Например, если наилучшее значение параметра близко к 60 для n_estimators, то вам нужно изменить значения как окружающие на 60, например [50,55,60,60]. Чтобы выяснить точное значение.
Затем построите модель машинного обучения на основе наилучшего значения параметров. Оцените точность данных поезда, а затем спрогнозируйте результат, используя значения тестовых данных.
rf = rgf(n_estimators = 70, random_state=0, min_samples_split = 2, min_samples_leaf=1, max_features = 'sqrt',bootstrap='True', max_depth=65)
regressor = rf.fit(X_train,Y_train)
pred_tuned = regressor.predict(X_test)
Вы можете улучшить свою точность !!