大数跨境
0
0

Python | 支持向量机模型构建实战详解

Python | 支持向量机模型构建实战详解 谁说菜鸟不会数据分析
2020-12-27
0
导读:全篇干货,建议收藏

大家好,我是菜鸟君。之前提到了怎么用R语言构建支持向量机模型,想复习的小伙伴可以点链接:

R语言 | 支持向量机(SVM)分类预测详解


今天话不多说,直接上Python建模干货!

第一步,首先是要加载需要用到的Python库。

from sklearn import svmfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import confusion_matrixfrom sklearn.metrics import accuracy_score

第二步,加载数据集,今天用到的是Python自带的iris数据集。

iris = load_iris()n_samples, n_features = iris.data.shapeprint((n_samples, n_features))

150代表的是整个数据有150行,4代表有4列。需要注意的是,我们加载的数据集iris其实是个字典形式,不是单纯的numpy.array,也不是数据框。

包含自变量的数据是iris.data,因为其中不包含标签,所以只有4列。标签去哪了呢?

iris.target

原来标签在这里叫做iris.target。打印出来发现,这个数据集的标签包含3类,适合来做分类模型构建。


第三步,划分训练集、测试集。

train_data,test_data =train_test_split(iris.data, random_state=1, train_size=0.7,test_size=0.3)train_label,test_label =train_test_split(iris.target, random_state=1, train_size=0.7,test_size=0.3)

需要注意的是,random_state是设置随机种子,这样以后结果还能复现。如果不设置的话,每次划分数据的结果不同。


第四步,SVM模型构建。这里用到的kernel是‘rbf’,如果结果不满意,还可以选择其他方法。

classifier=svm.SVC(C=2,kernel='rbf',gamma=10,decision_function_shape='ovr')classifier.fit(train_data,train_label.ravel())


第五步,模型预测。

运用classifier.predict来输出预测标签。

pre_train=classifier.predict(train_data) #训练集的预测标签pre_test=classifier.predict(test_data) #测试集的预测标签print("train:", accuracy_score(train_label,pre_train) )print("test:", accuracy_score(test_label,pre_test) )

训练集准确率达到了100%,在测试集上也达到了93%的准确率,说明这个模型效果不错。如果还想细看到底测试集上是哪些类别被预测错了,可以列个混淆矩阵。

cm=confusion_matrix(test_label,pre_test)cm

这说明第一、二个类别其实互相没被错判,但前两个类别都有1个被预测为第三个类别。


Python的代码很好理解,大家可以有空上手练一下,测试不同参数在同一个数据集上带来的效果。还有啥想看的,可以后台留言,我们下期再约,嗷!


B站视频教程:谁说菜鸟不会数据分析


别忘了点“在看”哦

【声明】内容源于网络
0
0
谁说菜鸟不会数据分析
以大数据分析为驱动,spss/R/python/数据分析交流技术分享,实用教程干货,敬请期待,B站UP主:谁说菜鸟不会数据分析 有更多在线实操视频。
内容 498
粉丝 0
谁说菜鸟不会数据分析 以大数据分析为驱动,spss/R/python/数据分析交流技术分享,实用教程干货,敬请期待,B站UP主:谁说菜鸟不会数据分析 有更多在线实操视频。
总阅读153
粉丝0
内容498