我从一些回归器(例如,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,发布的年份,maxplayers,maxplaytime,total_owners,total_weights,average_weight,minplaytime,total_wanters,total_traders,游戏时间,minage,total_comments,minplayer在输入数据中
训练数据没有以下字段:f9,f3,f13,f0,f8,f4,f14,f5,f2,f6,f12,f11,f7,f10,f1
最佳答案
当使用pandas.Series
时(如果错误指示需要列名时),您将传递pandas.DataFrame
而不是iloc
。
如果要返回一个示例的数据框,则可以用另一个列表包装它,如下所示:
voting_regressor.predict(X_test.iloc[[0]])
这样可以保留列名
您也可以简单地使用
[0, 1, 2, 3]
指定许多示例。