我对整个SVM和数据集的事情相当陌生。我做了很多研究,但我无法弄清楚问题是什么。
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn import svm
boston = datasets.load_boston()
X, y = boston.data, boston.target
clf = svm.SVC(gamma=0.001, C=100.)
clf.fit(X, y)
clf.predict()
我想让它预测新值,但我不确定如何去做。此外,当我只是试图适应它时,我会收到此错误。
值错误: 未知标签类型: array([ 24. , 21.6, 34.7, 33.4, 36.2, 28.7, 22.9, 27.1, 16.5, 18.9, 15., 18.9, 21.7, 20.4, 18.2, 19.9, 23.1, 17.5.....后面跟着一个由大量数字组成的数组。
我已经能够将这些函数与我制作的小数组一起使用,以用作测试的"数据集"。
如何使用 SVM 预测此数据集的新数据?我对这一切也没有太多了解。
基本上,我试图做的是从波士顿获取数据集并预测其新数据。交给我的任务是使用 SVM 演示数据建模和预测,并提供测试集和训练集。
波士顿数据集中的目标是连续的。您正在使用 svm。SVC,这是一种分类算法(支持向量分类)。您可以使用 svm 进行回归。此数据集上的 SVR。
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn import svm
boston = datasets.load_boston()
X, y = boston.data, boston.target
reg = svm.SVR(gamma=0.001, C=100.)
reg.fit(X, y)
predictions_training_set = reg.predict(X)
任何算法的predict
函数都将接受一个参数,即进行预测的数据集(X)。在上面的代码中,我为此使用了训练集。通常,您需要执行训练-测试拆分。cross_validation.training_test_split
功能很方便。http://scikit-learn.org/stable/modules/generated/sklearn.cross_validation.train_test_split.html