Pythonsklearn.linear_模型:LinearRegression()值在.predict()时发生错误

2024-04-25 17:35:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我的训练矩阵X有形状(518219231),y是一个长度为5182的1和0的列表。我的测试矩阵有形状(4965477)。我把它们保存在单独的pickle文件中。这是我的代码:

def read(pklFile1):
    f=open(pklFile1, 'rb')
    Y = cPickle.load(f)
    f.close()
    return Y
if __name__ == '__main__':
    X=read("results/train_feature.pkl")
    y=read("results/train_label.pkl")
    test=read("results/test_feature.pkl")
    target=read("test_label.pkl")
    clf=LogisticRegression()
    clf=clf.fit(X, y)
    predicted= clf.predict(test)
    accuracy=np.mean(predicted == target)
    print accuracy

运行代码时,在运行
predicted = clf.predict(test)

ValueError: X has 5477 features per sample; expecting 19231

我怎样才能修好它?在


Tags: 代码testtargetreadtrain矩阵predictresults
1条回答
网友
1楼 · 发布于 2024-04-25 17:35:59

你训练了一个关于19231个特征的linar模型,但是想要预测一些只有5477个特征的新样本。这不是线性模型的工作原理(或大多数分类器)。功能的数量必须相同!在

你的线性模型由19231个变量的线性组合组成,它只对5477个变量起作用?如果某些变量在预测过程中未知,您可以对其进行插补(例如设置为零或均值),但即使是这种方法也需要知道变量的精确映射。列车中的哪个变量对应于预测中的哪个变量。在

相关问题 更多 >