我在此行中收到错误“标量变量索引无效”:
预测= [[index,x [1]]表示索引,x表示枚举(rf.predict(test),start = 1)]
我知道,有类似问题的解决方案,但我应该在我的代码中输出两个列的解决方案,其中第一个是索引,第二个是预测。所以,我使用枚举方法来计算从1到n的索引,我不知道如何修复我的错误,我不熟悉Python和list comphrehations之类的东西。谢谢你的帮助。
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()
答案 0 :(得分:1)
此处rf.predict(test)
是一维数组,因为输出维度为1(请参阅documentation)。
尝试以下方法:
predicted = [[index, x] for index, x in enumerate(rf.predict(test), start = 1)]