如何定义列的团队成员资格

问题描述 投票:0回答:1

我从csv导入了一个数据集,其中包含了英雄联盟游戏(https://www.kaggle.com/datasnaek/league-of-legends)的匹配统计数据。 我想在冠军ID和比赛结果上应用机器学习算法。由于每个冠军ID列在一列中,我创建了2个列表(t1,t2),其中包含每个团队成员的冠军ID。

但是在调用knn.fit时,我收到错误消息“ValueError:设置一个带序列的数组元素”。 如果我理解正确KNN需要单个值而不是列表。但我不知道如何以我拥有团队成员资格的另一种方式对我的数据框建模。

data = pd.read_csv('resources/LoL/games.csv', delimiter=',')

data['t1'] = data[['t1_champ1id', 't1_champ2id', 't1_champ3id', 't1_champ4id', 't1_champ5id']].values.tolist()
data['t2'] = data[['t2_champ1id', 't2_champ2id', 't2_champ3id', 't2_champ4id', 't2_champ5id']].values.tolist()

reduceddata = pd.DataFrame(data[['t1', 't2']])
outcomes = data[['winner']]

X_train, X_test, Y_train, Y_test= train_test_split(reduceddata,outcomes['winner'], random_state=0)
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=1)
knn.fit(X_train, Y_train)
python pandas sklearn-pandas
1个回答
0
投票

我认为您只需要以这种方式选择列(功能):

reduceddata = data[['t1_champ1id', 't1_champ2id', 't1_champ3id', 't1_champ4id', 't1_champ5id', 't2_champ1id', 't2_champ2id', 't2_champ3id', 't2_champ4id', 't2_champ5id']]
outcomes = data['winner']

X_train, X_test, Y_train, Y_test= train_test_split(reduceddata, outcomes, random_state=0)
© www.soinside.com 2019 - 2024. All rights reserved.