作为一个统计出身的数据人,学习机器学习更要学习原理。对于数学原理透彻理解,不论是模型优化还是参数调整都将是一个很好的理论功底。在此参照网上一篇理论博文,再学习理解一遍。
常见机器学习算法(主要是一些常规分类器)大概流程和主要思想。
朴素贝叶斯:
有以下几个地方需要注意:
1. 如果给出的特征向量长度不同,这是需要归一化为同长度的向量(这里以文本分类为例),比如说是句子中的单词的话,则长度为整个词汇量的长度,对应位置是该单词出现的次数。【特征就是 我们做分析挖掘要用到的自变量,据实例定义】
2. 计算公式如下:
此处‘w’ 就是 特征,ci 便是类别。
其中一项条件概率可以通过朴素贝叶斯条件独立展开。要注意一点就是 的计算方法,而由朴素贝叶斯的前提假设【之所以称之为朴素,也是因为该性质,假设 变量的独立性】可知,
=
,因此计算方法是类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本中所有特征出现次数的总和。
3. 如果 中的某一项为0,则其联合概率的乘积也可能为0,即2中公式的分子为0,为了避免这种现象出现,一般情况下会将这一项初始化为1,当然为了保证概率相等,分母应对应初始化为2(这里因为是2类,所以加2,如果是k类就需要加k,术语上叫做laplace光滑【保证分母不为0】, 分母加k的原因是使之满足全概率公式)。
朴素贝叶斯的优点:
对小规模的数据表现很好,适合多分类任务,适合增量式训练。
缺点:
对输入数据的表达形式很敏感。
决策树:
决策树中很重要的一点就是选择一个属性进行分枝,因此要注意一下信息增益的计算公式,并深入理解它。
信息熵的计算公式如下:
其中的n代表有n个分类类别(比如假设是2类问题,那么n=2)。分别计算这2类样本在总样本中出现的概率p1和p2,这样就可以计算出未选中属性分枝前的信息熵。【GINI系数小的指标作为划分属性,或是信息增益大的属性进行分枝】
现在选中一个属性xi用来进行分枝,此时分枝规则是:如果xi=vx的话,将样本分到树的一个分支;如果不相等则进入另一个分支。很显然,分支中的样本很有可能包括2个类别,分别计算这2个分支的熵H1和H2,计算出分枝后的总信息熵H’=p1H1+p2H2.,则此时的信息增益ΔH=H-H’。以信息增益为原则,把所有的属性都测试一边,选择一个使增益最大的属性作为本次分枝属性。
决策树的优点:
计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征;
缺点:
容易过拟合(后续出现了随机森林,减小了过拟合现象);
Logistic回归:
Logistic是用来分类的,是一种线性分类器,需要注意的地方有:
1. logistic函数表达式为:
其导数形式为:
逻辑回归的损失函数: cost(hθ(x),y): if y=1: −log(hθ(x)),if y=0:−log(1−hθ(x))。
全体样本的损失函数可写为:cost(hθ(x),y)=∑−yi*log(hθ(x))−(1−yi)log(1−hθ(x)) 恰与后面对数似然函数相差一个符号(-)。
2. logsitc回归方法主要是用最大似然估计来学习的,所以单个样本的后验概率为:
到整个样本的后验概率:
其中:
通过对数进一步化简为:
3. 其实它的loss function为*-l(θ)**,因此我们需使loss function最小,可采用梯度下降法得到。
梯度下降法公式为:
Logistic回归优点:
1、实现简单;
2、分类时计算量非常小,速度很快,存储资源低;
缺点:
1、容易欠拟合,一般准确度不太高
2、只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;
线性回归:
线性回归才是真正用于回归的,而不像logistic回归是用于分类,其基本思想是用梯度下降法对最小二乘法形式的误差函数进行优化,当然也可以用normal equation直接求得参数的解,结果为: