赞
踩
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)
可以用来实现非线性的分类任务,支持核技巧;可以添加多项式特征;
- 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)
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,支持核技巧:进行二分类问题
- 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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。