美文网首页机器学习读书笔记
2.1.2.2支持向量机(回归)

2.1.2.2支持向量机(回归)

作者: idatadesign | 来源:发表于2017-11-19 14:40 被阅读82次

模型介绍:相必读者朋友已经对2.1.1.2支持向量机(分类)中提到的分类模型的作用机理有所了解。本节介绍的支持向量机(回归)也同样是从训练数据中选取一部分更加有效的支持向量,只是这少部分的训练样本所提供的并不是类别目标,而是具体的预测数值。

初始
from sklearn.datasets import load_boston
#从读取房价数据存储在变量boston中。
boston=load_boston()
#输出数据描述
print(boston.DESCR)

from sklearn.cross_validation import train_test_split
import numpy as np
X=boston.data
y=boston.target
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.25,random_state=33)

from sklearn.preprocessing import StandardScaler
#分别初始化对特征和目标值的标准化器
ss_X=StandardScaler()
ss_y=StandardScaler()

#分别对训练和测试数据的特征以及目标值进行标准化处理
X_train=ss_X.fit_transform(X_train)
X_test=ss_X.fit_transform(X_test)
y_train=ss_y.fit_transform(y_train)
y_test=ss_y.fit_transform(y_test)
使用三种不同核函数配置的支持向量机回归模型进行训练,并且分别对测试数据做出预测
from sklearn.svm import SVR

#使用线性核函数配置的支持向量机进行回归训练,并且对测试样本进行预测
linear_svr=SVR(kernel='linear')
linear_svr.fit(X_train,y_train)
linear_svr_y_predict=linear_svr.predict(X_test)

#使用多项式核函数配置的支持向量机进行回归训练,并且对测试样本进行预测
poly_svr=SVR(kernel='poly')
poly_svr.fit(X_train,y_train)
poly_svr_y_predict=poly_svr.predict(X_test)

#使用径向基核函数配置的支持向量机进行回归训练,并且对测试样本进行预测
rbf_svr=SVR(kernel='rbf')
rbf_svr.fit(X_train,y_train)
rbf_svr_y_predict=rbf_svr.predict(X_test)
对三种核函数配置下的支持向量机回归模型在相同测试集上进行性能评估
#使用R-squared,MSE,MAE指标对三种配置的支持向量机(回归)模型在相同测试集上进行性能评估
from sklearn.metrics import r2_score,mean_absolute_error,mean_squared_error

print('R-squared value of linear SVR is',linear_svr.score(X_test,y_test))
print('The mean squared error of linear SVR is',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(linear_svr_y_predict)))
print('The mean absolute error of linear SVR is',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(linear_svr_y_predict)))

R-squared value of linear SVR is 0.654497663771
The mean squared error of linear SVR is 26.7906984256
The mean absolute error of linear SVR is 3.41002068375

print('R-squared value of poly SVR is',poly_svr.score(X_test,y_test))
print('The mean squared error of poly SVR is',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(poly_svr_y_predict)))
print('The mean absolute error of poly SVR is',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(poly_svr_y_predict)))

R-squared value of poly SVR is 0.23496198912
The mean squared error of poly SVR is 59.3220377532
The mean absolute error of poly SVR is 4.19595019294

print('R-squared value of rbf SVR is',rbf_svr.score(X_test,y_test))
print('The mean squared error of rbf SVR is',mean_squared_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(rbf_svr_y_predict)))
print('The mean absolute error of rbf SVR is',mean_absolute_error(ss_y.inverse_transform(y_test),ss_y.inverse_transform(rbf_svr_y_predict)))

R-squared value of rbf SVR is 0.71072756206
The mean squared error of rbf SVR is 22.4305593192
The mean absolute error of rbf SVR is 2.81406224321

特点分析

本节首次向读者展示了不同配置模型在相同数据上所表现的性能差异。特别是除了2.1.1.2节支持向量机(分类)模型里曾经提到过的特点之外,该系列模型还可以通过配置不同的核函数来改变模型性能。因此,建议读者在使用时多尝试几种配置,进而获得更好的预测性能。

相关文章

  • 2.1.2.2支持向量机(回归)

    模型介绍:相必读者朋友已经对2.1.1.2支持向量机(分类)中提到的分类模型的作用机理有所了解。本节介绍的支持向量...

  • 机器学习(六)——支持向量机

    一、支持向量机的一般原理 支持向量机跟逻辑回归比较像。可以说,支持向量机是逻辑回归的一种优化或者扩展。因此,虽然说...

  • 基于sklearn的几种回归模型

    理论 支持向量机回归器 支持向量机回归器与分类器相似,关键在于从大量样本中选出对模型训练最有用的一部分向量。回归器...

  • 《机器学习》西瓜书学习计划

    第3章 线性模型:✅完成。对数几率回归 第6章 支持向量机:✅完成。【TODO】支持向量机学习笔记

  • 支持向量机

    支持向量机(SVMs)是一组用于回归、分类和异常值检测的监督学习方法。 支持向量回归(SVR) 支持向量分类的方法...

  • Sklearn各分类算法实现

    1、逻辑回归 使用逻辑回归来实现对癌症患者的分类: 2、支持向量机 本节使用支持向量机实现对手写数字的分类 3、朴...

  • SVR(Support Vactor Regerssion)支持

    支持向量机(SVM)本身是针对二分类问题提出的,而SVR(支持向量回归)是SVM(支持向量机)中的一个重要的应用分...

  • Python 数据科学手册 5.7 支持向量机

    5.7 支持向量机 支持向量机(SVM)是一种特别强大且灵活的监督算法,用于分类和回归。 在本节中,我们将探索支持...

  • 18、SVM(支持向量机)

    一、支持向量机SVM(support vector machine) SVC分类,SVR回归--统称SVM 支持向...

  • 统计学习方法8(1) - 8(8)笔记

    支持向量机的分类决策函数: 支持向量机和感知机、logistic回归的关系: ω和b都是n+1维,重点求这两个参数...

网友评论

    本文标题:2.1.2.2支持向量机(回归)

    本文链接:https://www.haomeiwen.com/subject/jkouvxtx.html