【发布时间】:2018-01-07 14:51:11
【问题描述】:
我一直在努力让我的 XGBoost 模型从文章的文本中预测文章的参与时间。首先,我得到一个代表我从文章中提取的特征的数据框,如下所示:
article_features = pd.concat([tfidf_df, numeric_df_normalized], axis=1)
然后我训练我的模型并获得相关的正确列(特征):
with open('correct_columns') as fp:
correct_columns = pickle.load(fp)
然后我检查所有必需的功能并将它们设置为0.0(如果它们尚未在article_features 中):
for col in correct_columns:
if col not in article_features.columns:
article_features[col] = 0.0
最后,我删除了从本文中提取的训练数据中不存在的特征:
for col in article_features:
if col not in correct_columns:
del article_features[col]
所以现在article_features 具有正确数量的特征。我尝试运行:
model.predict(article_features)
我得到:
ValueError: feature_names mismatch:...
所以我谷歌并尝试将我的数据框转换为:
model.predict(article_features.as_matrix())
但我得到了同样的错误。
然后我担心article_features 中的列顺序与correct_columns 不一样所以我做了:
article_features.sort_index(axis=1, inplace=True)
但是遇到了同样的错误。
知道如何解决吗?
谢谢!
【问题讨论】:
-
你是如何训练
model的?我的意思是其中使用了哪些功能?正是这些特征应该在预测过程中出现,否则就没有任何意义。