【问题标题】:How do I define team membership of columns如何定义列的团队成员身份
【发布时间】: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


    【解决方案1】:

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

    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)
    

    【讨论】:

    • 显然这是我第一次尝试时所做的,直到我注意到这只会将一堆 ID(冠军)应用于算法,而没有显示他们所属团队的特定上下文。跨度>
    猜你喜欢
    • 1970-01-01
    • 2016-09-09
    • 2012-07-06
    • 1970-01-01
    • 2018-07-01
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多