如何使用 statsmodels.formula.api (python) 预测新值

vis*_*may 5 python machine-learning scikit-learn statsmodels logistic-regression

我使用以下方法训练了逻辑模型,来自乳腺癌数据,并且仅使用了一个特征“mean_area”

from statsmodels.formula.api import logit
logistic_model = logit('target ~ mean_area',breast)
result = logistic_model.fit()
Run Code Online (Sandbox Code Playgroud)

在训练好的模型中有一个内置的预测方法。然而,这给出了所有训练样本的预测值。如下

predictions = result.predict()
Run Code Online (Sandbox Code Playgroud)

假设我想要一个新值的预测,比如 30 我如何使用经过训练的模型来输出值?(而不是手动读取系数和计算)

Ste*_*fan 6

您可以向模型提供新值,如本笔记本中单次观察文档.predict()中的输出 #11 所示。您可以提供多个观察结果,例如 a - see 文档2d arrayDataFrame

由于您使用的是公式 API,因此您的输入需要采用 a 形式,pd.DataFrame以便列引用可用。在你的情况下,你可以使用类似的东西.predict(pd.DataFrame({'mean_area': [1,2,3]})

statsmodels .predict()当没有提供替代方案时,仅使用用于拟合的观测值作为默认值。