思路为:利用不同的核函数来训练不同的分类器,再通过分类器的预测准确率和运行时间来比较分类器的优劣。

需要用到的库为:numpy,pandas,matplotlib,time,sklearn.svm

实现代码用的:jupyter

需要记住的函数为:

1.pd.Categorical().codes将文本数据转化为易分析的数字。

2.train_test_split(random_state,train_size)

#random_state设置随机次数,train_size设置train集和test集的分割点

3.accuracy_score来比较预测值和实际值的差距,并且返回一个准确率

**下面是关于matplotlib包的一些函数讲解**

plt.figure(figsize=,)自定义画布,相当于画图前的第一步,也是最初始的一步。

plt.subplot(number)将画布分为几个区域,如果是121意味着将画布分为1*2列

并且这一部分占据第一部分

plt.plot(x,y,color=,lw=,label=u'')label是图像所带的标签,可以通过plt.legend(loc='')来指定相应的位置来显示标签。

a.settitle(u'')可以通过对图设置标题

plt.suptitle(u'')可以设置画布的标题,但是任何字符串都需要在引号前面加上u.

plt.xlim()可以来设置x轴的坐标范围,plt,ylim()同样可以来设置y轴的坐标范围

import time import numpy as npimport pandas as pdimport matplotlib as mplimport matplotlib.pyplot as plt#SVC向量机from sklearn.svm import SVC#训练测试数据分割from sklearn.model_selection import train_test_split#准确率from sklearn.metrics import accuracy_score#乱码设置## 设置属性防止中文乱码mpl.rcParams['font.sans-serif'] = [u'SimHei']mpl.rcParams['axes.unicode_minus'] = Falsepath="./iris.data"data=pd.read_csv(path,header=None)x,y=data[list(range(4))],data[4]#将y转化为数字标签y=pd.Categorical(y).codes#数据分割,有两个参数,random_state,train_size#random_state随机抽样,train_size设置分割规模x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=88,train_size=0.7)#构建分类器/#kernel是不同的方法svm1 = SVC(C=1, kernel='linear')svm2 = SVC(C=1, kernel='rbf')svm3 = SVC(C=1, kernel='poly')svm4 = SVC(C=1, kernel='sigmoid')#分类器的训练t0=time.time()svm1.fit(x_train,y_train)t1=time.time()svm2.fit(x_train,y_train)t2=time.time()svm3.fit(x_train,y_train)t3=time.time()svm4.fit(x_train,y_train)t4=time.time()#训练完后做什么呢?当然是画图测试准确率svm1_train_score=accuracy_score(y_train,svm1.predict(x_train))svm1_test_score=accuracy_score(y_test,svm1.predict(x_test))svm2_train_score=accuracy_score(y_train,svm2.predict(x_train))svm2_test_score=accuracy_score(y_test,svm2.predict(x_test))svm3_train_score=accuracy_score(y_train,svm3.predict(x_train))svm3_test_score=accuracy_score(y_test,svm3.predict(x_test))svm4_train_score=accuracy_score(y_train,svm4.predict(x_train))svm4_test_score=accuracy_score(y_test,svm4.predict(x_test))#画图#设置X轴,y轴x_tmp=[0,1,2,3]y_train_tmp=[svm1_train_score,svm2_train_score,svm3_train_score,svm4_train_score]y_test_tmp=[svm1_test_score,svm2_test_score,svm3_test_score,svm4_test_score]y_score=[t1-t0,t2-t1,t3-t2,t4-t3]#设置尺寸和颜色plt.figure(facecolor='w',figsize=(12,6))#subplot是用来分割画布,分割成一行两列,用第一列的来画图a=plt.subplot(121)#绘图plt.plot(x_tmp,y_train_tmp,'r-',lw=2,label=u'训练集准确率')plt.plot(x_tmp,y_test_tmp,'g-',lw=2,label=u'测试集准确率')#设置两个图形的解释plt.legend(loc='lower left')#plt.title(u'模型预测准确率', fontsize=13)plt.xticks(x_tmp, [u'linear-SVM', u'rbf-SVM', u'poly-SVM', u'sigmoid-SVM'], rotation=0)#开启网格线plt.grid(b=True)#第二个图,分割成一行两列,第二列来画图b=plt.subplot(122)plt.plot(x_tmp, y_score, 'b-', lw=2, label=u'模型训练时间')#plt.title(u'模型训练耗时', fontsize=13)#给x赋予标签plt.xticks(x_tmp, [u'linear-SVM', u'rbf-SVM', u'poly-SVM', u'sigmoid-SVM'], rotation=0)plt.legend(loc='lower left')plt.grid(b=True)#大标题suptitleplt.suptitle(u'鸢尾花数据SVM分类器不同内核函数模型比较', fontsize=16)a.set_title(u'预测准确率')b.set_title(u'模型运行时间')plt.show()

iris数据_针对iris数据集 支持向量机不同核函数的比较相关推荐

  1. python分析鸢尾花数据_鸢尾花(iris)数据集分析

    Iris 鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例.数据集内包含 3 类共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度.花萼宽度.花瓣长度. ...

  2. python处理期货数据_针对vnpy的不同期货品种行情数据清理

    之前2月25日,上海期货交易所进行测试,在周六进行行情广播,我的datarecording一直在跑:然后就发现读了不少脏数据. vnpy自带的行情清理功能较为简单,只是在清除非交易时段,没有考虑周六日 ...

  3. 针对IRIS数据的特征选择与提取方法研究(模式识别第四次作业)

    针对IRIS数据的特征选择与提取方法研究 要求 对Iris数据进行两个特征选择,共6种组合,计算类别可分性准则函数J值,得出最好的分类组合,画出六种组合的分布图: 使用前期作业里面的程序.对6种组合分 ...

  4. Python数据可视化实战——iris数据集可视化

    首先,这个Python数据可视化实战是在Iris数据集上完成的.所使用的是Python 3环境下的jupyter notebook. 实战中我们需要用到的库包括:pandas , matplotlib ...

  5. matlab鸢尾花数据线性分析,Iris鸢尾花数据集可视化、线性回归、决策树分析、KMeans聚类分析...

    数据集可视化 采用Python的Sklearn机器学习库中自带的数据集--鸢尾花数据集.简单分析数据集之间特征的关系图,根据花瓣长度.花瓣宽度.花萼长度.花萼宽度四个特征进行绘图 Iris plant ...

  6. iris数据_Python数据分析03-Iris-箱形图与outliers

    0.篇首 本篇文章继续在 Iris 的基础上做数据可视化处理.在前两篇文章中,我们分别使用了直方图.KDE 以及一个十分抽象的三维图展示了 Iris 数据集.这些图都很清晰地把三个 Species 区 ...

  7. Dataset之IRIS:莺尾(Iris)数据集的简介、安装、使用方法之详细攻略

    Dataset之IRIS:莺尾(Iris)数据集的简介.安装.使用方法之详细攻略 莺尾(Iris)数据集的简介      IRIS数据集,也称鸢尾花卉数据集,是一类多重变量分析的数据集.数据集包含15 ...

  8. iris流程图_如何搭建一个简单的机器学习流水线?

    阅读此分步教程,学会通过导入scikit-learn包来搭建一个简单的机器学习流水线(pipeline) 一个机器学习模型中,有很多可移动的组件需要被组合在一起,模型才能被执行并成功的得到结果.把机器 ...

  9. iris数据_Kaggle 数据可视化课程5

    Lesson 5 直方图和密度图 在本教程中,您将学习所有关于直方图和密度图. 设置notebook 与往常一样,我们从设置编码环境开始. In [1]: import pandas as pd pd ...

  10. 利用sklearn库决策树模型对iris数据多分类并进行评估

    1.导入所需要的库 from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import load_iris 2.加 ...

最新文章

  1. RDKit | 基于RDKit和Cytoscape绘制分子相似图
  2. H5新特性 input type=date 在手机上默认提示显示无效解决办法
  3. select * from mys where id=2;
  4. CSS设置文字不能被选中
  5. 正则表达式——WPF输入控件TextBox 限定输入特定字符
  6. 引用dll动态库,动态库中弹出对话框输入,将输入参数,作为变量继续调用。...
  7. 计算机报名显示事务已被锁死,ORA-01591错误处理: 锁定已被有问题的分配事务处理20.18.156406挂起(转载)...
  8. HackRF 无线门铃信号录制与重放
  9. 从企金的授信方案延申到个金授信的思考
  10. Banana PI 开源硬件项目启动
  11. LINUX文件图标变化:有时右键菜单刷新可以,有时需要重启机器
  12. Win必备神器Cmder
  13. postgresql树形结构查询
  14. EXcel中如何做一个组合统计图?
  15. 深度学习目标检测---使用labelimg对自己的数据集进行标记(windows系统)
  16. 基于javaweb+SpringBoot+JPA图书馆座位占座预约管理系统(管理员、老师、学生)
  17. 化妆品电商供应链系统解决方案:美妆化妆品品牌供应链质量管理、产品定位
  18. VUE+ElementUI+SheetJS解析Excel
  19. 网络复现之基于TPS的STN网络
  20. win10 笔记本蓝牙不见了

热门文章

  1. PostgreSQL 按周、月、天 统计问题
  2. Python操作IHTMLDocument2用于自动化测试
  3. 深搜和广搜--原理彼此的优缺点
  4. iptables的备份
  5. 【xpghost】揭晓Windows 7快捷键的秘密
  6. 最详细的wine配置
  7. 蓝桥杯 BASIC-10 十进制转十六进制
  8. Android轉檔案到iphone,在 Mac 上要如何存取 Android 手機中的檔案,傳輸檔案沒問題...
  9. java arryalist去重复_java ArrayList去重复值
  10. qt 启动时黑屏闪一下_每次启动车辆时最好查看一下这些地方,车辆事故率能下降三分之二_搜狐汽车...