Как мне разделить мои данные для перекрестной проверки и поиска по сетке? - PullRequest
0 голосов
/ 23 октября 2019

Должен ли я разделить мои данные на две части, похожие по размеру, чтобы использовать каждую половину для задач eaxh, или я должен выполнить поиск по сетке по всем моим данным, а затем просто снова провести перекрестную проверку по всем моим данным, чтобы проверить мою точность?

1 Ответ

1 голос
/ 23 октября 2019

Вам необходимо разделить данные на тест и поезд (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)

Вы можете улучшить свою точность !!

...