机器学习-task01

机器学习笔记01

机器学习是什么?

简单来说是就是把数据丢到一个模型中,这个模型自动来完成一个目标的过程。这个过程中有一个输入和一个输出,还有一个位于输入输出之间的模型(暂且叫它黑盒吧),后面我会带你看看黑盒里面是什么东西。

如果这个目标是做一个汉堡,那么丢进去的数据就是汉堡的原材料,做为输入,输进黑盒里面,黑盒就是做汉堡的机器(只用丢进原料就能出成品)

机器学习 = 数据(输出) + 模型(model) + 结果(输出)

其中模型里包括机器学习算法、机器学习损失函数、最小化损失函数、验证,下面会分别介绍这些是什么,但在介绍之前,我想从解决机器学习任务的流程入手,来介绍这个模型里包含的内容。帮助大家串联起来记忆,不然知识点零零散散不容易形成自己的框架。

一个机器学习的任务大致可以分以下四步走:

第一步:选择机器学习算法
第二步:机器学习损失函数
第三步:最小化损失函数
第四步:验证机器学习算法好坏
第五步: 最终模型的选择

第一步:选择机器学习算法

根据实际的问题,先判断分类,聚类还是回归问题,再选择如下常见的机器学习算法。这里可以选择一种或者多种,后面看哪个模型出来的效果好,再来选择最终的模型。

常见的机器学习算法

  1. RegressionAlgorithms(回归算法)

    Linear Regression(线性回归)
    Lasso Regression
    Ridge Regression(岭回归)
    Logistic Regression(逻辑回归)

  2. Decision Tree(决策树)

    ID3
    C4.5
    CART

  3. SVM

  4. Naive Bayes Algorithms(贝叶斯算法)

    Naive Bayes
    Gaussian Naive Bayes
    Multinomial Naive Bayes
    Bayesian Belief Network (BBN)
    Bayesian Network (BN)

  5. kNN

  6. Clustering Algorithms(聚类算法)

    k-Means
    k-Medians
    Expectation Maximisation (EM)
    Hierarchical Clustering

  7. K-Means

  8. Random Forest(随机森林)

  9. Gradient Boosting algorithms(梯度增强算法)

    GBM
    XGBoost
    LightGBM
    CatBoost

  10. Deep Learning Algorithms(深度学习算法)

    Convolutional Neural Network (CNN)
    Recurrent Neural Networks (RNNs)
    Long Short-Term Memory Networks (LSTMs)
    Stacked Auto-Encoders
    Deep Boltzmann Machine (DBM)
    Deep Belief Networks (DBN)

第二步:选择机器学习算法

  1. 0-1损失函数
    L(y,f(x))={0, ​y = f(x)
    1,y != f(x)​

  2. 绝对值损失函数
    L(y,f(x))=∣y−f(x)∣

  3. 平方损失函数
    L(y,f(x))=(y−f(x))^2

  4. log对数损失函数
    L(y,f(x))=log(1+e^−yf(x))

  5. 指数损失函数
    L(y,f(x))=exp(−yf(x))

  6. Hinge损失函数
    L(w,b)=max{0,1−yf(x)

机器学习-task01

第三步:最小化损失函数

最小化损失函数的方法
机器学习-task01
机器学习参数调优

  1. 网格搜索

    一种调参手段;穷举搜索:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果

  2. 随机搜索

    与网格搜索相比,随机搜索并未尝试所有参数值,而是从指定的分布中采样固定数量的 参数设置。它的理论依据是,如果随即样本点集足够大,那么也可以找到全局的最大或最小值,或它们的近似值。通过对搜索范围的随机取样,随机搜索一般会比网格搜索要快一些。

  3. 贝叶斯优化算法

    贝叶斯优化用于机器学习调参由J. Snoek(2012)提出,主要思想是,给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布(高斯过程,直到后验分布基本贴合于真实分布。简单的说,就是考虑了上一次参数的信息,从而更好的调整当前的参数。

第四步:验证机器学习算法好坏

机器学习算法的评价指标
机器学习-task01

机器学习-task01
机器学习-task01
机器学习-task01
用AUC判断分类器(预测模型)优劣的标准:

  • AUC = 1 是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器.
  • 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值.
  • AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测.

第五步: 最终模型的选择

  1. 交叉验证

所有数据分为三部分:训练集、交叉验证集和测试集。交叉验证集不仅在选择模型时有用,在超参数选择、正则项参数 [公式] 和评价模型中也很有用。

  1. k-折叠交叉验证

假设训练集为S ,将训练集等分为k份:{S1,S2,…,Sk}{S_1, S_2, …, S_k}{S1​,S2​,…,Sk​}.
然后每次从集合中拿出k-1份进行训练
利用集合中剩下的那一份来进行测试并计算损失值
最后得到k次测试得到的损失值,并选择平均损失值最小的模型

  1. Bias与Variance,欠拟合与过拟合

    欠拟合一般表示模型对数据的表现能力不足,通常是模型的复杂度不够,并且Bias高,训练集的损失值高,测试集的损失值也高.
    过拟合一般表示模型对数据的表现能力过好,通常是模型的复杂度过高,并且Variance高,训练集的损失值低,测试集的损失值高.

    解决方法:

    增加训练样本: 解决高Variance情况
    减少特征维数: 解决高Variance情况
    增加特征维数: 解决高Bias情况
    增加模型复杂度: 解决高Bias情况
    减小模型复杂度: 解决高Variance情况

参考: datawhale 机器学习算法组队打卡任务链接