1. ML基础
1.1 两个基本理论
- 奥卡姆剃刀:它是常用的、自然科学研究中最基本的原则,即"若有多个假设与观察一致,则 选择最简单的那个"。
- 没有免费午餐定理:任何算法的期望性能都一样。在某些问题上表现好的算法,在另一些问题上却可能不尽如人意,学习算法自身的归纳偏好与问题是否相配,旺往往会起到决定性的作用。
1.2 监督学习
监督学习的模型可以是概率模型或非概率模型,由条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)或决策函数 Y = f ( X ) Y=f(X) Y=f(X)表示,随具体学习方法而定。对具体的输入进行相应的输出预测时,写作 P ( y ∣ x ) P(y|x) P(y∣x)或 y = f ( x ) y=f(x) y=f(x)。其中 P ( y ∣ x ) P(y|x) P(y∣x)常用在分类问题中,而 y = f ( x ) y=f(x) y=f(x)常用在回归问题中。
监督学习方法又可分为生成方法和判别方法,所学到的模型分别为生成模型和判别模型:
- 生成方法:由数据学习联合概率分布 P ( X , Y ) P(X,Y) P(X,Y),然后求出条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)作为预测的模型,即生成模型: P ( Y ∣ X ) = P ( X , Y ) P ( X ) P(Y|X)=\frac{P(X,Y)}{P(X)} P(Y∣X)=P(X)P(X,Y).如朴素贝叶斯、HMMs。
- 判别方法:由数据直接学习决策函数 f ( X ) f(X) f(X)或者条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X)作为预测的模型,即判别模型。如:kNN、MLP、DecTree、LogisticR、Boosting和CRFs等。
1.3 模型评估方法
数据集的分割:
- 留出法:注意要分层采样,一般要采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。
- 交叉验证法:最常用的是10次10折交叉验证法。
- 自助法:有放回采样,在数据集较小、难以有效划分训练、验证集时很有用,缺点是改变了初始数据集的分布,引入了估计偏差。
代价敏感错误率:即为权衡不同类型错误所造成的损失,可为错误赋予"非均等代价",这有可能改善模型效果。
偏差与方差:
- 偏差:度量模型的预测结果与真实结果的偏离程度,,即刻画了模型本身的拟合能力;
- 方差:度量同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;
- 噪声:表达了在当前任务下任何模型所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。
泛化误差是由模型的能力、数据的充分性以及学习任务本身的难度所共同决定的,给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。
2. 线性模型
许多功能更为强大的非线性模型可在线性模型的基础上通过引入层级结构或高维映射而得。
2.1 线性回归
y = w T x + b y=\mathbf{w^Tx}+b y=wTx+b
对于离散属性值:
- 若离散属性值有序的关系,则可以转化为连续值。如{高,矮}可转化为{1.0,0.0}。
- 若离散属性值没有序的关系,且有k个属性值,则可使用one-hot编码将其编码为k维向量。
2.2 对数线性回归(log-linear)
ln y = w T x + b y = e w T x + b \ln y = \mathbf{w^Tx}+b\\ y=e^{\mathbf{w^Tx}+b} lny=wTx+by=ewTx+b
2.3 对数几率回归(logistic regression)
y = 1 1 + e − ( w T x + b ) y=\frac{1}{1+e^{-(\mathbf{w^Tx}+b)}} y=1+e−(wTx+b)1
它是一个分类模型。
2.4 线性判别分析LDA(Fisher判别分析)
y = w T x y=\mathbf{w^Tx} y=wTx
可以把它看做监督降维的一种方法,也可以用它来分类。
这个公式就是将当前样本原来的多维特征映射到一个一维空间里,即映射到一条直线上。
核心:最大化类间距离,最小化类内距离。(即最大化各类中心点的距离,最小化各类类内的协方差。)
2.5 感知机