当前位置:   article > 正文

sklearn.svm中LinearSVR(svm线性回归)、LinearSVC(svm线性分类)与SVC(svm分类)、SVR(svm回归)之间的区别_sklearn.svm svr

sklearn.svm svr

区别:

LinearSVC:

SVM线性分类器;用来实现线性的分类任务

  1. """鸢尾花数据集,执行一个分类问题"""
  2. import numpy as np
  3. from sklearn.pipeline import Pipeline
  4. from sklearn.preprocessing import StandardScaler
  5. from sklearn.svm import LinearSVC #线性SVM模型;
  6. from sklearn.datasets import load_iris
  7. iris_data=load_iris()
  8. print(iris_data["data"])
  9. print("============================")
  10. X=iris_data["data"][:,(2,3)] #取长度和宽度;
  11. # y=iris_data["target"]
  12. # print(y)
  13. y=(iris_data["target"] == 2).astype(np.float64)
  14. #建立线性的模型:
  15. svm_clf=Pipeline([
  16. #标准化
  17. ("scaler",StandardScaler()),
  18. #svc 线性:
  19. ("linear_svc",LinearSVC(C=1,loss="hinge"))] #C是软间隔参数;防止过拟合的现象;
  20. )
  21. svm_clf.fit(X,y)
  22. res=svm_clf.predict([[6.3,1.2]])
  23. print("res:",res)

SVC:

可以用来实现非线性的分类任务,支持核技巧;可以添加多项式特征;

  1. from sklearn.svm import SVC
  2. from sklearn.pipeline import Pipeline
  3. from sklearn.preprocessing import StandardScaler
  4. from sklearn.datasets import make_moons,load_iris
  5. X,y=make_moons(n_samples=100,noise=0.15) #取样本数
  6. poly_svm_clf=Pipeline([
  7. ("scaler",StandardScaler()),
  8. #添加核函数,多项式最高次为3
  9. ("svm_clf",SVC(kernel="poly",degree=3,coef0=1,C=5))
  10. ])
  11. poly_svm_clf.fit(X,y)

LinearSVR:

SVM线性回归器;用来实现线性的分类任务;

  1. from sklearn.svm import LinearSVR
  2. from sklearn.preprocessing import StandardScaler
  3. from sklearn.svm import SVR,SVC #支持多项式特征;
  4. from sklearn.datasets import make_moons
  5. X,y=make_moons(n_samples=100,noise=0.15) #加入噪音;
  6. svm_reg=LinearSVR(epsilon=1.5)
  7. svm_reg.fit(X,y)

SVR:

可以用来实现非线性的回归任务,支持核技巧;可以添加多项式特征;

  1. #使用SVR,支持核技巧:进行二分类问题
  2. from sklearn.preprocessing import StandardScaler
  3. from sklearn.svm import SVR,SVC #支持多项式特征;
  4. from sklearn.datasets import make_moons
  5. X,y=make_moons(n_samples=100,noise=0.15) #加入噪音;
  6. #多项式特征是 kernel="poly" 核函数是将低维数据映射到高维数据; degree=2 C:软间隔系数;
  7. svc_model=SVR(kernel="poly",degree=2,C=100,epsilon=0.1)
  8. svc_model.fit(X,y)

核技巧:

核技巧,也就是核函数,如果数据集是比较低维的数据时,低维数据信息有些少,这时可以将低维的数据映射为高维的数据进行模型的训练。比如在低维空间进行分类比较困难,可以将数据映射到高维空间中,进行分类。

核函数:kernal参数;

kernel是svm中选择核函数的参数,其可选选项主要区别如下:

linear:线性核函数,是在数据线性可分的情况下使用的,运算速度快,效果好。不足在于它不能处理线性不可分的数据。
poly:多项式核函数,多项式核函数可以将数据从低维空间映射到高维空间,但参数比较多,计算量大。
rbf:高斯核函数(默认),高斯核函数同样可以将样本映射到高维空间,但相比于多项式核函数来说所需的参数比较少,通常性能不错,所以是默认使用的核函数。
sigmoid:sigmoid 核函数,sigmoid 经常用在神经网络的映射中。因此当选用 sigmoid 核函数时,SVM 实现的是多层神经网络。

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/135552
推荐阅读
  

闽ICP备14008679号