data mining 和 machine learning本质是一码事儿,ml更贴近数学。(在我眼里ml更底层,data mining、computer vision、nlp 都是用到了它)
machine learning定义(Mike Jodan)
A field that bridge computations and statistics, with ties to information theory, signal processing, algorithms, control theory and optimization theory.
ML可以用这样一个公式表示:
ML=Matrix + Statistics + Optimization + Algorithm
1.definition
data $X=[x_1 ,...,x_n]^T_{(n\times p)}$是一个$n\times p$的矩阵,它包含n个 sample。
sample $x_i=(x_{1i},...,x_{pi})$是一个p维向量,包含p个特征(features)。
对于每个sample,可以给予一个 label $y_i$。
例如,人是sample,身高体重是feature,性别是label。往往,我们要预测sample的label,也即
input sample-> output label
分类问题:label的取值为有限个,如果label有两个(一般为0/1或者-1/+1),则是二分类问题,否则是多分类问题。
回归问题:label的取值是无限的,例如$y\in \mathbb{R}$.
监督学习:先给定一些sample( training samples)以及它们的label,然后预测新给的sample。分类、回归都属于监督学习。
2.linear model
\[ y=x^T a\]
线性模型即通过feature的线性组合来预测label,换言之,认为每个feature都有权重,对feature加权求和来预测y。
要确定weight $a$, 最直接的就是通过统计中的最小二乘来估计,即最小化
\begin{align*} L=&\frac{1}{2}\sum_{i=1}^n(y_i-x_i^Ta)^2 \\ =&\frac{1}{2}\|y-Xa\|_2^2 \end{align*}
通过求导来求,
\[\frac{\partial L}{\partial a}=X^T(y-Xa)=0\]
如果$X^TX$可逆,我们可以解得
\[ a=(X^TX)^{-1}X^Ty . \]
当$n>p$时$,X^TX$一般都是可逆的。但有时feature很多,sample没那么多,这时不可逆,就没有唯一解了(underdetermined)。
这时可以给$L$(即loss function)加一个penalty $\lambda p(a)$,其中$\lambda>0$。常常我们令$p(a)=a^Ta$,这个问题就变成了ridge regression(脊回归):
\[ L(a)+\lambda p(a)= \frac{1}{2}\|y-Xa\|_2^2+\frac{1}{2}\lambda a^Ta \]
求导得:
\[\frac{\partial L}{\partial a}=X^T(y-Xa)-\lambda a=0\]
这时由于$X^TX+\lambda I_p$是正定矩阵必然可逆,我们有
\[ a=(X^TX+\lambda I_p)^{-1}X^Ty . \]
那么$\lambda $这个数的值我们该怎么给呢?为此,我们需要把数据划分为三类:Training data(训练数据),Validation data(验证数据) and Test data(测试数据)。训练数据是用来学$a$的,测试数据是用来调$\lambda$,测试数据就是要预测的数据(或者验证最终结果的)。
此外,$p(a)=\|a\|_1=\sum_{i=1}^p\|a_i\|$也比较常见,这时变为Lasso问题,即
\[ \frac{1}{2}\|y-Xa\|_2^2+\frac{1}{2}\lambda \|a\|_1 \]
用1范数作为penalty有这样一个特点,它会令$a$的一些项为0,这样就能起到自动选feature的功能。
3.极大似然估计(MLE)
注意到,在刚才的讨论中,利用线性模型我们得到的$y$是连续的,那么怎么用于分类问题呢?例如二分类问题$y\in\{0,1\}$,一种最简单的方法是给定一个$\alpha$,如果$y<\alpha$,则$y=0$,否则$y=1(0<\alpha<1)$。
为了有更严谨的数学依据,可以假设y服从一个伯努利分布,$\{y_i\} i.i.d. ~Ber(\alpha)$,由伯努利分布,Loss function为:
\[ L= \prod_{i=1}^n p(y_i)= \prod_{i=1}^n \alpha^{y_i}(1-\alpha)^{(1-y_i)} \]
我们需要考虑怎么把$L$和数据$X$联系起来,以及怎么定$\alpha$。
\begin{align*} f=&-ln L \\=&-\sum_{i=1}^n [y_iln\alpha+(1-y_i)ln(1-\alpha)] \end{align*}
令$$\alpha=\frac{1}{1+exp(-x^Ta)},$$
$f$就变成了关于$a$的函数,这个问题也就变成了一个优化问题。
此外,一样可以加penalty(惩罚项)或者说是regularization(正则化)。
4.无监督和半监督
之前说到p很大的情况,除了加正则项外还可以降维,也就是通过某种变换,由$x\in{\mathbb{R}^p}$到$z\in\mathbb{R}^q(p<min\{p,q\})$化为新的特征表示。降维可分为两种方法:
第一种是通过线性变换,即$ z=Bx,B\in\mathbb{R}^{q\times p} $, 如PCA。
第二种是非线性的$z=f(x)$。
非监督学习:只考虑sample。
除了降维,另一种典型的非监督是聚类问题,只有samples没有label,它通过feature把samples分为几类。 没有测试数据、训练数据之分。
半监督学习:少量的sample有label,大量的sample没有label。