【问题标题】:Cryptic Error Message from Scikit Learn Svm Fit来自 Scikit Learn Svm Fit 的神秘错误消息
【发布时间】:2013-03-29 16:53:09
【问题描述】:

我正在尝试使用these docs 使用 scikit learn 训练支持向量机,但我收到一条我不理解的错误消息。我做错了吗?

这是我的脚本。这个想法是我有一个文件,其中每一行都是“标签数据”的形式。数据是一串零和一。

svm-learn.py

import os
import re
from sklearn import svm

classifier = svm.SVC()

data = open("sd19-train-binary.txt", "r")

labels = []
training_data = [] 
i = 0

for line in data:
    match = re.search("^(\S+) (\d+)", line)
    label = match.group(1)
    vector = list(match.group(2))
    vector = [int(x) for x in vector]
    labels.append(label)
    training_data.append([vector])
    i += 1
    if i > 100:
        break

classifier.fit(training_data, labels)   

当我运行它时,会发生这种情况:

$ python svm-learn.py
  Traceback (most recent call last):
    File "svm-learn.py", line 26, in <module>
      classifier.fit(training_data, labels)
    File "/Library/Python/2.7/site-packages/scikit_learn-0.14_git-py2.7-macosx-10.8-intel.egg/sklearn/svm/base.py", line 184, in fit
      fit(X, y, sample_weight, solver_type, kernel)
    File "/Library/Python/2.7/site-packages/scikit_learn-0.14_git-py2.7-macosx-10.8-intel.egg/sklearn/svm/base.py", line 228, in _dense_fit
      max_iter=self.max_iter)
    File "libsvm.pyx", line 53, in sklearn.svm.libsvm.fit (sklearn/svm/libsvm.c:1660)
  ValueError: Buffer has wrong number of dimensions (expected 2, got 3)

我的输入文件中的一行如下所示:

W 1111111111111100001111111100011111111111100011111110011111000111111111110111111111

这是用于 nist 特殊数据库 19 上的字形识别

【问题讨论】:

    标签: python image-recognition scikit-learn handwriting svm


    【解决方案1】:

    已修复,问题出在附件中。应该是

    training_data.append(vector)
    

    而不是

    training_data.append([vector])
    

    【讨论】:

      猜你喜欢
      • 2013-04-21
      • 2019-05-23
      • 1970-01-01
      • 2014-11-09
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      相关资源
      最近更新 更多