常用的机器学习算法及其框架 - Go语言中文社区

常用的机器学习算法及其框架


机器学习发展到今天,大致可以分为以下两大类:传统的机器学习算法和深度学习算法

传统机器学习算法常用的有:(包括但不限于)

参考: https://blog.csdn.net/jrunw/article/details/79205322

1.SVM(支持向量机support vector machine)

要将两类分开,想要得到一个超平面,最优的超平面是到两类的 margin 达到最大,margin就是超平面与离它最近一点的距离;它主要应用于二分类问题,通过定位两类数据在几何空间中的边缘,来确定分类器。恰好能“最好地”将两类数据分开,这样的超平面(或曲面)就是SVM分类器。

这样的超平面在两类数据之间,同时应该具备如下两个条件:

  • 最近距离最远:两类数据中,每类数据都有一个点距离该超平面的距离是最近的,而“最好的”超平面要这个两个最近距离的和尽可能的远;
  • 等距:超平面距离两类数据最近的点的距离是相等的;

2.Adaboost(级联算法)

级联增强就是把若干个分类效果并不好的分类器综合起来考虑,会得到一个效果比较好的分类器。

3.决策树

根据一些 feature 进行分类,每个节点提一个问题,通过判断,将数据分为两类,再继续提问。这些问题是根据已有数据学习出来的,再投入新数据的时候,就可以根据这棵树上的问题,将数据划分到合适的叶子上。

4.随机森林

在源数据中随机选取数据,组成几个子集,S 矩阵是源数据,有 1-N 条数据,A B C 是feature,最后一列C是类别,由 S 随机生成 M 个子矩阵,这 M 个子集得到 M 个决策树。
将新数据投入到这 M 个树中,得到 M 个分类结果,计数看预测成哪一类的数目最多,就将此类别作为最后的预测结果成 M 个子矩阵。

5.逻辑回归

当预测目标是概率这样的,值域需要满足大于等于0,小于等于1的,这个时候单纯的线性模型是做不到的,因为在定义域不在某个范围之内时,值域也超出了规定区间。

这个模型需要满足两个条件 大于等于0,小于等于1
大于等于0 的模型可以选择 绝对值,平方值,这里用 指数函数,也一定大于0
小于等于1 用除法,分子是自己,分母是自身加上1,那一定是小于1的了

07c03e62f3d186930c0fced814e75f05.pnguploading.4e448015.gif转存失败重新上传取消07c03e62f3d186930c0fced814e75f05.pnguploading.4e448015.gif转存失败重新上传取消07c03e62f3d186930c0fced814e75f05.pnguploading.4e448015.gif转存失败重新上传取消

再做一下变形,就得到了 logistic regression 模型

2392f1846095e864142106000a281dbf.pnguploading.4e448015.gif转存失败重新上传取消2392f1846095e864142106000a281dbf.pnguploading.4e448015.gif转存失败重新上传取消2392f1846095e864142106000a281dbf.pnguploading.4e448015.gif转存失败重新上传取消

通过源数据计算可以得到相应的系数了

cd4c2e62c0076121df286b4eda66cb19.pnguploading.4e448015.gif转存失败重新上传取消cd4c2e62c0076121df286b4eda66cb19.pnguploading.4e448015.gif转存失败重新上传取消cd4c2e62c0076121df286b4eda66cb19.pnguploading.4e448015.gif转存失败重新上传取消

最后得到 logistic 的图形

d8f6c3214f56dbee8f461e70339ca8f0.pnguploading.4e448015.gif转存失败重新上传取消d8f6c3214f56dbee8f461e70339ca8f0.pnguploading.4e448015.gif转存失败重新上传取消d8f6c3214f56dbee8f461e70339ca8f0.pnguploading.4e448015.gif转存失败重新上传取消

6.K最邻近(K nearest neighbours)

给一个新的数据时,离它最近的k个点中,哪个类别多,这个数据就属于哪一类

eg:要区分 猫 和 狗,通过 claws 和 sound 两个feature来判断的话,圆形和三角形是已知分类的了,那么这个 star 代表的是哪一类呢

k=3时,这三条线链接的点就是最近的三个点,那么圆形多一些,所以这个star就是属于猫

bccb16c40649a75b2a99c4affb9c1948.pnguploading.4e448015.gif转存失败重新上传取消bccb16c40649a75b2a99c4affb9c1948.pnguploading.4e448015.gif转存失败重新上传取消bccb16c40649a75b2a99c4affb9c1948.pnguploading.4e448015.gif转存失败重新上传取消

7.K 均值

想要将一组数据,分为三类,粉色数值大,黄色数值小
最开心先初始化,这里面选了最简单的 3,2,1 作为各类的初始值
剩下的数据里,每个都与三个初始值计算距离,然后归类到离它最近的初始值所在类别

688a81c8a234a2ec9dfbbb104ca01cb6.pnguploading.4e448015.gif转存失败重新上传取消688a81c8a234a2ec9dfbbb104ca01cb6.pnguploading.4e448015.gif转存失败重新上传取消688a81c8a234a2ec9dfbbb104ca01cb6.pnguploading.4e448015.gif转存失败重新上传取消

分好类后,计算每一类的平均值,作为新一轮的中心点

e775e4988db27c0f99cc6054fae402b4.pnguploading.4e448015.gif转存失败重新上传取消e775e4988db27c0f99cc6054fae402b4.pnguploading.4e448015.gif转存失败重新上传取消e775e4988db27c0f99cc6054fae402b4.pnguploading.4e448015.gif转存失败重新上传取消

几轮之后,分组不再变化了,就可以停止了

fa5860bb06506e36382884537e067222.pnguploading.4e448015.gif转存失败重新上传取消fa5860bb06506e36382884537e067222.pnguploading.4e448015.gif转存失败重新上传取消fa5860bb06506e36382884537e067222.pnguploading.4e448015.gif转存失败重新上传取消

 

8.神经网络

Neural Networks 适合一个input可能落入至少两个类别里

NN 由若干层神经元,和它们之间的联系组成
第一层是 input 层,最后一层是 output 层,中间层称为hidden层(若干个隐层神经元)

input 输入到网络中,被激活,计算的分数被传递到下一层,激活后面的神经层,最后output 层的节点上的分数代表属于各类的分数,下图例子得到分类结果为 class 1

同样的 input 被传输到不同的节点上,之所以会得到不同的结果是因为各自节点有不同的weights 和 bias

这也就是 forward propagation

39b15656974cd303db56446f8a81237f.pnguploading.4e448015.gif转存失败重新上传取消39b15656974cd303db56446f8a81237f.pnguploading.4e448015.gif转存失败重新上传取消39b15656974cd303db56446f8a81237f.pnguploading.4e448015.gif转存失败重新上传取消

9.马尔科夫(Markov Chains)

Markov Chains 由 state <状态>和 transitions<转换> 组成;

eg:根据这一句话 ‘the quick brown fox jumps over the lazy dog’,要得到 markov chain步骤,先给每一个单词设定成一个状态,然后计算状态间转换的概率

6870ac064311c3433b7fe89e22128a75.pnguploading.4e448015.gif转存失败重新上传取消6870ac064311c3433b7fe89e22128a75.pnguploading.4e448015.gif转存失败重新上传取消6870ac064311c3433b7fe89e22128a75.pnguploading.4e448015.gif转存失败重新上传取消

这是一句话计算出来的概率,当你用大量文本去做统计的时候,会得到更大的状态转移矩阵,例如 the 后面可以连接的单词,及相应的概率

7a4589983d48ad7b9cdfab65a01b95a4.pnguploading.4e448015.gif转存失败重新上传取消7a4589983d48ad7b9cdfab65a01b95a4.pnguploading.4e448015.gif转存失败重新上传取消7a4589983d48ad7b9cdfab65a01b95a4.pnguploading.4e448015.gif转存失败重新上传取消

生活中,键盘输入法的备选结果也是一样的原理,模型会更高级

深度学习算法:

经典的网络框架有很多,检测网络如rcnn系列,yolo,ssd等;识别网络有LeNet,Googlenet,AlexNet,ResNet等,后续补充

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/yyangzhenjie/article/details/89448607
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-04-11 00:31:41
  • 阅读 ( 1569 )
  • 分类:算法

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢