无从下手?一文了解经典机器学习算法
2018-04-03 17:30
453 查看
声明:
参考——入门 | 机器学习新手必看10大算法
本文中的github链接指向我的github机器学习实战代码
其中,xx为输入特征特征向量。它的损失函数是基于最小二乘法的MSE,优化方法是梯度下降法。
优点:训练速度快,可解释性强。
缺点:对异常样本敏感(抗噪声能力差),模型简单难以学习高维特征空间输入。
经验:由于线性回归模型简单,可用于前期获取baseline。若要提高线性回归的性能:
训练前进行特征降维
提出噪声样本
数学原理=>github
Logistic 回归(这是一种分类模型)与线性回归相似,目标都是找到每个输入变量的权重,即系数值。与线性回归不同的是,Logistic 回归对输出的预测使用被称为 logistic 函数的非线性函数进行变换。
y=sigmoid(w⋅x+b)=11+exp(−(w⋅x+b))y=sigmoid(w⋅x+b)=11+exp(−(w⋅x+b))
损失函数为二分类交叉熵L=−∑(plogp+(1−p)log(1−p))L=−∑(plogp+(1−p)log(1−p)),优化算法为梯度下降。
优缺点和经验与线性回归别无二致。
待补充~
朴素贝叶斯是一个简单但是好用的预测建模算法。该模型由两种概率组成,这两种概率都可以直接从训练数据中计算出来:
每个类别的概率;
给定每个 x 的值,每个类别的条件概率。
一旦计算出来,概率模型可用于使用贝叶斯定理对新数据进行预测。
朴素贝叶斯之所以是朴素的,是因为它假设每个输入变量是独立的。这是一个强大的假设,真实的数据并非如此,但是,该技术在大量复杂问题上非常有用。
关于分类回归树可以参考《统计学习方法》——李航。
优点:训练速度快,可解释性强,模型的拟合能力强,不需要对输入进行归一化
缺点:容易过拟合,需要进行剪枝
KNN算法在整个训练集中搜索K个最近的样本,并汇总这K个样本的输出,以预测新数据点。
图片来源:新浪科技
图片来源:新浪科技
图片来源:新浪科技
AdaBoost 是第一个为二分类开发的真正成功的 boosting 算法。这是理解 boosting 的最佳起点。现代 boosting 方法建立在 AdaBoost 之上,最有名的是GBDT。
优点:准确率高
缺点:对异常样本敏感(抗噪声能力差)
参考——入门 | 机器学习新手必看10大算法
本文中的github链接指向我的github机器学习实战代码
常见机器学习算法的使用情况
回归
线性回归
y=w⋅x+by=w⋅x+b其中,xx为输入特征特征向量。它的损失函数是基于最小二乘法的MSE,优化方法是梯度下降法。
优点:训练速度快,可解释性强。
缺点:对异常样本敏感(抗噪声能力差),模型简单难以学习高维特征空间输入。
经验:由于线性回归模型简单,可用于前期获取baseline。若要提高线性回归的性能:
训练前进行特征降维
提出噪声样本
数学原理=>github
分类
Logistic回归
Python代码——githubLogistic 回归(这是一种分类模型)与线性回归相似,目标都是找到每个输入变量的权重,即系数值。与线性回归不同的是,Logistic 回归对输出的预测使用被称为 logistic 函数的非线性函数进行变换。
y=sigmoid(w⋅x+b)=11+exp(−(w⋅x+b))y=sigmoid(w⋅x+b)=11+exp(−(w⋅x+b))
损失函数为二分类交叉熵L=−∑(plogp+(1−p)log(1−p))L=−∑(plogp+(1−p)log(1−p)),优化算法为梯度下降。
优缺点和经验与线性回归别无二致。
LDA线性判别分析
Logistic 回归是一种分类算法,传统上,它仅限于只有两类的分类问题。如果你有两个以上的类别,那么线性判别分析是首选的线性分类技术。待补充~
朴素贝叶斯分类
Python代码——github朴素贝叶斯是一个简单但是好用的预测建模算法。该模型由两种概率组成,这两种概率都可以直接从训练数据中计算出来:
每个类别的概率;
给定每个 x 的值,每个类别的条件概率。
一旦计算出来,概率模型可用于使用贝叶斯定理对新数据进行预测。
朴素贝叶斯之所以是朴素的,是因为它假设每个输入变量是独立的。这是一个强大的假设,真实的数据并非如此,但是,该技术在大量复杂问题上非常有用。
CART分类回归树
Python代码——github关于分类回归树可以参考《统计学习方法》——李航。
优点:训练速度快,可解释性强,模型的拟合能力强,不需要对输入进行归一化
缺点:容易过拟合,需要进行剪枝
K近邻算法
Python代码——githubKNN算法在整个训练集中搜索K个最近的样本,并汇总这K个样本的输出,以预测新数据点。
图片来源:新浪科技
多层感知机
多层感知机基本被深度学习取代,本文不作介绍。支持向量机
支持向量机是传统机器学习首选的分类方法。图片来源:新浪科技
Bagging和随机森林
图片来源:新浪科技
Boosting和AdaBoost
Boosting是一种集成技术,它试图集成一些弱分类器来创建一个强分类器。AdaBoost 是第一个为二分类开发的真正成功的 boosting 算法。这是理解 boosting 的最佳起点。现代 boosting 方法建立在 AdaBoost 之上,最有名的是GBDT。
优点:准确率高
缺点:对异常样本敏感(抗噪声能力差)
相关文章推荐
- 无从下手?一文了解经典机器学习算法
- 无从下手?一文了解经典机器学习算法
- 一文让你初步了解壮族——一个奇葩但同样优秀的民族
- 我们使用eclipse编辑spring配置文件时,经常没有提示,而无从下手时。 现在我们就来解决没有提示的问题。
- 经典算法研究系列:六、教你初步了解KMP算法、updated
- 前无古人,后无来者经典日志大汇总--------生活珍藏版(其实你并了解你所生活的世界!)
- Android兼容测试无从下手?
- 一文了解阿里云CDN HTTP2.0
- 一文深入了解Redis!
- 必须了解的经典排序算法整理
- 一文让你彻底了解iOS字体相关知识
- 明明想写些文字,“提笔”却无从下手
- 如果你有技术却无从下手,有梦却无法触及!
- 想了解产品经理吗?---经典文章
- 新手学习,web编程入门(一)——无从下手的困惑
- 一文了解卷积神经网络在股票中应用
- 一文让你彻底了解iOS字体相关知识
- TensorFlow初学者必须了解的55个经典案例(HR)
- 一文了解强化学习
- 图解十大经典的机器学习算法