首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我在使用状态模型预测测试值时会收到这个错误?

为什么我在使用状态模型预测测试值时会收到这个错误?
EN

Stack Overflow用户
提问于 2020-12-20 19:31:10
回答 1查看 179关注 0票数 0

当我试图使用statsmodel .predict来预测我的测试值时,会出现一个错误。

代码:

代码语言:javascript
复制
X_train, X_test, y_train, y_test = train_test_split(X_new_np, y, test_size=0.2, random_state=42)
logit = sm.Logit(y_train, X_train)
reg = logit.fit_regularized(start_params=None, method='l1_cvxopt_cp', maxiter= 1000, full_output=1, disp=1, callback=None, alpha=.01, trim_mode='auto', auto_trim_tol=0.01, size_trim_tol=0.0001, qc_tol=0.03)
reg.summary()
y_pred_test = logit.predict(X_test)

错误:

代码语言:javascript
复制
ValueError: shapes (1000,61) and (251,61) not aligned: 61 (dim 1) != 251 (dim 0)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-20 20:23:08

你根本就不能从正确的对象来预测。reg是一个被安装的,你应该使用reg.predict。以下代码运行时没有错误(我使用了您的fit_regularized参数)。

代码语言:javascript
复制
from sklearn.model_selection import train_test_split
import numpy as np
from statsmodels.api import Logit

x = np.random.randn(100,50)
y = np.random.randint(0,2,100).astype(bool)

print(x.shape, y.shape)

X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=.2)

logit = Logit(y_train, X_train)
reg = logit.fit_regularized(start_params=None, method='l1_cvxopt_cp',
        maxiter= 1000, full_output=1, disp=1, callback=None,
        alpha=.01, trim_mode='auto', auto_trim_tol=0.01,
        size_trim_tol=0.0001, qc_tol=0.03)
print(reg.summary())
y_pred_test = reg.predict(X_test)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65383961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档