爲了讓我的XGBoost模型能夠從文本中預測文章的參與時間,我正在苦苦掙扎。首先,我得到代表我從文章中這樣提取的特徵數據框: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
最後,我刪除了爲Extrac功能泰德從這篇文章沒有訓練數據存在:
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.sort_index(axis=1, inplace=True)
,但得到了同樣的錯誤:
一樣correct_columns
所以我做了我當時在article_features
不是擔心列的順序。
任何想法如何解決?
謝謝!
你是如何訓練'model'?我的意思是哪些功能在那裏被使用?確切地說,這些特徵應該在預測期間存在,否則就沒有任何意義。 –