机器学习笔记day01
来源:互联网 发布:食品安全数据统计 编辑:程序博客网 时间:2024/05/20 00:14
前言
之前在百度上搜索过许多机器学习的资料,发现关于机器学习的视频资料比较少,而较为有名的是斯坦福大学Andrew Ng教授的公开课。出于个人兴趣原因,虽然是java工程师,但是对机器学习和人工智能方向非常感兴趣,于是利用还没有正式上班的业余时间来慢慢积累学习一下,语言采用的是Python。
经资料查询,发现有一本比较适合Python实战机器学习的书—-《机器学习实战》(Machine Learning in Action),2013年出版于图灵,作者:Peter Harrington,从今天开始慢慢积累关于机器学习的知识,同时记录机器学习知识的推进笔记。
关于本书的结构
| 书的部分由四大部分15章和4个附录组成。
|——第一部分:分类
|——第二部分:利用回归预测数值型数据
|——第三部分:无监督学习
|——第四部分:其他工具
第一部分和第二部分主要探讨了监督学习。
话不多说,下面开始记录正文笔记。
Part1 分类 day01
0x001 机器学习基础
1.何谓机器学习?
除却一些无关的紧要情况,人们很难直接从原始数据本身获取所需信息。简单的说,机器学习就是把无序的数据转成为有用的信息。
2.机器学习在日常生活中的应用?
人脸识别、手写数字识别、垃圾邮件过滤、等等。。。。。
3.关键术语
监督学习:在监督学习的过程中,我们只需要给定输入样本集,机器就可以从中推演出目标变量的可能结果。而监督学习中一般使用两种类型的目标变量:标称型和数值型。标称型目标变量的结果只有在有限目标集中取值,例如真与假,动物分类集合{爬行类,鱼类,两栖类}。。。数值型目标变量的结果可以从无限的数值集合中取值,如0.1、42、1、-1等等。
下面有一个表,基于四种特征的鸟物种分类表
表1-基于四种特征的鸟物种分类表
通过上表的数据,我们采集到的前四个值称为特征,也叫属性,特征下面的每一行数据称之为特征的实例。而这组数据的目的是让机器学习来进行判断鸟的种类,我们通过前四种特征(体重、翼展、脚蹼 、后背颜色),来判断鸟的种类,此处的种类称之为目标变量,也就是通过我们机器学习算法的预测结果,我们将这个过程叫做分类。
有了这样的例子后,最终决定使用某个机器学习算法进行分类,首先要做的是算法训练,即学习如何分类。我们采集了已分类的大部分数据,就像上表中一样,已经是得知了目标变量的结果,将这部分已分类的数据称之为训练集。而上表的2个训练样本组成了一个训练集,每个训练样本中包括了4个特征和一个目标变量。
注:特征或者属性通常是训练样本集的列,它们是独立测量得到的结果,多个特征联系在一起共同组成一个训练样本。
为了测试机器学习算法的效果,通常使用两套独立的样本集:训练数据和测试数据。当机器学习程序开始运行时,使用训练样本集作为算法的输入,训练完后输入测试样本。输入测试样本时并不提供测试样本的目标变量,让程序决定样本属于哪种类别。比较测试样本预测的目标变量和实际样本类别之间的差别,就可以得出算法的实际精确度。
0x002 机器学习的主要任务
上面的例子介绍了机器学习如何解决分类问题,它的主要任务是将实例数据划分到合适的分类中。机器学习的另一项任务是回归,它主要用于预测数值型的数据。回归例子——–数据拟合曲线:给定数据点的最优拟合曲线。分类和回归属于监督学习,之所以称之为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息。下面列举醋了机器学习的主要任务,以及解决相应问题的算法。
表2-用于执行分类、回归、聚类、和密度估计的机器学习算法
0x003 开发机器学习应用程序的步骤
1.收集数据:例如制作爬虫采集网站上的数据、从RSS反馈或者API中得到信息,或者使用公开可用的数据源。
2.准备输入数据:得到数据后,还需确保数据格式符合要求,本书采用的格式是Python语言的List。
3.分析输入数据:此步骤主要是人工分析以前得到的数据。
4.训练算法:机器学习算法从这一部才算开始真正的学习。将前两步得到的格式化数据输入到算法,从中抽取知识和信息。若使用无监督学习算法,由于不存在目标变量值,也不需要训练算法,所有与算法相关的内容都集中在第5步。
5.测试算法:为了评估算法,必须测试算法工作的效果。对于监督学习,需已知用于评估算法的目标变量值;对于无监督学习,需用其他评估算法来检测算法的成功率。
6.使用算法:将机器学习算法转化为应用程序,执行实际任务,以检验上述步骤时候可以在实际环境中正常工作。
0x004 基础总结
上面的笔记记录了分类中的基础术语的概念:
监督学习: -----训练样本,训练集 | -----特征,特征的实例 -----测试数据,训练数据
书中采用的版本是Python2.7,因为在2013年,但是我在后面做笔记的编码中会采用Python3.6,因为现在已经2017年了,大部分的库已经稳定的移动过来了,所以我选择Python3.6,若中间遇到一些坑,可以自行解决增加以下阅历。
- 机器学习笔记day01
- java 学习笔记 day01
- JQuery学习笔记---Day01
- JavaFx2学习笔记day01
- c++ 学习笔记 day01
- mysql 学习笔记 day01
- Hadoop学习笔记Day01
- Memcached学习笔记day01
- linux学习笔记day01
- Oracle学习笔记--day01
- Java学习笔记Day01
- Qt学习笔记day01
- struts2 day01学习笔记
- hibernate day01学习笔记
- maven day01学习笔记
- Win32编程day01 学习笔记
- Mybatis学习笔记---day01基础知识
- springMVC学习笔记---day01基础
- 人脸识别源码运行指南
- 面试题7—用两个栈实现队列
- java—WEB配置Tomcat与MyEclipse关联Tomcat
- 最流行的5个前端框架对比
- Roman Numeral Converter
- 机器学习笔记day01
- 主题模型及其在文本情感分析中的应用
- 23、输入输出重定向
- java集合框架之集合工具类Arrays类
- JavaScript学习总结——JavaScript数组
- autolayout入门(一)
- 点击更多文字,显示更多文字样式。再次点击更多文字之外的元素任意某处,变回原来样式
- 反转整数
- Codeforces Round #420 (Div. 2)总结