【问题标题】:SVM in Python Error in fitting datasetPython 中的 SVM 拟合数据集时出错
【发布时间】:2016-05-17 08:20:36
【问题描述】:

我对整个 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...... 后面是一个由很多数字组成的数组。

我已经能够将这些函数与我制作的小数组一起用作测试的“数据集”。

如何使用 SVM 预测此数据集的新数据?我对这一切也不是很了解。

基本上我要做的是从波士顿获取数据集并为其预测新数据。交给我的任务是演示使用 SVM 进行数据建模和预测,并提供一个测试集和一个训练集。

【问题讨论】:

    标签: python machine-learning scikit-learn svm linear-regression


    【解决方案1】:

    波士顿数据集中的目标是连续的。您正在使用 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

    【讨论】:

    • 哦,太好了!谢谢。所以我打印(predictions_training_set)。打印出来的那个数组代表什么?这些是预测的新值吗?如果它们是我如何只预测一定数量的新值?抱歉所有问题,这对我来说都是新事物。
    猜你喜欢
    • 2018-07-11
    • 2019-09-12
    • 2020-03-25
    • 2014-02-05
    • 2018-03-15
    • 2015-03-25
    • 2011-12-22
    • 1970-01-01
    • 2017-10-15
    相关资源
    最近更新 更多