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 中向其顯示了正確的響應。當我們想要使用新值進行預測時,我們的程序期望相同 - 一堆行。即使我們只想對一行執行此操作,該行也必須是另一個數組的一部分。
添加回答
舉報