sklearn.svm中LinearSVR(svm线性回归)、LinearSVC(svm线性分类)与SVC(svm分类)、SVR(svm回归)之间的区别
区别:
LinearSVC:
SVM线性分类器;用来实现线性的分类任务
"""鸢尾花数据集,执行一个分类问题"""import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC #线性SVM模型;
from sklearn.datasets import load_irisiris_data=load_iris()
print(iris_data["data"])
print("============================")
X=iris_data["data"][:,(2,3)] #取长度和宽度;
# y=iris_data["target"]
# print(y)
y=(iris_data["target"] == 2).astype(np.float64)#建立线性的模型:
svm_clf=Pipeline([#标准化("scaler",StandardScaler()),#svc 线性:("linear_svc",LinearSVC(C=1,loss="hinge"))] #C是软间隔参数;防止过拟合的现象;
)svm_clf.fit(X,y)
res=svm_clf.predict([[6.3,1.2]])
print("res:",res)
SVC:
可以用来实现非线性的分类任务,支持核技巧;可以添加多项式特征;
from sklearn.svm import SVC
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import make_moons,load_irisX,y=make_moons(n_samples=100,noise=0.15) #取样本数poly_svm_clf=Pipeline([("scaler",StandardScaler()),#添加核函数,多项式最高次为3("svm_clf",SVC(kernel="poly",degree=3,coef0=1,C=5))
])poly_svm_clf.fit(X,y)
LinearSVR:
SVM线性回归器;用来实现线性的分类任务;
from sklearn.svm import LinearSVR
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVR,SVC #支持多项式特征;
from sklearn.datasets import make_moonsX,y=make_moons(n_samples=100,noise=0.15) #加入噪音;svm_reg=LinearSVR(epsilon=1.5)
svm_reg.fit(X,y)
SVR:
可以用来实现非线性的回归任务,支持核技巧;可以添加多项式特征;
#使用SVR,支持核技巧:进行二分类问题
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVR,SVC #支持多项式特征;
from sklearn.datasets import make_moonsX,y=make_moons(n_samples=100,noise=0.15) #加入噪音;
#多项式特征是 kernel="poly" 核函数是将低维数据映射到高维数据; degree=2 C:软间隔系数;
svc_model=SVR(kernel="poly",degree=2,C=100,epsilon=0.1)
svc_model.fit(X,y)
核技巧:
核技巧,也就是核函数,如果数据集是比较低维的数据时,低维数据信息有些少,这时可以将低维的数据映射为高维的数据进行模型的训练。比如在低维空间进行分类比较困难,可以将数据映射到高维空间中,进行分类。
核函数:kernal参数;
kernel是svm中选择核函数的参数,其可选选项主要区别如下:
linear:线性核函数,是在数据线性可分的情况下使用的,运算速度快,效果好。不足在于它不能处理线性不可分的数据。
poly:多项式核函数,多项式核函数可以将数据从低维空间映射到高维空间,但参数比较多,计算量大。
rbf:高斯核函数(默认),高斯核函数同样可以将样本映射到高维空间,但相比于多项式核函数来说所需的参数比较少,通常性能不错,所以是默认使用的核函数。
sigmoid:sigmoid 核函数,sigmoid 经常用在神经网络的映射中。因此当选用 sigmoid 核函数时,SVM 实现的是多层神经网络。
sklearn.svm中LinearSVR(svm线性回归)、LinearSVC(svm线性分类)与SVC(svm分类)、SVR(svm回归)之间的区别相关推荐
- 利用进化算法+多进程/多线程来优化SVM中的两个参数:C和Gamma
该案例展示了如何利用进化算法+多进程/多线程来优化SVM中的两个参数:C和Gamma. 在执行本案例前,需要确保正确安装sklearn,以保证SVM部分的代码能够正常执行. 本函数需要用到一个外部数据 ...
- 机器学习中的数学基础(4.1):支持向量机Support Vector Machine(SVM)
SVM可以说是一个很经典的二分类问题,属于有监督学习算法的一种.看过那么多的博客知乎解释SVM我一定要自己总结一篇,加深一下自己的理解. 带着问题去读文章会发现,柳暗花明又一村,瞬间李敏浩出现在眼前的 ...
- R语言e1071包中的支持向量机:仿真数据(螺旋线性不可分数据集)、简单线性核的支持向量机SVM(模型在测试集上的表现、可视化模型预测的结果、添加超平面区域与原始数据标签进行对比分析)、如何改进核函数
R语言e1071包中的支持向量机:仿真数据(螺旋线性不可分数据集).简单线性核的支持向量机SVM(模型在测试集上的表现.可视化模型预测的结果.添加超平面区域与原始数据标签进行对比分析).如何改进核函数 ...
- SVM中的线性分类器
线性分类器: 首先给出一个非常非常简单的分类问题(线性可分),我们要用一条直线,将下图中黑色的点和白色的点分开,很显然,图上的这条直线就是我们要求的直线之一(可以有无数条这样的直线) 假如说, ...
- SVM中为何间隔边界的值为正负1
在WB二面中,问到让讲一下SVM算法. 我回答的时候,直接答道线性分隔面将样本分为正负两类,取平行于线性分割面的两个面作为间隔边界,分别为:wx+b=1和wx+ b = -1. 面试官就问,为什么是正 ...
- 机器学习——图解SVM中gamma和c参数的作用
参数c和gamma的作用 我们通过下图详解参数c的作用,首先我们以一个简单的线性分类器为例,上一个博客中我们知道影响分类器的主要因素是支持向量,即虚线上的样本,如下图可知: 但当正负样本的分布在如下情 ...
- 浅析SVM中的对偶问题
浅析SVM中的对偶问题 关于SVM对偶问题求解的博客有很多,但是关于为什么要进行对偶问题的分析却很零散,这里做一个总结 1. 为什么要研究对偶问题? 广义上讲,将原问题的研究转换为对偶问题的研究主要有 ...
- svm中的数学和算法
转载自:http://blog.csdn.net/sealyao/article/details/6442403 支持向量机(Support Vector Machine)是Cortes和Vapnik ...
- SVM中支持向量的通俗解释
SVM中的支持向量,最开始接触的时候没想明白为什么HingeLoss为0的点不考虑,明明这些才是足够优秀的点,后来想清楚,正是因为人家足够优秀,所以没有拿来划分的意义,要的就是那些离分界线最近的点.支 ...
最新文章
- 浅谈我的销售体会(一)
- redis的四大特性和原理
- Ionic4 Camera插件在iOS13上选取视频失败 上传时候提示权限不足
- 大陆集团:放弃内燃机,适用于高阶自动驾驶MK C1制动系统2020年国内投产
- 在继续之前,如何暂停我的Shell脚本一秒钟?
- srgan要训练多久_有氧运动要多久才开始消耗脂肪?
- 苹果手机的测距仪怎么用
- Java Serializable 序列化 与 对象克隆
- vant使用iconfont图标
- 什么是UL2809认证?
- 解决@Override错误
- CSS3动画实践——简易牛顿摆
- objective-C的内存管理机制琢磨不透
- 为什么这么多品牌迫切想要改变Logo?
- 合并Windows系统镜像教程
- 优化网页加载各项的讨论
- An Analysis of Scale Invariance in Object Detection – SNIP
- Matlab绘图-很详细,很全面
- 常用的人脸检测识别等数据集百度云下载
- 2021年读书总结(持续更新中)