1.1 何谓机器学习
1.2 关键术语
- 特征(属性):数值型、二值型、枚举类型。特征或属性通常是训练样本的列,它们是独立测量得到的结果,多个特征联系在一起共同组成了一个训练样本
- 分类:是基本的机器学习任务
- 目标变量:分类任务中通常为标称型,回归任务通常为连续型
- 训练样本
- 训练集
- 训练数据、测试数据
1.3 机器学习的主要任务
- 分类
- 回归
分类和回归属于监督学习,这类算法必须知道预测什么,即目标变量的分类信息。
与监督学习相对应的是无监督学习,此时数据没有类别信息,也不会给定目标值。在无监督学习中,将数据集合分成由类似的对象组成的多个类的过程被称为聚类;将寻找描述数据统计值的过程称之为密度估计。此外,无监督学习还可以减少数据特征的维度,以便使用二维或三维图形更加直观地展示数据信息。
- 监督学习算法
- k近邻算法
- 朴素贝叶斯算法
- 支持向量机
- 决策树
- 线性回归
- 局部加权线性回归
- Ridge回归
- Lasso最小回归系数估计
- 无监督学习算法
- K-均值
- DBSCAN
- 最大期望算法
- Parzen窗设计
1.4 如何选择合适的算法
选择合适的算法需考虑两点:
- 使用机器学习算法的目的,想要算法完成何种任务?
- 预测目标变量的值可以选择监督学习算法
- 目标变量的值是离散型,可选择分类算法;连续型目标变量选择回归算法
- 需要分析或收集的数据是什么?
- 特征值是离散还是连续型变量
- 特征值中是否存在缺失的值
- 数据中是否存在异常值
- 某个特征发生的频率如何
一般说来,发现最好算法的关键环节是反复试错的迭代过程。
1.5 开发机器学习应用程序的步骤
- 收集数据
- 准备输入数据
- 分析输入数据:确保数据集中没有垃圾数据
- 训练算法
- 测试算法
- 使用算法
1.6 Python语言的优势
- 可执行伪代码(executable pseudo-code):具有清晰的语法结构
- Python比较流行:代码范例多
- Python语言的特色
- Python语言的缺点:性能不足
1.7 NumPy函数基础
#将NumPy函数库中的所有模块引入当前的命名空间
from numpy import *
#生成4*4的随机数组
random.rand(4,4)
#将数组转化为矩阵
randMat = mat(random.rand(4,4))
#矩阵求逆.I
invRandMat = randMat.I
#创建4*4单位矩阵
eye(4)
#得到误差矩阵
randMat*invRandMat-eye(4)