机器学习笔记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-基于四种特征的鸟物种分类表

体重 翼展 脚蹼 后背颜色 种属 1000 125 无 棕色 红尾鹊 3000 200 无 灰 鹭鹰 …… …… …… …… ……

通过上表的数据,我们采集到的前四个值称为特征,也叫属性,特征下面的每一行数据称之为特征的实例。而这组数据的目的是让机器学习来进行判断鸟的种类,我们通过前四种特征(体重、翼展、脚蹼 、后背颜色),来判断鸟的种类,此处的种类称之为目标变量,也就是通过我们机器学习算法的预测结果,我们将这个过程叫做分类
有了这样的例子后,最终决定使用某个机器学习算法进行分类,首先要做的是算法训练,即学习如何分类。我们采集了已分类的大部分数据,就像上表中一样,已经是得知了目标变量的结果,将这部分已分类的数据称之为训练集。而上表的2个训练样本组成了一个训练集,每个训练样本中包括了4个特征和一个目标变量。
注:特征或者属性通常是训练样本集的列,它们是独立测量得到的结果,多个特征联系在一起共同组成一个训练样本。

为了测试机器学习算法的效果,通常使用两套独立的样本集:训练数据和测试数据。当机器学习程序开始运行时,使用训练样本集作为算法的输入,训练完后输入测试样本。输入测试样本时并不提供测试样本的目标变量,让程序决定样本属于哪种类别。比较测试样本预测的目标变量和实际样本类别之间的差别,就可以得出算法的实际精确度。

0x002 机器学习的主要任务

上面的例子介绍了机器学习如何解决分类问题,它的主要任务是将实例数据划分到合适的分类中。机器学习的另一项任务是回归,它主要用于预测数值型的数据。回归例子——–数据拟合曲线:给定数据点的最优拟合曲线。分类和回归属于监督学习,之所以称之为监督学习,是因为这类算法必须知道预测什么,即目标变量的分类信息。下面列举醋了机器学习的主要任务,以及解决相应问题的算法。

           表2-用于执行分类、回归、聚类、和密度估计的机器学习算法

————————————————————–监督学习的用途:———————————————————————- k-邻近算法 线性回归 朴素贝叶斯算法 局部加权线性回归 支持向量机 Ridge回归 决策树 Lasso最小回归系数估计 ————————————————————-无监督学习的用途:——————————————————————– K-均值 最大期望算法 DBSCAN Parzen窗设计

0x003 开发机器学习应用程序的步骤

1.收集数据:例如制作爬虫采集网站上的数据、从RSS反馈或者API中得到信息,或者使用公开可用的数据源。
2.准备输入数据:得到数据后,还需确保数据格式符合要求,本书采用的格式是Python语言的List
3.分析输入数据:此步骤主要是人工分析以前得到的数据。
4.训练算法:机器学习算法从这一部才算开始真正的学习。将前两步得到的格式化数据输入到算法,从中抽取知识和信息。若使用无监督学习算法,由于不存在目标变量值,也不需要训练算法,所有与算法相关的内容都集中在第5步。
5.测试算法:为了评估算法,必须测试算法工作的效果。对于监督学习,需已知用于评估算法的目标变量值;对于无监督学习,需用其他评估算法来检测算法的成功率。
6.使用算法:将机器学习算法转化为应用程序,执行实际任务,以检验上述步骤时候可以在实际环境中正常工作。

0x004 基础总结

上面的笔记记录了分类中的基础术语的概念:

监督学习:    -----训练样本,训练集        |        -----特征,特征的实例    -----测试数据,训练数据

书中采用的版本是Python2.7,因为在2013年,但是我在后面做笔记的编码中会采用Python3.6,因为现在已经2017年了,大部分的库已经稳定的移动过来了,所以我选择Python3.6,若中间遇到一些坑,可以自行解决增加以下阅历。