第一部分 分类
本书前两部分主要探讨监督学习(supervised learning)。
监督学习一般使用两种类型的目标变量:
- 标称型:目标变量的结果只在有限目标集中取值:真与假,动物分类集合
- 数值型:目标变量可以从无限的数值集合中取值:0.100、42.001;主要用于回归分析
第 1 章 机器学习基础
[TOC]
本章内容:
- 机器学习的简单概述
- 机器学习的主要任务
- 学习机器学习的原因
- python 语言的优势
1. 何谓机器学习
简单地说,机器学习 就是把无序的数据转换成有用的信息。
**机器学习的主要任务 **就是分类。
训练集 :是用于训练机器学习算法的数据样板集合。
目标变量 :是机器学习算法的预测结果。在分类算法中目标变量的类型通常是标称型的,而在回归算法中通常是连续型的。
特征 ,或者 属性 :通常是训练样板集的列,它们是独立测量得到的结果,多个特征联系在一起共同组成一个训练样板。
决定使用某个机器学习算法进行分类时:
- 首先需要做的是算法训练,即学习如何分类
- 测试机器学习算法的效果,通常使用两套独立的样本集:训练数据和测试数据
2. 机器学习的主要任务
机器学习的任务:分类和回归。都属于 监督学习。
回归 :主要用于预测数据值型数据。
无监督学习 :数据没有类别信息,也不会给定目标值
- 将数据集合分成由类似的对象组成的多个类的过程被称为 聚类 ;
- 将寻找描述数据统计值得过程称之为 密度估计 ;
- 降维 :无监督学习还可以减少数据特征的维度,以便我们可以使用二维或三维图形更加直观地展示数据信息。
表 1-2 列出了机器学习的主要任务,以及解决相应问题的算法:
3. 如何选择合适的算法
从表1-2中所列的算法中选择实际可用的算法,必须考虑下面两个问题:
- 使用机器学习算法的目的,想要算法完成何种任务
- 想要预测目标变量的值,则可选择监督学习算法,否则可以选择无监督学习算法。
- 确定选择监督学习算法后,需要进一步确定目标变量类型:离散则分类,连续则回归
- 如果不想预测目标变量的值,可以选择无监督学习算法。
- 进一步分析是否需要将数据分为离散的值,需要则使用聚类算法
- 如果还需要顾及数据与每个分组的相似程度,则需要使用密度估计算法
- 其他方面的考虑
- 需要分析或收集的数据是什么(主要了解数据以下特性)
- 特征值是离散型变量还是连续型变量
- 特征值中是否存在缺失的值
- 何种原因造成缺失值
- 数据中是否存在异常值
- 某个特征发生的频率如何,等等
一般来说,发现最好算法的关键环节是反复试错的迭代过程
4. 开发及其学习应用程序的步骤
本书学习和使用及其学习算法开发程序,通常遵循以下的步骤:
- 收集数据:制作网络爬虫从网站上抽取数据、从 RSS 反馈或者 API 中得到数据、设备发送过来的实测数据等
- 准备输入数据:必须确保数据格式符合要求
- 分析输入数据(主要是人工分析以前得到的数据,这一步的主要作用是确保数据集中没有垃圾数据):
- 最简单的方法是用文本编辑器打开数据文件,查看得到的数据是否为空值
- 还可以进一步浏览数据,分析是否可以识别出模式
- 数据中是否存在明显的异常值
- 通过一维、二维、三维展示数据也是不错方法
- 训练算法(4、5 是机器学习的核心):如果使用无监督学习算啊,由于不存在目标变量值,故而不需要训练算法,所有与算法相关的内容都集中在第 5 步
- 测试算法:
- 对于监督学习,必须已知用于评估算法的目标变量值
- 对于无监督学习,也必须用其他的评测手段来检验算法的成功率
- 如果不满意算法的输出结果,可以回到第 4 步,改正并加以测试。
- 问题常常会跟数据的收集和准备有关,这是必须调回到第 1 步重新开始
- 使用算法:将机器学习算法转换成应用程序,执行实际任务,以检验以上步骤是否可以实际环境中正常工作。此时如果碰到新的数据问题,同样需要重复执行上述的步骤
5.Python 语言的优势
基于以下三个原因,我们选择 python 作为实现机器学习算法的编程语言:
- python 的语法清晰
- 易于操作纯文本文件
- 使用广泛,存在大量的开发文档
5.1 可执行伪代码
python 具有清晰的语法结构,也把它称作 可执行伪代码(executable pseudo-code)。
python 语言处理和操作文本文件非常简单,非常易于处理非数值型数据,还提供了丰富的正则表达式函数以及很多访问 web 也的函数库,使得从 html 中提取数据变得非常简单直观。
5.2 python 比较流行
5.3 python 语言的特色
5.4 python 语言的缺点
python 语言唯一的不足是 性能问题 。