1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > ML之SVM:基于SVM(sklearn+subplot)的鸢尾花iris数据集的前两个特征(线性不可分的两个

ML之SVM:基于SVM(sklearn+subplot)的鸢尾花iris数据集的前两个特征(线性不可分的两个

时间:2022-05-20 08:17:07

相关推荐

ML之SVM:基于SVM(sklearn+subplot)的鸢尾花iris数据集的前两个特征(线性不可分的两个

ML之SVM:基于SVM(sklearn+subplot)的鸢尾花iris数据集的前两个特征(线性不可分的两个样本),判定鸢尾花是哪一种类型

目录

输出结果

实现代码

输出结果

(1)、黄色的点为支持向量

实现代码

#ML之SVM:基于SVM(sklearn+subplot)的鸢尾花数据集的前两个特征,判定鸢尾花是哪一种类型#基于鸢尾花的花萼的长度和宽度进行分类的,本案例只采用前两维特征import numpy as npimport pylab as plfrom sklearn import svmsvc = svm.SVC(kernel='linear')from sklearn import datasets # 鸢尾花数据集是sklearn自带的。iris = datasets.load_iris()X = iris.data[:, :2] # 只提取前面两列数据作为特征,鸢尾花的长度、宽度y = iris.targetsvc.fit(X, y) # 基于这些数据训练出一个支持向量分离器SVC……plot_estimator(svc, X, y, 3,2,1)pl.title('one versus one') #如图所示,红色与其他点是线性可分的;蓝色和绿色的点是线性不可分的plot_estimator(svm.LinearSVC(), X, y, 3,2,2)pl.title('one versus all')X, y = X[np.in1d(y, [1, 2])], y[np.in1d(y, [1, 2])]plot_estimator(svc, X, y, 3,2,3)pl.scatter(svc.support_vectors_[:, 0], svc.support_vectors_[:, 1], s=80,c='y') #,c='',facecolors='none', zorder=10pl.title('Both circles are support vectors')#下面进行调参C:该C可以理解为正则项的Csvc = svm.SVC(kernel='linear', C=1e3)plot_estimator(svc, X, y, 3,2,4)pl.scatter(svc.support_vectors_[:, 0], svc.support_vectors_[:, 1], s=80,c='y') #, facecolors='none', zorder=10pl.title('High C values: small number of support vectors')svc = svm.SVC(kernel='linear', C=1e-3)plot_estimator(svc, X, y, 3,2,5)pl.scatter(svc.support_vectors_[:, 0], svc.support_vectors_[:, 1], s=80) #, facecolors='none', zorder=10pl.title('Low C values: high number of support vectors')pl.show() #采用核方法的SVMsvc = svm.SVC(kernel='linear')plot_estimator(svc, X, y, 2,2,1)pl.scatter(svc.support_vectors_[:, 0], svc.support_vectors_[:, 1], s=80,c='y') #, facecolors='none', zorder=10pl.title('Linear kernel→linear')svc = svm.SVC(kernel='poly', degree=4)plot_estimator(svc, X, y, 2,2,2)pl.scatter(svc.support_vectors_[:, 0], svc.support_vectors_[:, 1], s=80,c='y') #, facecolors='none', zorder=10pl.title('Polynomial kernel→parabola')#可以看到,高斯核更灵活,而且对于训练数据效果是最好的。但是要担心过拟合。svc = svm.SVC(kernel='rbf', gamma=1e2)plot_estimator(svc, X, y, 2,2,3)pl.scatter(svc.support_vectors_[:, 0], svc.support_vectors_[:, 1], s=80,c='y') #, facecolors='none', zorder=10pl.title('RBF kernel')pl.show()

相关文章推荐

ML之SVM:基于SVM(sklearn+subplot)的鸢尾花数据集的前两个特征,判定鸢尾花是哪一种类型

ML之SVM:基于SVM(sklearn+subplot)的鸢尾花iris数据集的前两个特征(线性不可分的两个样本) 判定鸢尾花是哪一种类型

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。