我当前正在尝试在大熊猫数据框架上执行一个kfold,该数据框中读取来自CSV的大熊猫文件。不幸的是我遇到了错误:
"='int64')]在[列]中"
这是我的代码:
def getSlicesOfData(read_csv):
slice_training_data = read_csv[["player", "0", "1", "2", "3", "4", "5", "6", "7", "8"]]
slice_prediction_data = read_csv[["best_move"]]
return (slice_training_data, slice_prediction_data)
def getKFold(data_sliced):
kf = KFold(n_splits=10, random_state=None, shuffle=False)
return kf.split(data_sliced[0],data_sliced[1])
#return TimeSeriesSplit(n_splits=10, max_train_size=9)
if __name__ == "__main__":
read_csv = pd.read_csv('100games.csv')
data_slice = getSlicesOfData(read_csv)
for train_index, test_index in getKFold(data_slice):
x_train, x_test = data_slice[0][train_index], data_slice[0][test_index]
y_train, y_test = data_slice[1][train_index],data_slice[1][test_index]
尝试使用以下方式获取培训数据时我做错了什么:
x_train, x_test = data_slice[0][train_index], data_slice[0][test_index]
y_train, y_test = data_slice[1][train_index],data_slice[1][test_index]
您正在尝试在熊猫数据框架上执行k折,这就是问题所在。尝试将数据结构从熊猫更改为numpy,然后重新运行代码。最后,您可能需要将数据结构从Numpy更改为Pandas。
使用: data_slice[0].values[train_index]
尝试:
if __name__ == "__main__":
read_csv = pd.read_csv('100games.csv')
data_slice = getSlicesOfData(read_csv)
for train_index, test_index in getKFold(data_slice):
x_train, x_test = data_slice[0].values[train_index], data_slice[0].values[test_index]
y_train, y_test = data_slice[1].values[train_index], data_slice[1].values[test_index]
另请参见:https://stackoverflow.com/a/51091177/5025009
尝试iloc
。
x_train, x_test = data_slice[0].iloc[train_index], data_slice[0].iloc[test_index]
y_train, y_test = data_slice[1].iloc[train_index], data_slice[1].iloc[test_index]
我的意思是...这似乎对您的目标有一个公平的想法>
perhapos从3个最佳动作中计算出来,并为选择和执行每个人提供加权机会。
10分开没有随机混乱...
喜欢6拆分1.5随机和2个散装,它的性能可能会更好,因为...如果您的对手也采用了这些捷径,但设法使她运行。
在生活和巡回赛中,当您冒险稍微走路时,您的对手希望您使用典型的策略。不要。
我没有编码专家,但是从我知道的基本面来看,这还不够。它是一台计算机,您必须对您的结构非常明确