西瓜书第六章 支持向量机

6.1 间隔与支持向量

     分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开并选择泛化能力最强的划分超平面。划分超平面可通过如下线性方程描述,其中 W=(w_1;w_2;…;w_d)为法向量,决定了超平面的方向,b为位移项,决定了超平面与原点之间的距离。

image

     样本空间中,任意点 x 到超平面(w,b)的距离可写为

image

    假设超平面(w,b)能将训练样本正确分类,即对于(x_i,y_i)∈D,若y_i=+1,则有 wTx_i+b>0;若y_i=-1,则有wTx_i+b<0。令

image

    距离超平面最近的这几个训练样本点使得上式的等号成立,称为“支持向量”,两个异类支持向量到超平面的距离之和为

image

    被称为“间隔”margin,欲找到具有“最大间隔”的划分超平面,也就是找到约束参数w和b,使得γ最大,即:

image

    支持向量机(support vector machine)SVM的基本型如下:

image

 

6.2 对偶问题

   感觉学习知识不是一味的抄书转载别人的博客,好像博客转到自己名下了,就是学会了,要学会总结啊亲~

   毕业要求变高,一篇小论文不够啊~!

转载于:https://www.cnblogs.com/yiruparadise/p/6062253.html

### 西瓜第6.2支持向量机编程作业实现 #### 实现代码示例 以下是基于Python和支持库`scikit-learn`的支持向量机(SVM)简单实现,这可以作为完成西瓜中提到的SVM编程练习的基础[^1]。 ```python from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.svm import SVC import numpy as np # 加载数据集并划分训练测试集合 iris = datasets.load_iris() X = iris.data[:, [2, 3]] y = iris.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1) # 数据标准化处理 sc = StandardScaler() sc.fit(X_train) X_train_std = sc.transform(X_train) X_test_std = sc.transform(X_test) # 训练支持向量分类器模型 svm = SVC(kernel=&#39;linear&#39;, C=1.0, random_state=1) svm.fit(X_train_std, y_train) # 预测新样本类别 print(&#39;预测结果:&#39;, svm.predict([[7.1, 2.8]])) ``` 这段代码展示了如何加载Iris数据集的一部分,并利用这些数据来训练一个线性的支持向量机模型。通过调整参数如核函数(`kernel`)和惩罚系数(`C`),可以探索不同配置下的性能表现。 #### 关键概念解释 - **标准缩放**: SVM对于输入特征尺度敏感,因此通常需要先对原始数据做标准化转换,使得各维度具有零均值单位方差。 - **线性核函数**: 这里选择了最简单的线性决策边界;实际应用中可能还需要考虑其他类型的核函数(比如多项式、径向基等),以便更好地拟合复杂的模式分布。 - **超参数调节 (`C`)**: `C`控制着错误项的重要性程度——较小的值意味着更宽泛的间隔以及更高的容忍度对待错分情况;反之,则追求尽可能少的误判代价更大的复杂度提升。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值