2019秋招备战 - 机器学习基础

机器学习基础

常用计算公式

  • TF-IDF(词频-逆文档频率, Term frequency - Inverse document frequency)
    • 词频(TF) = 某个词在文章中出现次数 文章总单词数 \text{词频(TF)} = \frac{\text{某个词在文章中出现次数}}{\text{文章总单词数}} 词频(TF)=文章总单词数某个词在文章中出现次数
    • 逆文档频率(IDF) = l o g ( 语料库总文档数 包 含 该 词 文 档 数 + 1 ) \text{逆文档频率(IDF)}=log(\frac{\text{语料库总文档数}}{包含该词文档数+1}) 逆文档频率(IDF)=log(+1语料库总文档数)

常用的损失函数

  • log loss(Cross Entropy loss, softmax loss) 多用于分类问题
    • softmax function: 假设有一个数组 V V V, V i V_i Vi代表第 i i i个元素,那么这个元素的softmax值是: S i = e V i ∑ j e V j S_i = \frac {e^{V_i}} {\sum_je^{V_j}} Si=jeVjeVi
    • 二分类: l = − y l o g ( y ^ ) − ( 1 − y ) l o g ( 1 − y ^ ) l = -ylog(\hat{y}) - (1-y)log(1-\hat{y}) l=ylog(y^)(1y)log(1y^)
    • 多分类: l = − ∑ y i l o g ( y i ^ ) l = -\sum y_ilog(\hat{y_i}) l=yilog(yi^)
  • hinge loss(used for maximum-marigin classification) 主要用于支持向量机中
    • l ( y ) = m a x ( 0 , 1 − y ∗ y ^ ) l(y) = max(0, 1-y*\hat{y}) l(y)=max(0,1yy^)
    • 标签值 y = ± 1 y=±1 y=±1, 预测值 y ^ ∈ R \hat{y}\in R y^R
  • square loss 主要用于最小二乘法中
    • l ( y , y ^ ) = ( y − y ^ ) 2 l(y,\hat y) = (y-\hat y)^2 l(y,y^)=(yy^)2
  • Exponential Loss(用于Adaboost)
    • l ( y , y ^ ) = e x p ( − y y ^ ) l(y,\hat y) = exp(-y \hat y) l(y,y^)=exp(yy^)
  • absolute loss
    • l ( y , y ^ ) = ∣ y − y ^ ∣ l(y,\hat{y}) = |y - \hat y| l(y,y^)=yy^
  • 0-1 loss
    • $l(y,\hat{y}) =
      \begin{cases}
      0, & \text{if y = y ^ y = \hat y y=y^} \
      1, & \text{if y ≠ y ^ y \neq \hat y y̸=y^}
      \end{cases} $

常用的线性回归

  • 最小二乘法线性回归(Oridinary Least Squares, OLS)

    • m i n ∥ X W − Y ∥ 2 2 min\left \lVert XW-Y\right \rVert^2_2 minXWY22
  • 岭回归(Ridge regression)普通线性回归的基础上叠加上L2惩罚项

    • m i n ∥ X W − Y ∥ 2 2 + α ∥ W ∥ 2 2 min\left \lVert XW-Y\right \rVert^2_2 +\alpha\left\lVert W \right\rVert_2^2 minXWY22+αW22
  • 套索回归(Lasso)Lasso是估计稀疏系数的线性模型

    • m i n 1 2 n s a m p l e s ∥ X W − Y ∥ 2 2 + α ∥ W ∥ 1 min\frac{1}{2n_{samples}}\left \lVert XW-Y\right \rVert^2_2 +\alpha\left\lVert W \right\rVert_1 min2nsamples1XWY22+αW1
  • Elastic Net (ElasticNet是一种带有L1正则项和L2正则项的线性模型) :

    • m i n 1 2 n s a m p l e s ∥ X W − Y ∥ 2 2 + α ρ ∥ W ∥ 1 + α ( 1 − ρ ) 2 ∥ W ∥ 2 2 min\frac{1}{2n_{samples}}\left \lVert XW-Y\right \rVert^2_2 +\alpha\rho\left\lVert W \right\rVert_1 + \frac{\alpha(1-\rho)}{2}\left \lVert W\right \rVert^2_2 min2nsamples1XWY22+αρW1+2α(1ρ)W22

L1, L2正则化

  • L1 Regularization
    • L1正则化是指权值向量w中各个元素的绝对值之和,通常表示为 ∣ ∣ w ∣ ∣ 1 ||w||_1 w1
  • L2 Regularization
    • L2正则化是指权值向量w中各个元素的平方和然后再求平方根 ,通常表示为 ∣ ∣ w ∣ ∣ 2 ||w||_2 w2
  • 特点与区别
    • L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择;
    • L2正则化可以防止模型过拟合(overfitting);一定程度上,L1也可以防止过拟合
    • L1范数没有解析解,但是L2范数有解析解,因此计算更加高效
    • ![此处输入图片的描述][1]

过拟合&欠拟合

  • 先明确几个概念:方差指的是模型之间的差异,偏差指的是模型预测值和数据之间的差异。
  • 过拟合:有时为了得到比较精确的模型而过度拟合训练数据,或者模型复杂度过高时,可能连训练数据的噪音也拟合了,导致模型在训练集上效果非常好,但泛化性能却很差,这时模型便过拟合了,或者说有很大的Variance,这时模型在不同训练集上得到的模型波动比较大,Variance 刻画了不同训练集得到的模型的输出与这些模型期望输出的差异
    • Early stopping是一种迭代次数截断的方法来防止过拟合的方法,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合
    • 正则化,常用的有 L1、L2 正则。而且 L1正则还可以自动进行特征选择;
    • Dropout随机删除一些神经元
    • 数据集扩增
  • 欠拟合:使用简单的模型去拟合复杂数据时,会导致模型很难拟合数据的真实分布,这时模型便欠拟合了,或者说有很大的 Bias,Bias 即为模型的期望输出与其真实输出之间的差异
    • 增加新特征,可以考虑加入进特征组合、高次特征,来增大假设空间;
    • 尝试非线性模型,比如核SVM 、决策树、DNN等模型;
    • 如果有正则项可以较小正则项参数 λ \lambda λ;
    • Boosting ,Boosting 往往会有较小的 Bias,比如 Gradient Boosting 等.

逻辑回归模型

  • 交叉熵数学形式
    • y l o s s = − y l o g ( y ^ ) − ( 1 − y ) l o g ( 1 − y ^ ) y_{loss} = -ylog(\hat{y}) - (1-y)log(1-\hat{y}) yloss=ylog(y^)(1y)log(1y^)
  • s i g m o i d sigmoid sigmoid函数的数学形式:
    • σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1+e^{-x}} σ(x)=1+ex1
    • ![此处输入图片的描述][2]
  • 逻辑回归的决策函数
    • P ( y = 1 ∣ x ; w ) = σ ( w T x ) = 1 1 + e − w T x P(y=1|x;w) = \sigma(w^Tx) = \frac{1}{1+e^{-w^Tx}} P(y=1x;w)=σ(wTx)=1+ewTx1
    • 如果 P ( y = 1 ∣ x ) > 0.5 P(y=1|x)>0.5 P(y=1x)>0.5,一般来讲,选择0.5作为阈值,若输出概率大于阈值,我们就认为输出预测类别为1。当然实际情况可以根据不同情况选择不同的阈值,如果对precision要求比较高,可以将阈值设大一些;如果对recall要求比较高,则可以将阈值设小一些
  • 参数求解(采用最大似然估计的方法,即找到一组参数,使得在这组参数下,数据似然度最大)
    • 逻辑回归中,似然度可以表示如下:
      • L ( w ) = P ( D ∣ w ) = ∏ σ ( w T x ) y ( 1 − σ ( w T x ) ) 1 − y L(w)=P(D|w) = \prod \sigma(w^Tx)^y(1-\sigma(w^Tx))^{1-y} L(w)=P(Dw)=σ(wTx)y(1σ(wTx))1y
    • 取对数,得到对数似然函数
      • L ( w ) = ∑ y l o g ( σ ( w T x ) ) + ( 1 − y ) l o g ( 1 − σ ( w T x ) ) L(w)=\sum ylog(\sigma(w^Tx)) + (1-y)log(1-\sigma(w^Tx)) L(w)=ylog(σ(wTx))+(1y)log(1σ(wTx))
    • 整个数据集上的平均log损失
      • J ( w ) = − 1 N L ( w ) J(w) = - \frac{1}{N}L(w) J(w)=N1L(w)
    • 在逻辑回归模型中,最大化似然函数和最小化损失函数其实是等价的。对于该类问题,可以采用梯度下降的方法,基本步骤如下
      • 选择下降方向(梯度方向, ∇ J ( w ) \nabla J(w) J(w) )
      • 选择步长,更新参数 w i = w i − 1 − α ∇ J ( w i − 1 ) w^i = w^{i-1} - \alpha \nabla J(w^{i-1}) wi=wi1αJ(wi1)
      • 重复以上两步直到收敛
  • 分类边界
    • 知道如何求解参数后,我们来看一下模型得到的最后结果是什么样的。很容易可以从sigmoid函数看出,当 w T x > 0 w^Tx>0 wTx>0 时, y = 1 y=1 y=1,否则 y = 0 y=0 y=0 w T x w^Tx wTx=0 是模型隐含的分类平面(在高维空间中,我们说是超平面)。所以说逻辑回归本质上是一个线性模型,但是,这不意味着只有线性可分的数据能通过LR求解,实际上,我们可以通过特征变换的方式把低维空间转换到高维空间,而在低维空间不可分的数据,到高维空间中线性可分的几率会高一些。
  • 正则化
    • 当模型的参数过多时,很容易遇到过拟合的问题。这时就需要有一种方法来控制模型的复杂度,典型的做法在优化目标中加入正则项,通过惩罚过大的参数来防止过拟合
    • J ( w ) = − 1 N ∑ y l o g ( σ ( w T x ) ) + ( 1 − y ) l o g ( 1 − σ ( w T x ) ) + λ ∣ ∣ w ∣ ∣ p J(w)=-\frac {1}{N}\sum ylog(\sigma(w^Tx)) + (1-y)log(1-\sigma(w^Tx)) + \lambda ||w||_p J(w)=N1ylog(σ(wTx))+(1y)log(1σ(wTx))+λwp
    • 一般情况下,取 p = 1 p=1 p=1 p = 2 p=2 p=2,分别对应L1,L2正则。L1正则倾向于使参数变为0,因此能产生稀疏解让L2范数的规则项 ∣ ∣ w ∣ ∣ 2 ||w||_2 w2最小,可以使得 w w w的每个元素都很小,都接近于0

朴素贝叶斯模型

  • 贝叶斯公式
    P ( B ∣ A ) = P ( A , B ) P ( A ) = P ( A ∣ B ) P ( B ) P ( A ) P(B|A) = \frac{P(A,B)}{P(A)} = \frac{P(A|B)P(B)}{P(A)} P(BA)=P(A)P(A,B)=P(A)P(AB)P(B)
    P ( 类别 ∣ 特征 ) = P ( 类 别 , 特 征 ) P ( 特征 ) = P ( 特 征 ∣ 类 别 ) P ( 类 别 ) P ( 特征 ) P(\text{类别}|\text{特征}) = \frac{P(类别,特征)}{P(\text{特征})} = \frac{P(特征|类别)P(类别)}{P(\text{特征})} P(类别特征)=P(特征)P()=P(特征)P()P()

  • 模型
    举个简单的例子吧,假设训练数据集中有4个特征 f 1 , f 2 , f 3 , f 4 f_1,f_2,f_3,f_4 f1,f2,f3,f4, 两个类别 c 1 , c 2 c_1,c_2 c1,c2, 根据贝叶斯公式
    P ( c 1 ∣ f 1 , f 2 , f 3 , f 4 ) = P ( f 1 , f 2 , f 3 , f 4 ∣ c 1 ) P ( c 1 ) P ( f 1 , f 2 , f 3 , f 4 ) = P ( f 1 ∣ c 1 ) P ( f 2 ∣ c 1 ) P ( f 3 ∣ c 1 ) P ( f 4 ∣ c 1 ) P ( c 1 ) P ( f 1 ) P ( f 2 ) P ( f 3 ) P ( f 4 ) P(c_1|f_1,f_2,f_3,f_4) = \frac{P(f_1,f_2,f_3,f_4|c_1)P(c_1)}{P(f_1,f_2,f_3,f_4)}=\frac{P(f_1|c1)P(f_2|c1)P(f_3|c1)P(f_4|c1)P(c_1)}{P(f_1)P(f_2)P(f_3)P(f_4)} P(c1f1,f2,f3,f4)=P(f1,f2,f3,f4)P(f1,f2,f3,f4c1)P(c1)=P(f1)P(f2)P(f3)P(f4)P(f1c1)P(f2c1)P(f3c1)P(f4c1)P(c1)
    朴素贝叶斯算法是假设各个特征之间相互独立,所以上式成立。如果没有这个假设,则等式不成立。在数据量很大的时候,根据中心极限定理,频率等于概率。所以可以直接用统计的方法计算上式。计算速度很快

  • 朴素贝叶斯分类的优缺点

    • 优点
      • 算法逻辑简单,易于实现
      • 时间复杂度和空间复杂度都比较低
    • 缺点
      • 因为朴素贝叶斯模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,在属性个数比较多或者属性之间相关性较大时,分类效果不好。
      • 而在属性相关性较小时,朴素贝叶斯性能最为良好。对于这一点,有半朴素贝叶斯之类的算法通过考虑部分关联性适度改进

K-means算法

k-means算法是输入聚类个数 k k k,以及包含 n n n个数据对象的数据库,输出满足方差最小标准k个聚类的一种算法。同一聚类中对象的相似度较高,不同聚类中的对象相似度较小。

  • 基本步骤

  • 从n个数据中任意选择 k k k个对象作为初始聚类中心

  • 计算每个数据与这些聚类中心的距离,并根据最小距离重新对相应对象进行划分

  • 重新计算每个聚类中心

  • 当满足一定条件是,算法终止

  • 时间复杂度

    • O ( n k t ) O(nkt) O(nkt), n n n是样本数, k k k是聚类个数, t t t是迭代次数

决策树模型

定义在特征空间与类空间上的条件概率分布,决策树实际上是将特征空间划分成了互不相交的单元每个从根到叶的路径对应着一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。实际中,哪个类别有较高的条件概率,就把该单元中的实例强行划分为该类别。

  • 特征选择

    • 根据特征的分类能力去选择最优特征,特征分类能力的衡量通常采用信息增益, 或者基尼系数
  • 模型终止条件

    • 一是所有训练数据子集被基本正确分类。二是没有合适的特征可选,即可用特征为0,或者可用特征的信息增益或信息增益比都很小了
  • 决策树的剪枝

    • 先验剪枝
    • 后验剪枝
  • 随机森林

    • 样本随机,随机抽取n个样本
    • 特征随机,随机选取k个特征
    • 建立m颗树,投票表决

SVM模型

  • 基本原理
    SVM是一种二分类模型。它的基本模型是在特征空间中寻找间隔最大化的分离超平面的线性分类器。(间隔最大是它有别于感知机)

    • 当训练样本线性可分时,通过硬间隔最大化(分隔超平面所产生的分类结果是最鲁棒的,对未知实例的泛化能力最强),学习一个线性分类器,即线性可分支持向量机;
    • 当训练数据近似线性可分时,引入松弛变量(允许一些样本不满足硬间隔约束条件),通过软间隔最大化,学习一个线性分类器,即线性支持向量机;
    • 当训练数据线性不可分时,通过使用核技巧(将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分)及软间隔最大化,学习非线性支持向量机
  • SVM多分类方法

    • 一对多法:个类别的样本归为一类,其他剩余的样本归为另一类,构造k个SVM分类器。分类时将未知样本分类为具有最大分类函数值的那类
    • 一对一法:在任意两类样本之间设计一个SVM,因此k个类别的样本就需要设计k(k-1)/2个SVM。Libsvm中的多类分类就是根据这个方法实现的
    • 层次支持向量机:层次分类法首先将所有类别分成两个子类,再将子类进一步划分成两个次级子类,如此循环,直到得到一个单独的类别为止

LDA模型

模型融合

https://blog.csdn.net/John_xyz/article/details/79602365

  • bagging
    • random forest
  • boosting
    • Adaboosting
    • Gradient boosting
    • xgboost

模型性能评价

  • 准确率(Accuracy)
    • Accuracy = Number of correct predictions Total number of predictions \text{Accuracy} = \frac{\text{Number of correct predictions}}{\text{Total number of predictions}} Accuracy=Total number of predictionsNumber of correct predictions
    • Accuracy = T P + T N T P + T N + F P + F N \text{Accuracy} = \frac{TP+TN}{TP+TN+FP+FN} Accuracy=TP+TN+FP+FNTP+TN
  • 精确率(Precision)
    • P = T P T P + F P P = \frac {TP} {TP+FP} P=TP+FPTP
  • 召回率(Recall)
    • R = T P T P + F N R = \frac {TP} {TP+FN} R=TP+FNTP
  • F1值(F1-score)
    • F1-score是precision和recall的调和均值
    • F 1 = 2 1 r e c a l l + 1 p r e c i s i o n = 2 ∗ precision ∗ recall precision+recall F1 = \frac {2} {\frac{1}{recall} + \frac{1}{precision}} = 2*\frac{\text{precision} * \text{recall}}{\text{precision+recall}} F1=recall1+precision12=2precision+recallprecisionrecall
  • ROC曲线下面积-ROC-AUC (area under curve)
    • ROC空间将假正例率(FPR)定义为 X 轴,真正例率(TPR)定义为 Y 轴。
    • TPR:在所有实际为正例的样本中,被正确地判断为正例之比率。
      • T P R = T P / ( T P + F N ) TPR = TP/(TP+FN) TPR=TP/(TP+FN)
    • FPR:在所有实际为负例的样本中,被错误地判断为正例之比率
      • F P R = F P / ( T N + F P ) FPR = FP/(TN+FP) FPR=FP/(TN+FP)
    • 将同一模型每个阈值 的 (FPR, TPR) 座标都画在ROC空间里,就成为特定模型的ROC曲线
  • PR曲线下面积-PR-AUC
    • PR(precision recall)曲线表现的是precision和recall之间的关系
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值