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

需要用到的库为: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. TypeError: __init__() got an unexpected keyword argument #34serialized_options #34
  2. confluence 启动失败的检查思路
  3. 详解Java8中流(Stream)的使用
  4. C#嵌套任务和子任务
  5. RxSwift之深入解析特殊序列deallocating与deallocated的源码实现
  6. cus.crm.notes.Component.extend(cus.crm.notes.ext.Component, {
  7. 数列分块入门 (1 ~ 7)
  8. 1003 我要通过!(20)(20 分)
  9. python与网页设计的区别_Python与设计模式(三):行为型模式(上)
  10. matlab程序求尖锐度,业务名称
  11. 第九周LINUX 学习笔记
  12. SAP License:SAP 初学者指南
  13. 算法眼中的世界是什么样子?他们用一些彩色方块画了出来
  14. Java 反编译工具包(.class -> .java) 及其在 Minecraft 中相关应用
  15. 利用第三方rec解锁安卓手机锁屏密码
  16. 将数组文件转换成bin格式文件
  17. 【区块链开发入门】(四) Truffle详解篇1
  18. 利用数据质量规则库推动数据质量管理
  19. 微信公众号基础入门知识
  20. Google 黑板报: 哀悼与团结的曲线

热门文章

  1. 001_chrome工具详解
  2. 内存非延续分派治理方法
  3. 分享六:php脚本守护进程
  4. 继续开源还是走向封闭?谷歌未来
  5. Oracle PL/SQL游标的学习
  6. 什么程序员最易找工作? 十大热门语言大汇集
  7. 常用类字符串详解大全String
  8. python爬虫需要学哪些知识_Python爬虫需要学习那些东西?
  9. mysql的server_id怎么设置_MySQL Server-id踩到的坑
  10. wpf 让图标显示在系统托盘