1.2 术语
- 专家系统(expert system)
- 特征(features)
- 分类(classifications)
- 训练集(training set)
- 目标变量(target variable):所要通过ML预测的
- 类(classes):在分类问题中的Target Variables就是classes
- 测试集(test set):与训练集分隔开,用于测试算法,其中测试集并没有将自己的目标变量告知程序,由程序决定其中的每个例子从属于哪一个类,从而可以验证算法的准确性
- 知识表示(knowledge representation):可能表现为一系列规则/概率分布/训练集中的例子
1.3 ML的关键任务
1. 监督学习(supervised learning)
监督:我们已经告诉了算法我们希望预测的是什么
- 分类(classification)
- 回归(regression):预测数值
2. 无监督学习(unsupervised learning)
无监督:不存在标签&目标值
- 聚类(clustering)
- 核密度估计(density estimation)
-
减小维度
algorithms for ML
1.4 如何选择合适的算法?
- 预测一个目标值——>监督学习 / 否则无监督学习
- 若目标值为离散值,如A/B/C——>分类
- 若目标值为数值——>回归
- 预测目标值,且要求无监督学习,且希望数据分为离散的组——>聚类
- 若希望得到拟合强度的数值表示——>核密度估计算法
- 最优算法最优结果不唯一
1.5 ML应用步骤
- 收集数据
- 准备输入的数据:useful format
- 分析输入的数据
- 清洗
- 训练算法:with good clean data,对于无监督学习而言 没有这一步
- 测试算法:监督学习中使用已知值来进行测试;无监督学习实行别的方法。如果不满意则返回step 4,再重新尝试;必要的话返回step 1。
- 使用:若有问题,重返step 1-5。
1.6 Why Python?
- executable pseudo-code
- popular, modules available
- high-level language
- drawbacks: not fast as Java & C
- use numpy heavily in this book
- start with Numpy library:
from numpy import *
random.rand(n,m) # creat random array of size nxm
mat() # convert array to a matrix
randMat = mat(random.rand(n,m))
InvRandMat=randMat.I # the inverse of the matrix
eye(t) # create an identity matix of size t
...
网友评论