【问题标题】:Scikit Learn SVM - Input typesScikit Learn SVM - 输入类型
【发布时间】:2017-10-11 17:13:31
【问题描述】:

我开始学习 Scikit 学习,但我对他们在所有教程中使用的鸢尾花日期或奥兰多房地产价格不感兴趣。这对我没有任何意义。我想使用自己的日期,但我不知道应该使用什么输入格式。

这是我的代码的外观:

import matplotlib.pyplot as plt

from sklearn import svm

clf = svm.SVC(gamma=0.001, C=100)

x,y = [[1,2], [2,4]]

clf.fit(x,y)

我总是收到消息:

ValueError:发现输入变量的数量不一致 样本:[1, 2]

我尝试了许多其他格式,例如 [[1],[1]] 或 1,1。

所以我的简单问题,我必须写这个吗 "x,y = [[1,2], [2,4]]" 用于我的数据?

另外,我如何训练模型进行预测,例如:我在一个联赛中有 10 个运动队。

在我的桌子上,我有: 团队 1 |团队 2 |结果 |位置

所以我想知道如果两支球队互相比赛谁会获胜,但当然地点可能是一个因素。

我想预测A队是否在主场迎战B队,谁更有可能获胜。

【问题讨论】:

    标签: python scikit-learn svm


    【解决方案1】:

    如何输入您的数据:

    您输入数据的方式x 仅包含具有 2 个特征的单个样本,而 y 提供 2 个标签。

    使用此表示法获取 2 个样本,每个样本具有一个特征:x,y = [[1],[4]],[2,4]

    或者,只是为了让它更明显:

    x = [[1],[4]]
    y = [2,4]
    

    顺便说一句:鉴于您是 Scikit 的新手,您绝对应该尝试对 Numpy 数组做同样的事情。

    进行分类:

    如果您想预测谁会获胜,您需要执行以下几个步骤:

      - 拆分您的数据,以便您的特征(“teamA”、“teamB”和“location”)包含在您的训练数据中,结果代表标签,例如:
    x = [[teamA1,teamB1,Loc1],[teamA2,teamB2,Loc2],[teamA3,teamB3,Loc3],...]
    y = [result1,result2,result3,...]
    
      - 像以前一样适合你的模型
      - 根据您的测试数据进行预测,例如:
    x_test = [teamX,teamY,locX]  # data for which you want the forecast
    clf.predict(x_test)          # this returns the estimated result
    

    【讨论】:

    • 好的,这行得通,谢谢。但是有没有办法解决广告 2 个或更多功能?
    • 解决方案是什么意思?你想根据这些数据做出预测吗?顺便说一句:如果有帮助,请随时接受我的回答;-)
    • 例如:我在一个联赛中有 10 个运动队。在我的桌子上,我有: 1 个团队 | 2 队 |结果 |地点。所以我想知道如果两支球队互相比赛谁会赢,但地点当然可能是一个因素。
    • 您能否相应地编辑您的问题,然后我将尝试编辑我的答案
    • 再次感谢您。这给了我: NameError: name 'teamA1' is not defined
    猜你喜欢
    • 2013-04-21
    • 2014-02-09
    • 2020-09-25
    • 2020-06-13
    • 2014-07-11
    • 1970-01-01
    • 2016-03-31
    • 2018-08-12
    • 2020-07-01
    相关资源
    最近更新 更多