iris数据_针对iris数据集 支持向量机不同核函数的比较
思路为:利用不同的核函数来训练不同的分类器,再通过分类器的预测准确率和运行时间来比较分类器的优劣。
需要用到的库为: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数据集 支持向量机不同核函数的比较相关推荐
- python分析鸢尾花数据_鸢尾花(iris)数据集分析
Iris 鸢尾花数据集是一个经典数据集,在统计学习和机器学习领域都经常被用作示例.数据集内包含 3 类共 150 条记录,每类各 50 个数据,每条记录都有 4 项特征:花萼长度.花萼宽度.花瓣长度. ...
- python处理期货数据_针对vnpy的不同期货品种行情数据清理
之前2月25日,上海期货交易所进行测试,在周六进行行情广播,我的datarecording一直在跑:然后就发现读了不少脏数据. vnpy自带的行情清理功能较为简单,只是在清除非交易时段,没有考虑周六日 ...
- 针对IRIS数据的特征选择与提取方法研究(模式识别第四次作业)
针对IRIS数据的特征选择与提取方法研究 要求 对Iris数据进行两个特征选择,共6种组合,计算类别可分性准则函数J值,得出最好的分类组合,画出六种组合的分布图: 使用前期作业里面的程序.对6种组合分 ...
- Python数据可视化实战——iris数据集可视化
首先,这个Python数据可视化实战是在Iris数据集上完成的.所使用的是Python 3环境下的jupyter notebook. 实战中我们需要用到的库包括:pandas , matplotlib ...
- matlab鸢尾花数据线性分析,Iris鸢尾花数据集可视化、线性回归、决策树分析、KMeans聚类分析...
数据集可视化 采用Python的Sklearn机器学习库中自带的数据集--鸢尾花数据集.简单分析数据集之间特征的关系图,根据花瓣长度.花瓣宽度.花萼长度.花萼宽度四个特征进行绘图 Iris plant ...
- iris数据_Python数据分析03-Iris-箱形图与outliers
0.篇首 本篇文章继续在 Iris 的基础上做数据可视化处理.在前两篇文章中,我们分别使用了直方图.KDE 以及一个十分抽象的三维图展示了 Iris 数据集.这些图都很清晰地把三个 Species 区 ...
- Dataset之IRIS:莺尾(Iris)数据集的简介、安装、使用方法之详细攻略
Dataset之IRIS:莺尾(Iris)数据集的简介.安装.使用方法之详细攻略 莺尾(Iris)数据集的简介 IRIS数据集,也称鸢尾花卉数据集,是一类多重变量分析的数据集.数据集包含15 ...
- iris流程图_如何搭建一个简单的机器学习流水线?
阅读此分步教程,学会通过导入scikit-learn包来搭建一个简单的机器学习流水线(pipeline) 一个机器学习模型中,有很多可移动的组件需要被组合在一起,模型才能被执行并成功的得到结果.把机器 ...
- iris数据_Kaggle 数据可视化课程5
Lesson 5 直方图和密度图 在本教程中,您将学习所有关于直方图和密度图. 设置notebook 与往常一样,我们从设置编码环境开始. In [1]: import pandas as pd pd ...
- 利用sklearn库决策树模型对iris数据多分类并进行评估
1.导入所需要的库 from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import load_iris 2.加 ...
最新文章
- TypeError: __init__() got an unexpected keyword argument #34serialized_options #34
- confluence 启动失败的检查思路
- 详解Java8中流(Stream)的使用
- C#嵌套任务和子任务
- RxSwift之深入解析特殊序列deallocating与deallocated的源码实现
- cus.crm.notes.Component.extend(cus.crm.notes.ext.Component, {
- 数列分块入门 (1 ~ 7)
- 1003 我要通过!(20)(20 分)
- python与网页设计的区别_Python与设计模式(三):行为型模式(上)
- matlab程序求尖锐度,业务名称
- 第九周LINUX 学习笔记
- SAP License:SAP 初学者指南
- 算法眼中的世界是什么样子?他们用一些彩色方块画了出来
- Java 反编译工具包(.class -> .java) 及其在 Minecraft 中相关应用
- 利用第三方rec解锁安卓手机锁屏密码
- 将数组文件转换成bin格式文件
- 【区块链开发入门】(四) Truffle详解篇1
- 利用数据质量规则库推动数据质量管理
- 微信公众号基础入门知识
- Google 黑板报: 哀悼与团结的曲线