Python 中的 SVM 在拟合数据集时出错

SVM in Python Error in fitting dataset

我对整个 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:未知标签类型: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..... 后跟许多数字的数组。

我已经能够将这些函数与我制作的用作 "datasets" 的小数组一起用于测试。

如何使用 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