【发布时间】:2016-04-07 18:24:52
【问题描述】:
当我尝试在 python 中实现一个简单的 svm 回归模型时,我能够预测整数值,但浮点值的预测不起作用。
代码:
from sklearn import svm
import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning)
import numpy as np
data = np.genfromtxt("a.csv", dtype=None, delimiter=',')
print data
X=data[:,0:1]
y=data[:,1]
clf =svm.SVC()
clf.fit(X, y)
m=clf.predict([1.2])
print m
错误:
Traceback (most recent call last):
File "svm3.py", line 10, in <module>
clf.fit(X, y)
File "/home/narayan/.local/lib/python2.7/site-packages/sklearn/svm/base.py", line 151, in fit
y = self._validate_targets(y)
File "/home/narayan/.local/lib/python2.7/site-packages/sklearn/svm/base.py", line 515, in _validate_targets
check_classification_targets(y)
File "/home/narayan/.local/lib/python2.7/site-packages/sklearn/utils/multiclass.py", line 173, in check_classification_targets
raise ValueError("Unknown label type: %r" % y)
ValueError: Unknown label type: array([ 3.6, 6.6, 9.9])
CSV 文件数据:
[[ 1.2 3.6]
[ 2.2 6.6]
[ 3.3 9.9]]
【问题讨论】:
-
对回归问题使用
svm.SVR而不是svm.SVC。 -
svm.SVC 运行整数值的原因是测试值集中的每个整数都被视为一个标签。在这种情况下,您正在执行分类任务。但是,如果您想执行回归,SVC 将无法完成这项工作。至于为什么 SVR 不起作用,我们还需要进一步调查。
标签: python regression svm