【问题标题】:Scikit - 3D feature array for SVMScikit - SVM 的 3D 特征数组
【发布时间】:2013-07-04 15:15:49
【问题描述】:

我正在尝试在 scikit 中训练 SVM。我正在按照示例进行操作,并尝试将其调整为我的 3d 特征向量。 我尝试了页面http://scikit-learn.org/stable/modules/svm.html中的示例 它跑了过去。在修复错误时,我回到教程设置并发现:

X = [[0, 0], [1, 1],[2,2]]
y = [0, 1,1]
clf = svm.SVC()
clf.fit(X, y) 

工作时

X = [[0, 0,0], [1, 1,1],[2,2,2]]
y = [0, 1,1]
clf = svm.SVC()
clf.fit(X, y)

失败: ValueError: X.shape[1] = 2 should be equal to 3, the number of features at training time

这里有什么问题?这只是一个额外的维度...... 谢谢, 埃尔

【问题讨论】:

    标签: svm scikit-learn scikits


    【解决方案1】:

    运行后面的代码对我有用:

    >>> X = [[0,0,0], [1,1,1], [2,2,2]]
    >>> y = [0,1,1]
    >>> clf = svm.SVC()
    >>> clf.fit(X, y)
    SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,
      kernel='rbf', max_iter=-1, probability=False, shrinking=True, tol=0.001,
      verbose=False)
    

    当您使用 kernel="precomputed" 在 SVM 对象上调用 .predict() 时,该错误消息似乎应该实际发生。是这样吗?

    【讨论】:

    • 不幸的是没有,或者至少我没有添加这样的东西。您运行的是哪个 scikit 版本?我在这里运行 mac 的 macport 包。 py27-scikit-learn @0.13.1(python,科学)你认为它太旧了吗?
    • 0.13.1 是我正在运行的版本(也是最新版本)。您可以复制在 python 会话中运行此代码的输出吗?
    • 我敢打赌,我发现了错误。首先,它位于椅子和键盘之间。错误确实来自.predict。我忘记在预测调用中调整维度向量,并为 3d 训练的 SVM 提供 2D 向量。抱歉,但我想当一个人独自工作时会发生这种情况。 :P
    猜你喜欢
    • 2018-02-06
    • 2020-09-17
    • 2012-08-27
    • 2016-06-29
    • 2012-08-31
    • 2020-06-22
    • 2016-05-15
    • 2015-07-07
    • 2015-04-03
    相关资源
    最近更新 更多