机器学习-task01
机器学习笔记01
机器学习是什么?
简单来说是就是把数据丢到一个模型中,这个模型自动来完成一个目标的过程。这个过程中有一个输入和一个输出,还有一个位于输入输出之间的模型(暂且叫它黑盒吧),后面我会带你看看黑盒里面是什么东西。
如果这个目标是做一个汉堡,那么丢进去的数据就是汉堡的原材料,做为输入,输进黑盒里面,黑盒就是做汉堡的机器(只用丢进原料就能出成品)
机器学习 = 数据(输出) + 模型(model) + 结果(输出)
其中模型里包括机器学习算法、机器学习损失函数、最小化损失函数、验证,下面会分别介绍这些是什么,但在介绍之前,我想从解决机器学习任务的流程入手,来介绍这个模型里包含的内容。帮助大家串联起来记忆,不然知识点零零散散不容易形成自己的框架。
一个机器学习的任务大致可以分以下四步走:
第一步:选择机器学习算法
第二步:机器学习损失函数
第三步:最小化损失函数
第四步:验证机器学习算法好坏
第五步: 最终模型的选择
第一步:选择机器学习算法
根据实际的问题,先判断分类,聚类还是回归问题,再选择如下常见的机器学习算法。这里可以选择一种或者多种,后面看哪个模型出来的效果好,再来选择最终的模型。
常见的机器学习算法
-
RegressionAlgorithms(回归算法)
Linear Regression(线性回归)
Lasso Regression
Ridge Regression(岭回归)
Logistic Regression(逻辑回归) -
Decision Tree(决策树)
ID3
C4.5
CART -
SVM
-
Naive Bayes Algorithms(贝叶斯算法)
Naive Bayes
Gaussian Naive Bayes
Multinomial Naive Bayes
Bayesian Belief Network (BBN)
Bayesian Network (BN) -
kNN
-
Clustering Algorithms(聚类算法)
k-Means
k-Medians
Expectation Maximisation (EM)
Hierarchical Clustering -
K-Means
-
Random Forest(随机森林)
-
Gradient Boosting algorithms(梯度增强算法)
GBM
XGBoost
LightGBM
CatBoost -
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)
第二步:选择机器学习算法
-
0-1损失函数
L(y,f(x))={0, y = f(x)
1,y != f(x) -
绝对值损失函数
L(y,f(x))=∣y−f(x)∣ -
平方损失函数
L(y,f(x))=(y−f(x))^2 -
log对数损失函数
L(y,f(x))=log(1+e^−yf(x)) -
指数损失函数
L(y,f(x))=exp(−yf(x)) -
Hinge损失函数
L(w,b)=max{0,1−yf(x)
第三步:最小化损失函数
最小化损失函数的方法
机器学习参数调优
-
网格搜索
一种调参手段;穷举搜索:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果
-
随机搜索
与网格搜索相比,随机搜索并未尝试所有参数值,而是从指定的分布中采样固定数量的 参数设置。它的理论依据是,如果随即样本点集足够大,那么也可以找到全局的最大或最小值,或它们的近似值。通过对搜索范围的随机取样,随机搜索一般会比网格搜索要快一些。
-
贝叶斯优化算法
贝叶斯优化用于机器学习调参由J. Snoek(2012)提出,主要思想是,给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布(高斯过程,直到后验分布基本贴合于真实分布。简单的说,就是考虑了上一次参数的信息,从而更好的调整当前的参数。
第四步:验证机器学习算法好坏
机器学习算法的评价指标
用AUC判断分类器(预测模型)优劣的标准:
- AUC = 1 是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器.
- 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值.
- AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测.
第五步: 最终模型的选择
- 交叉验证
所有数据分为三部分:训练集、交叉验证集和测试集。交叉验证集不仅在选择模型时有用,在超参数选择、正则项参数 [公式] 和评价模型中也很有用。
- k-折叠交叉验证
假设训练集为S ,将训练集等分为k份:{S1,S2,…,Sk}{S_1, S_2, …, S_k}{S1,S2,…,Sk}.
然后每次从集合中拿出k-1份进行训练
利用集合中剩下的那一份来进行测试并计算损失值
最后得到k次测试得到的损失值,并选择平均损失值最小的模型
-
Bias与Variance,欠拟合与过拟合
欠拟合一般表示模型对数据的表现能力不足,通常是模型的复杂度不够,并且Bias高,训练集的损失值高,测试集的损失值也高.
过拟合一般表示模型对数据的表现能力过好,通常是模型的复杂度过高,并且Variance高,训练集的损失值低,测试集的损失值高.解决方法:
增加训练样本: 解决高Variance情况
减少特征维数: 解决高Variance情况
增加特征维数: 解决高Bias情况
增加模型复杂度: 解决高Bias情况
减小模型复杂度: 解决高Variance情况
参考: datawhale 机器学习算法组队打卡任务链接