基于SVM-支持向量机解决波士顿房价预测回归问题

目录
认识SVM——支持向量机
SVM的"硬间隔"与"软间隔"
实战——SVM解决房价预测回归问题
认识SVM——支持向量机
什么是支持向量机
支持向量机(SVM),,基于线性划 分,输出一个最优化的 分隔超平面,该超平面不但能将两类正确分开,且使分类间隔 ()最大
注意: SVM的终极目标是求出一个最优的线性分类超平面
SVM的核函数

基于SVM-支持向量机解决波士顿房价预测回归问题

文章插图
当在低维空间中,不能对样本线性可分时,将低维空间中的点 映射到高维空间中,使 它们成为线性可分的,再使用线性划分的原理来判断分类边界 。这里有个问题:如果直接采用这种技术在高维空间进行分类或 回归,可能在高维特征 空间运算时出现"维数灾难"!采用核函数技术( trick)可以有效 地解决这样的问题 直接在低维空间用核函数,其本质是用低维空间中的更复杂的 运算代替高维空间中的普 通内积 。
常用的核函数
SVM的"硬间隔"与"软间隔"
硬间隔
当支持向量机(SVM)要求所有样本都必须划分正确,这称为 “硬间隔”(hard ) 。
软间隔
到目前为止,我们一直假定存在一个超平面能将不同类的样本 完全划分开 。然而,在现 实任务中往往很难确定合适的核函数使得训练样本线性可分(即使 找到了,也很有可能 是在训练样本上由于过拟合所造成的) 缓解该问题的一个办法是允许支持向量机在一些样本上出错 ,  这称为"软间隔"(soft ) 。
软间隔支持向量机的数学表达式为(L1正则):
或者(L2正则)
注意: 正则项前面的常数C , C越大说明相应的容错空间越?。鬋 取正无穷,则"逼迫"着每个ζ(也称为“松弛变量”)都必须等于 0 , 此时的SoftSVM就变成了HardSVM.
实战——SVM解决房价预测回归问题
SVM解决回归问题的关键思想
SVM解决回归问题的时候,期望里的样本点越多越好 。
中使用SVM解决回归问题,使用.svm.SVR(可以传 入不同的核函数)
【基于SVM-支持向量机解决波士顿房价预测回归问题】import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasets# 加载数据集boston = datasets.load_boston()# 加载波士顿房子数据集X = boston.data# 样本特征y = boston.target# 样本标签(房价)# 拆分数据集X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=666)# 使用SVR回归from sklearn.svm import SVRfrom sklearn.preprocessing import StandardScalerfrom sklearn.pipeline import Pipelinedef SVRCode():return Pipeline([("std",StandardScaler()),# 特征标准化("svr",SVR(kernel="rbf",C=15))# SVM解决回归问题])pipe = SVRCode()pipe.fit(X_train,y_train)# 按照Pipeline封装的操作顺序对训练集处理pipe.score(X_test,y_test)# 测试集上进行回归效果评价