华邦网站鄂州网站建设网络公司
- 作者: 五速梦信息网
- 时间: 2026年03月21日 10:53
当前位置: 首页 > news >正文
华邦网站,鄂州网站建设网络公司,企业网站建设费用做管理费用吗,php做各种网站类型得模板文章目录 1 SVM相关概念1.1 SVM引入1.1.1 SVM思想1.1.2 SVM分类1.1.3 线性可分、线性和非线性的区分 1.2 SVM概念1.3 支持向量概念1.4 软间隔和硬间隔1.5 惩罚系数C1.6 核函数 2 SVM API使用2.1 LinearSVC API 说明2.2 鸢尾花数据集案例2.3 惩罚参数C的影响 1 SVM相关概念
1.1… 文章目录 1 SVM相关概念1.1 SVM引入1.1.1 SVM思想1.1.2 SVM分类1.1.3 线性可分、线性和非线性的区分 1.2 SVM概念1.3 支持向量概念1.4 软间隔和硬间隔1.5 惩罚系数C1.6 核函数 2 SVM API使用2.1 LinearSVC API 说明2.2 鸢尾花数据集案例2.3 惩罚参数C的影响 1 SVM相关概念
1.1 SVM引入
1.1.1 SVM思想
看一个故事故事是这样子的
在很久以前的情人节一位大侠要去救他的爱人但魔鬼需要大侠先攻克他设置的防线于是和他玩了一个游戏game。
魔鬼在桌子上似乎有规律放了两种颜色的球说“你用一根棍分开它们要求尽量在放更多球之后仍然适用。”
于是大侠这样放干的不错 然后魔鬼又在桌上放了更多的球似乎有一个球站错了阵营。 大侠苦思冥想似乎记得学过SVM技术于是就采用SVM试试。
这里的 SVM就试图把棍放在最佳位置好让在棍的两边有尽可能大的间隙。
现在即使魔鬼放了更多的球棍仍然是一个好的分界线。 在SVM 工具箱中有另一个更加重要的 trick招式 。 魔鬼看到大侠已经学会了前面一个trick于是魔鬼给了大侠一个新的挑战。 现在大侠没有棍可以很好帮他分开两种球了现在怎么办呢当然又想起了放大招—SVM。像所有武侠片中一样大侠桌子一拍球飞到空中。然后凭借大侠练就的轻功大侠抓起一张纸插到了两种球的中间。样本在二维空间线性不可分二维空间总解决不掉将样本映射到更高维的空间需要采用核函数。 现在从魔鬼的角度看这些球这些球看起来像是被一条曲线分开了。
最后魔鬼被折服了
再之后无聊的大人们把这些球叫做 「data」 把棍子叫做 「classifier」 , 最大间隙trick 叫做 「optimization」 拍桌子叫做 「kernelling」 , 那张纸叫做 「hyperplane」。
概念
超平面划分类别的边界类别之间的间隔样本到超平面的距离支持向量与超平面距离最近的向量样本核函数将样本映射到更高维空间的函数
1.1.2 SVM分类
支持向量机的基本模型是定义在特征空间上的间隔最大的线性分类器。它是一种二分类的模型当采用了核技巧之后支持向量机可以用于非线性分类。不同类型的支持向量机解决不同问题
1线性可分支持向量机硬间隔支持向量机
当训练数据线性可分的时候通过硬间隔最大化学习得到一个线性可分支持向量机。在分类间隔中没有划分错误的样本。
2线性支持向量机软间隔支持向量机
当训练数据近似线性可分时通过软间隔最大化学习一个线性支持向量机。在分类间隔中允许一部分样本划分错误。
3非线性支持向量机
当训练数据线性不可分的时候通过使用核技巧以及软间隔最大化学得一个非线性支持向量机。
1.1.3 线性可分、线性和非线性的区分
第一个图是线性可分我们借助线性可分支持向量机完成分类。第二个图是不能完全线性可分我们通过线性支持向量机解决。第三个图是完全线性不可分的需要借助非线性支持向量机分类。 通过上述描述我们抽象其中的蓝球和红球并将两种颜色的球转化为二维平面上的点坐标篮球映射为黑球红球映射为白球。使用直线H1H2和H3分类这两类颜色的球图中的H1不能很好的区分黑球和白球可以看到H2和H3都能很好的区分这两种颜色的球。 区分数据集 H2和H3这样的直线一样可以区分两种颜色的球体有很多种条直线虽然他们都能够很好的分类已经存在的黑球和白球也就是我们之前讲到的训练集分类效果很好训练误差为0。 但是不能保证这些超平面在未知的实例上运行效果会很好和上面魔鬼和大侠的例子一样当魔鬼放置更多的黑球或白球的时候我们提到的这些平面还能很好的让这些未知的球得到很好的分类吗 考虑泛化误差的影响。 根据在检验样本上的运行效果分类器必须从这些分类超平面中选择一个来表示它的决策边界。 满足这个条件的很多但是使得泛化误差最小的条件就是边际margin最大的情况。如左图的边际不及右边的边际margin大我们选择右边的图作为边界最好的划分。因为 在有新的点出现的时候左边图的边际会错误分类一些点而右侧就能很好的分类。
1.2 SVM概念
SVM全称是supported vector machine支持向量机即寻找到一个超平面使样本分成两类并且间隔最大。 超平面最大间隔
SVM学习的目的在于找到具有最大边缘的超平面。
原因因为最大边缘超平面可以使得我们的训练误差很小的情况下当有新数据的到来时也能使得测试误差达到最小。
1.3 支持向量概念
所有坐落在边际两边的超平面上的点被称作” 支持向量 (support vectors)。
如下图这两个特殊点是支撑我们构建最大边缘超平面的。这些点所在的边缘超平面上的点称为支持向量。下图中红色的点对右图中的红色的直线或平面有支撑作用这些点是关键点。而其点对最优超平面都没有影响。 1.4 软间隔和硬间隔
硬间隔指的是让所有的样本都不在最大间隔之间并位于正确的一边这就是硬间隔。如果出现异常值、或者样本不能线性可分此时硬间隔无法实现。 软间隔指的是我们容忍一部分样本在最大间隔之内甚至在错误的一边。相对来说软间隔可以应用在一些线性不可分的场景。 目标是尽可能在保持间隔宽阔和限制间隔违例之间找到良好的平衡。通过惩罚系数C来控制这个平衡C值越小则间隔越宽但是间隔违例也会越多。
1.5 惩罚系数C
在硬间隔的情况下我们只考虑如何使得间隔达到最大。在软间隔的情况我们即要考虑最大化间隔也要考虑到那些限制间隔违例的样本带来的损失。
C越大说明 违反限制间隔的样本点带来的损失就越大就要减少这些样本的数量所以间隔就要越小。 C越小说明 违反限制间隔的样本点带来的损失就越小可以适当增大间隔以增加模型的泛化能力。 1.6 核函数
核函数将原始输入空间映射到新的特征空间使得原本线性不可分的样本在核空间可分
2 SVM API使用
2.1 LinearSVC API 说明 class sklearn.svm.LinearSVC(C1.0) C:惩罚系数类似于线性回归中的正则化系数
LinearSVC API的使用方式 from sklearn.svm import LinearSVC mysvc LinearSVC(C30) mysvc.fit(X_standard, y) print(mysvc.score(X_standard, y)) 2.2 鸢尾花数据集案例
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score
from plot_util import plot_decision_boundary# 1.加载数据
X,yload_iris(return_X_yTrue)# print(y.shape)
print(X.shape)# 选择前0和1类的前两个特征
x X[y2,:2 ]
选择 0和1类
y y[y2]
print(y.shape)# 绘制原数据图像分布
plt.scatter(x[y0,0],x[y0,1],cred) plt.scatter(x[y1,0],x[y1,1],cblue) plt.show()# 2.数据的预处理
进行数据标准化
transform StandardScaler() x_trantransform.fit_transform(x)# 3.模型训练
设置惩罚系数
modelLinearSVC(C10)
model.fit(x_tran,y)
y_pred model.predict(x_tran)print(accuracy_score(y_pred,y))# 4.可视化
plot_decision_boundary(model,axis[-3,3,-3,3])
plt.scatter(x_tran[y0,0],x_tran[y0,1],cred)
plt.scatter(x_tran[y1,0],x_tran[y1,1],cblue)
plt.show()
鸢尾花数据展示 LinearSVC分类边界
2.3 惩罚参数C的影响
from sklearn.datasets import load_iris
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score
from plot_util import plot_decision_boundary,plot_decision_boundary_svc# 1.加载数据
X,yload_iris(return_X_yTrue)# print(y.shape)
print(X.shape)
x X[y2,:2] y y[y2]
print(y.shape)plt.scatter(x[y0,0],x[y0,1],cred)
plt.scatter(x[y1,0],x[y1,1],cblue) plt.show()# 2.数据的预处理 transform StandardScaler() x_trantransform.fit_transform(x)# 3.模型训练 modelLinearSVC(C30) model.fit(x_tran,y) y_pred model.predict(x_tran)print(accuracy_score(y_pred,y))# 4.可视化 plot_decision_boundary_svc(model,axis[-3,3,-3,3]) plt.scatter(x_tran[y0,0],x_tran[y0,1],cred) plt.scatter(x_tran[y1,0],x_tran[y1,1],cblue) plt.show()# 3.模型训练 modelLinearSVC(C0.01) model.fit(x_tran,y) y_pred model.predict(x_tran)print(accuracy_score(y_pred,y))# 4.可视化 plot_decision_boundary_svc(model,axis[-3,3,-3,3]) plt.scatter(x_tran[y0,0],x_tran[y0,1],cred) plt.scatter(x_tran[y1,0],x_tran[y1,1],cblue) plt.show()C 0.01 C 10
- 上一篇: 华邦网站263企业邮箱注册申请
- 下一篇: 华大基因 网站建设公司南京网站建设公司开发
相关文章
-
华邦网站263企业邮箱注册申请
华邦网站263企业邮箱注册申请
- 技术栈
- 2026年03月21日
-
花西子网络营销策划方案郑州seo排名哪有
花西子网络营销策划方案郑州seo排名哪有
- 技术栈
- 2026年03月21日
-
花生壳做网站缺点工业设计网站哪个最
花生壳做网站缺点工业设计网站哪个最
- 技术栈
- 2026年03月21日
-
华大基因 网站建设公司南京网站建设公司开发
华大基因 网站建设公司南京网站建设公司开发
- 技术栈
- 2026年03月21日
-
华久做网站wordpress 更改自带域名
华久做网站wordpress 更改自带域名
- 技术栈
- 2026年03月21日
-
华龙建设部网站查不到网页设计兼职收费标准
华龙建设部网站查不到网页设计兼职收费标准
- 技术栈
- 2026年03月21日
