Как использовать регрессор голосования для прогнозирования конкретного случая? - PullRequest
0 голосов
/ 06 февраля 2020

Я создал регрессор голосования из некоторых регрессоров, таких как

voting_regressor = VotingRegressor(estimators=[('xg',xgbregressor),('gb',gradient_boosting_regressor),('et',extra_trees_regressor),('rf',random_forest_regressor)]) voting_regressor.fit(X_train, y_train)

Регрессор хорошо предсказывает на тестовом наборе

y_pred = voting_regressor.predict(X_test)

, но когда я пытаюсь предсказать для конкретного экземпляра

voting_regressor.predict(X_test.iloc[0].values.reshape(1,-1))

отображается следующая ошибка

ValueError: несоответствие feature_names: ['yearpublished', 'minplayers', 'maxplayers', 'playingtime', 'minplaytime ',' maxplaytime ',' minage ',' users_rated ',' total_owners ',' total_traders ',' total_wanters ',' total_wishers ',' total_comments ',' total_weights ',' average_weight '] [' f0 ',' f1 ' , 'f2', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12', 'f13', ' f14 '] ожидаемые users_rated, total_wishers, yearpublished, maxplayers, maxplaytime, total_owners, total_weights, middle_weight, minplaytime, total_wanters, total_traders, время воспроизведения, minage, total_comments, minplayers во входных данных обучения не имели следующих полей: f9, f3, f13 , f0, f8, f4, f14, f5, f2, f6, f12, f11, f7, f10, f1

1 Ответ

0 голосов
/ 06 февраля 2020

Вы передаете pandas.Series вместо pandas.DataFrame при использовании iloc, когда требуются имена столбцов, как указано в ошибке.

Если вы хотите вернуть фрейм данных с одним примером, вы можете обернуть его с другим списком, подобным этому:

voting_regressor.predict(X_test.iloc[[0]])

Таким образом, имена столбцов сохраняются

Вы также можете указать много примеров, просто используя [0, 1, 2, 3].

...