我对整个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()
我想让它预测新的价值,但我不确定如何去做。此外,当我试图适应它时,我收到了这个错误。
ValueError:未知标签类型:数组([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演示数据建模和预测,并提供测试集和训练集。
答案 0 :(得分:2)
波士顿数据集中的目标是连续的。您正在使用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