机器学习实战-----八大分类器识别树叶带源码

 今天我想送给大家两句话:1:在这个浮躁的社会中,每个人都想找到捷径,那么我想认真踏实地做好一件事也便是最大的捷径了。2:不要管别人做什么,有自己的目标,可能你现在的环境牛人多多,让你压力巨大,也可能你身处的环境废物多多,让你感慨你本可以让自己更加强大。不要管这些,只要相信自己选择的,走下去。

  以上献给迷茫的人们,同时也自勉。不多说,进入八大分类器。

  引言:树叶有好多种,如下图:

  目标:写一个系统,让系统区分各种树叶属于哪个品种。

我的思路如下图:

  特征提取:也就是我们前几张说的x i ,抽取能代表这个物体的特征。比如让你去识别另外一个人,一般从脸型,肤色,身高,体重…..这些特征去标记,现在计算机识别树叶可能就从叶子啊,形状啊,宽度啊,有无锯齿啊,这些去识别。这个详细我们暂时不说,下次再说。

  训练分类器:就是找到一个有某些特征的样本,我们只需要对新来的特征和前面出现类似的特征进行比对,那么找出最可能的类别,我们就说这个新的样本是属于这个类别的。

  测试数据:当这个模型找出来了,我们是不是得测试一下这个人可不可信对吧,就好像我们生活中的,有的人酷爱吹牛逼,那么我们对他说的话,是不是就抱着怀疑的态度?而有的人几乎很少说谎话,那么他说的话是不是可信度就大,这个测试数据就是这个道理,测试效果越好,那么这个模型分类器可能效果就越好。

  下面是代码讲解部分,为了方便我先以截图的形式,呈上代码,最后用百度云上传我的数据集和源代码,希望大家学得愉快。

  一 代码讲解

  这一段代码没什么好说的,就是导入matplotlib,pandas,sklearn的这些包.python这个语言最强大的地方就是可以直接引用别的语言写的代码包,其实python作为一门脚本语言它本身的执行速度是很慢的,但是它就像胶水一样把其他语言实现的功能粘合起来,那么就很厉害了,类似于刘邦,驭人于千里之外。所以它又叫胶水语言。

  这一段代码是读取train.csv和test.csv数据。然后把train.csv中的species项作为标签项,除了id项,其他项作为特征项。y_test作为数据的原始标签,留着和以后的预测值作比较。

  这一段代码就是把k近邻,svc,随机森林这些分类器的名称写在classifiers这个列表里,等着我们之后调用它。Svc我们这里用的是rbf核,也就是高斯核。

  这里for 循环就是调用列表里的分类器,然后fit(),也就是训练一下,输入的参数是特征集和标签集,44行,分别用刚刚训练出来的参数,对x_text进行预测,得到预测值。接着再用预测值与原本的样本标签就行比较,求出正确率和损失值。

  这一段就是画出结果图没什么好说的。

  二 结果分析

  可以看出随机森林和gridentboosting表现最好,这个gridentboosting用梯度下降算法保证最后的结果最好,这个算法就是三个臭皮匠赛过一个诸葛亮。。。。但是Adaboost算法瞬间打我脸有木有,这个的结果差的离谱,我现在还没有想出来是为什么原因。。。。。。等我下次继续做实验验证吧。。

  给大家看看ACC和loss图吧,这些都是说明这个模型的靠谱程度,不是那种吹牛逼模式。

时间: 2024-10-13 11:39:51

机器学习实战-----八大分类器识别树叶带源码的相关文章

OpenCV人脸识别LBPH算法源码分析

1 背景及理论基础 人脸识别是指将一个需要识别的人脸和人脸库中的某个人脸对应起来(类似于指纹识别),目的是完成识别功能,该术语需要和人脸检测进行区分,人脸检测是在一张图片中把人脸定位出来,完成的是搜寻的功能.从OpenCV2.4开始,加入了新的类FaceRecognizer,该类用于人脸识别,使用它可以方便地进行相关识别实验. 原始的LBP算子定义为在3*3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于或等于中心像素值,则该像素点的位置被标记为1,否则为0

Spring MVC 4 RESTFul Web Services CRUD例子(带源码)【这才是restful,超经典】

[本系列其他教程正在陆续翻译中,点击分类:spring 4 mvc 进行查看.源码下载地址在文章末尾.] [翻译 by 明明如月 QQ 605283073] 原文地址:http://websystique.com/springmvc/spring-mvc-4-restful-web-services-crud-example-resttemplate/ 上一篇: Spring 4 MVC @RestController 注解实现REST Service 下一篇:Spring MVC 4 文件上传

VC++环境下多文档模板应用程序开发(带源码)

我们以前见到的关于VC++环境下利用APP Wizard 自动生成的MDI的应用程序只支持打开同一文档类型的多个文件,但是不能够同时打开不同种类型的文档.网上的这种公开资料比较少,我在知网上查阅了相关的资料.下面我根据这些资料做一下总结(辛辛苦苦一个一个字码出来的). 下面设计一个能够处理两种文档类型的应用程序:第一种文档类型:TXT文档,第二种文档类型:Bub的文档类型. 第一种的文档类型TXT,是利用APP Wizard自动生成的,只不过是在设置的时候将文档类型设置为TXT类型,并且使生成的

MyEclipse使用总结——使用MyEclipse打包带源码的jar包

平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今天教大家一种打包jar包的方式,让jar包当中既有编译好的class,又有class对应的源代码,这样在其他项目中使用打包好的jar包时,就可以直接看到class的源代码了,也可以直接进行源码调试,不再需要额外关联源代码了,具体做法如下: 假如有一个如下图所示的项目 现在我们需要将src目录下的ja

Spring MVC 4 文件下载实例(带源码)

[本系列其他教程正在陆续翻译中,点击分类:spring 4 mvc 进行查看.源码下载地址在文章末尾.] [翻译 by 明明如月 QQ 605283073] 原文地址:http://websystique.com/springmvc/spring-mvc-4-file-download-example/ 上一篇:Spring MVC 4 使用常规的fileupload上传文件(带源码) 本文将为你展示通过Spring MVC 4实现文件下载. 下载一个文件比较简单,主要包括下面几个步骤. 创建下

c# winform 中的 工具栏自动隐藏 splitter用法 带源码

代码下载地址 http://download.csdn.net/detail/simadi/7649313 c# winform 中的 工具栏自动隐藏 splitter用法 带源码,布布扣,bubuko.com

Spring MVC 4使用Servlet 3 MultiPartConfigElement实现文件上传(带源码)

[本系列其他教程正在陆续翻译中,点击分类:spring 4 mvc 进行查看.源码下载地址在文章末尾.] [翻译 by 明明如月 QQ 605283073] 原文地址:http://websystique.com/springmvc/spring-mvc-4-file-upload-example-using-multipartconfigelement/ 上一篇:Spring MVC 4 使用常规的fileupload上传文件(带源码) 下一篇:Spring MVC 4 文件下载实例(带源码)

Spring Security 4 使用@PreAuthorize,@PostAuthorize, @Secured, EL实现方法安全(带源码)

[相关已翻译的本系列其他文章,点击分类里面的spring security 4] 上一篇:Spring Security 4 整合Hibernate 实现持久化登录验证(带源码) 原文地址:http://websystique.com/spring-security/spring-security-4-method-security-using-preauthorize-postauthorize-secured-el/ 本文探讨Spring Security 4 基于@PreAuthorize

第66讲:Scala并发编程实战初体验及其在Spark源码中的应用解析

王家林亲授<DT大数据梦工厂>大数据实战视频“Scala深入浅出实战经典”视频.音频和PPT下载!第66讲:Scala并发编程实战初体验及其在Spark源码中的应用解析百度云:http://pan.baidu.com/s/1pJ5jzHx腾讯微云:http://url.cn/aSawrm360云盘:http://yunpan.cn/cctL3QYACaVNa  访问密码 c0fb 信息来源于 DT大数据梦工厂微信公众账号:DT_Spark