使用Python中的SVM拟合数据集时出现错误

我对SVM和数据集的使用还比较陌生。尽管我做了很多研究,但还是无法找出问题所在。

import matplotlib.pyplot as pltfrom sklearn import datasetsfrom sklearn import svmboston = datasets.load_boston()X, y = boston.data, boston.targetclf = svm.SVC(gamma=0.001, C=100.)clf.fit(X, y)clf.predict()

我希望它能预测新值,但我不太确定该怎么做。此外,当我尝试拟合数据时,遇到了以下错误。

ValueError: Unknown label type: 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 pltfrom sklearn import datasetsfrom sklearn import svmboston = datasets.load_boston()X, y = boston.data, boston.targetreg = 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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注