gpt4 book ai didi

python - 如何在 statsmodels (python) 中使模型适合我的测试集

转载 作者:太空狗 更新时间:2023-10-29 17:44:04 25 4
gpt4 key购买 nike

我正在研究逻辑回归模型,但我无法理解如何将训练集中的模型拟合到测试集中。抱歉,我是 python 的新手,也是 statsmodels 的新手..

import pandas as pd
import statsmodels.api as sm
from sklearn import cross_validation

independent_vars = phy_train.columns[3:]
X_train, X_test, y_train, y_test = cross_validation.train_test_split(phy_train[independent_vars], phy_train['target'], test_size=0.3, random_state=0)
X_train = pd.DataFrame(X_train)
X_train.columns = independent_vars
X_test = pd.DataFrame(X_test)
X_test.columns = independent_vars
y_train = pd.DataFrame(y_train)
y_train.columns = ['target']
y_test = pd.DataFrame(y_test)
y_test.columns = ['target']
logit = sm.Logit(y_train,X_train[subset],missing='drop')
result = logit.fit()
print result.summary()

y_pred = logit.predict(X_test[subset])

从最后一行开始,我得到这个错误:

y_pred = logit.predict(X_test[subset]) Traceback (most recent call last): File "", line 1, in File "C:\Users\eMachine\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\statsmodels\discrete\discrete_model.py", line 378, in predict return self.cdf(np.dot(exog, params)) ValueError: matrices are not aligned

我的训练和测试数据集具有相同数量的变量,因此我确信我误解了 logit.predict() 的实际作用。

最佳答案

有两种预测方法。

logit 在您的示例中是模型实例。模型实例不知道估计结果。模型预测具有不同的签名,因为它还需要参数 logit.predict(params, exog)。这主要对内部使用很有趣。

您需要的是结果实例 的预测方法。在你的例子中

y_pred = result.predict(X_test[subset])

应该给出正确的结果。它使用预测中的估计参数和解释变量的新测试数据 X_test。

调用 model.fit() 返回一个结果类的实例,该实例提供对额外的估计后统计和分析以及预测的访问。

关于python - 如何在 statsmodels (python) 中使模型适合我的测试集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23048690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com