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
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sklearn.svm.SVR是scikit-learn库的一个支持向量回归模型。它用于解决回归问题,即根据给定的特征和目标变量,预测连续性数值输出。支持向量回归模型通过找到一个最优的超平面来拟合数据,使得拟合误差最小化。SVR模型的性能评价指标可以使用多种指标,比如均方误差(Mean Squared Error)和决定系数(R-squared)。 在使用SVR模型时,可以调整一些参数来优化模型的性能。一些常见的参数包括C、kernel、degree、gamma和tol等。其,C参数控制了模型的正则化程度,kernel参数选择了用于拟合数据的核函数,degree参数是多项式核函数的次数,gamma参数控制了核函数的宽度,tol参数是停止训练的容忍度。 在使用SVR模型时,可以根据具体的问题和数据特点来选择合适的参数值,同时也可以使用交叉验证等方法来进行参数调优,以提高模型的性能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [scikit-learn代码实现SVM分类与SVR回归以及调参](https://blog.csdn.net/qq_41076797/article/details/101037721)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [【Sklearn】【API详解】【SVM】- sklearn.svm.SVR参数详解(二)](https://blog.csdn.net/weixin_42279212/article/details/121550052)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值