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_iris


iris_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_iris


X,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_moons


X,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_moons

X,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 实现的是多层神经网络。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值