【发布时间】:2018-11-05 21:51:31
【问题描述】:
我从 csv 导入了一个数据集,其中包含英雄联盟游戏的比赛统计数据 (https://www.kaggle.com/datasnaek/league-of-legends)。
我想在冠军 ID 和比赛结果上应用机器学习算法。
由于每个冠军 ID 都列在一个列中,因此我创建了 2 个列表 (t1, t2),其中包含每个团队成员的冠军 ID。
但在调用 knn.fit 时,我收到错误消息“ValueError: setting an array element with a sequence。”
如果我理解正确,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