0

我使用下面的訓練Logistic模型,從乳腺癌的數據,並僅使用一個功能「mean_area」如何預測使用statsmodels.formula.api(蟒蛇)

from statsmodels.formula.api import logit 
logistic_model = logit('target ~ mean_area',breast) 
result = logistic_model.fit() 

有一個內置的新值在訓練好的模型中預測方法。但是,它給出了所有訓練樣本的預測值。如下

predictions = result.predict() 

假設我想要一個新值的預測說30如何使用訓練的模型出來的價值? (而不是手動讀取係數和計算)

回答

0

您可以爲.predict()模型提供新值,如notebook中的輸出#11所示,來自單個觀測的文檔。您可以提供多個觀察值爲2d array,例如DataFrame - see docs

由於您使用的公式API,您的輸入必須在pd.DataFrame的形式,以便列引用是可用的。在你的情況下,你可以使用類似.predict(pd.DataFrame({'mean_area': [1,2,3]})

statsmodels.predict()使用用於不提供替代時作爲默認僅擬合觀測。

+0

感謝您的回答。我看了一下筆記本,但是在我的情況時,我試着給.predict(30),它拋出一個錯誤「‘詮釋’對象有沒有屬性'__getitem__」。 – Prag1

+1

您收到此錯誤,因爲'exog'參數必須是'陣列like',所以你必須使用'[30]'。數組有'getitem'方法,因爲它們可以包含在對比'int'多個項目。 – Stefan

+0

感謝當我嘗試.predict( [30])我得到以下錯誤「類型錯誤:列表索引必須是整數,而不是STR」。 – Prag1