使用RandomForestClassifier时Python出现”invalid index to scalar variable”错误

我在以下这行代码中遇到了”invalid index to scalar variable”错误:

predicted = [[index, x[1]] for index, x in enumerate(rf.predict(test), start = 1)]

我知道有类似的解决方案,但我需要在我的代码中输出一个包含两列的结果,第一列是索引,第二列是预测结果。因此,我使用了enumerate方法来从1到n计数索引,但我不知道如何修复这个错误,因为我对Python和列表推导式等内容还不熟悉。感谢任何帮助。

def main():        dataset = genfromtxt(open('train.csv', 'r'), delimiter = ',', dtype = 'int64')[1:]    target = [x[0] for x in dataset]    train = [x[1:] for x in dataset]    test = genfromtxt(open('test.csv', 'r'), delimiter = ',', dtype = 'int64')[1:]    rf = RandomForestClassifier(n_estimators = 1000, n_jobs = CPU)    rf.fit(train, target)    predicted = [[index, x[1]] for index, x in enumerate(rf.predict(test), start = 1)]    savetxt('submission_randomf2.csv', predicted, delimiter=',', fmt='%d,%f', header='ImageId,Label', comments = '')    if __name__ == "__main__":    main()   

回答:

这里rf.predict(test)是一个一维数组,因为输出维度为1(参见文档)。

尝试以下方法:

predicted = [[index, x] for index, x in enumerate(rf.predict(test), start = 1)]

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注