2 回答

TA贡献1735条经验 获得超5个赞
game_stage在将变量传递给model.fit().
如果您像这样修改代码,则不会收到错误消息:
import pandas
from sklearn.tree import DecisionTreeClassifier
import numpy as np
# Read data
game_data = pandas.read_csv('game_data2.csv')
game_list = game_data.drop(columns=['n1', 'n2', 'n3', 'n4', 'n5', 'n6', 'n7', 'n8', 'n9', 'n10', 'n11', 'n12', 'n13', 'n14', 'n15'])
game_stage = game_data['STAGE']
# Reshape into 2D array using numpy
game_stage = np.asarray(game_stage)
# -1 means this dimension is inferred from the data
game_stage = game_stage.reshape(-1,1)
# Train model
model = DecisionTreeClassifier()
model.fit(game_stage, game_list)
# Prediction
predictions = model.predict([[1988]])
predictions

TA贡献1859条经验 获得超6个赞
您只需为 predict 方法提供相同的二维数组,但要处理一个(或多个)值。简而言之,您可以更换
[1988]
和
[[1988]]
它应该有效。
这个答案变得流行,所以我想我应该添加更多关于 ML 的解释。简短版本:我们只能对与训练数据 (X) 具有相同维度的数据使用预测。
在所讨论的示例中,我们在 X 中为计算机提供了一堆行,并在 y 中向其显示了正确的响应。当我们想要使用新值进行预测时,我们的程序期望相同 - 一堆行。即使我们只想对一行执行此操作,该行也必须是另一个数组的一部分。
添加回答
举报