机器学习的基本分类模型:
KNN,决策树,naive bayes,逻辑回归,SVM,adaboost

KNN:一种直接的学习方法,通过相似的近邻投票分类。模型不确定性有三:距离度量(相似性度量),特征权重分配,投票权重。不确定性因素很多,非常依赖训练和经验,容易发生过拟合,因为参数太多。但简单直接的方法,有时候是有奇效。在某个维度下相似性是大部分事物分类的通用规则,所以KNN做的好,可以解决很多问题。而关键是要理解真实世界的模型往往并不复杂。人为参与量越少越好。

决策树:决策树ID3算法用信息增益来判断分支条件。保证分类后信息增益最大。很多真实世界模型都很接近于此,决策树更重要的是对特征重要性进行排序。其实特征重要性是由目标分类定的,和目标分类相关性大的特征会提供较大的信息增益。但如果目标分类本身就不是可解释的,就是很复杂,很多人为限制,则特征也没有什么推广性。对于复杂的人为构建的模型,要抽象出本质的模式,再提取特征。

naive bayes:基于bayes的假设,链式法则简化后,只需要训练一阶先验概率,但仍然需要大量的样本进行训练,很容易过拟合。并且要求特征独立且权重一样。这些假设往往是不正确的。实现的时候注意处理连乘下溢出的问题,并平滑掉0概率。一般会使用其拓展:bayes网络,一种markov链的扩展。在计算贝叶斯网络概率,并分类的时候,和HMM一样,是有一个动态规划算法加速的。

逻辑回归:判别模型的鼻祖。从逻辑回归开始,我们开始了判别模型的学习。逻辑回归利用阶跃函数把连续的回归函数映射分类。符合人类对事物直观的理解。回归的方法本来就有很多变形,核心就是一个目标函数的优化。(X^TX)^-1和w成反比,调整目标函数,可以实现很多种对回归方程的优化,如岭回归,局部回归,lesso等。在回归的时候平衡模型的bias和variance。

SVM:其实和逻辑回归类似,目标函数不同。同时加入了核函数和松弛边界。比较通用的方法。即使样本很少也可以得到比较通用的分类模型。SVM的成功之处在于,抓住了分类问题非常核心的特点:支持向量。其实大部分的信息是在支持向量中。然后衍生出了新的目标函数。用laglange算子求解。求解方法也非常巧妙。

adaboost:
bagging方法每次训练的样本分布是一样的。而adaboost根据模型准确率调整样本的权重,最后根据准确率组合多个模型。可以把week learner组合起来,达到很高的分类准确度。可以和各种方法结合使用。

分类只是方法论,并不是世界观,特征的选择才是最重要的,优化特征其实是我们最需要的。根据真实世界的模型,抽象出独立有效地特征,特征的选择既是技术,也是艺术。

可以用来做特征选择的方法如下:
adboost(特征二分器,根据权重) 信息增益 岭回归图 pca lesso 卡方 等

在特征选择前去噪也是非常关键的。去掉模式化的噪音。

**

小结:

**
看到特别重要的一句话(大写加粗):
**

分类只是方法论,并不是世界观,特征的选择才是最重要的,优化特征其实是我们最需要的。根据真实世界的模型,抽象出独立有效地特征,特征的选择既是技术,也是艺术。

**

大道至简——浅谈机器学习分类模型选择相关推荐

  1. 浅谈机器学习之深度学习

    浅谈机器学习之深度学习 从人工智能到机器学习再到深度学习 人工智能是个很大的知识集合体,但目前有个和它关系最大的学科---机器学习 机器学习是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算 ...

  2. 浅谈机器学习之数据集构建

    浅谈机器学习之数据集构建 ​ 正如大家现在知道的,深度学习模型(DL)和机器学习模型(ML)是数据驱动型任务,在近乎完美的数据集面前,模型间的细微差异可以忽略.但要获得覆盖目标场景所有特征的样本,不仅 ...

  3. python模型保存save_浅谈keras保存模型中的save()和save_weights()区别

    今天做了一个关于keras保存模型的实验,希望有助于大家了解keras保存模型的区别. 我们知道keras的模型一般保存为后缀名为h5的文件,比如final_model.h5.同样是h5文件用save ...

  4. python 两点曲线_python机器学习分类模型评估

    python机器学习分类模型评估 1.混淆矩阵 在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵(适用于多 ...

  5. 浅谈linux线程模型和线程切换

    本文从linux中的进程.线程实现原理开始,扩展到linux线程模型,最后简单解释线程切换的成本. 刚开始学习,不一定对,好心人们快来指正我啊啊啊!!! linux中的进程与线程 首先明确进程与进程的 ...

  6. 传统机器学习分类模型预测股价涨跌

    前言 股票市场风起云涌,只有对股价有良好的预测才能够更好的抓住盈利机会.那么传统的机器学习分类模型在这方面的效果如何呢? 本文在只考虑5.10.20日移动平均线.移动指数平均线这六项指标的情况下,比较 ...

  7. 浅谈DirectX的模型加载

    浅谈DirectX的模型加载 xanxus - 2010年10月3日 - DirectX - 0 Comments 喜欢这篇文章吗?分享给你的朋友吧~  基于DirectX的游戏开发中,人物和模型由针 ...

  8. python量化投资视频_【邢不行|量化小讲堂系列21-Python量化入门】「视频讲解」浅谈机器学习与量化投资...

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总]请点击此处 [必读文章]: 个人微 ...

  9. 浅谈Java内存模型、并发、多线程

    浅谈Java内存模型.并发.多线程 Java内存模型(Java Memory Model)是围绕着在并发编程中如何处理原子性,可见性,有序性三个特性而建立的模型. 下面我简单描述一下这三个特性: 原子 ...

最新文章

  1. ssl握手过程和ca证书验证
  2. 【css】padding 和 margin的区别
  3. qt的exe启动时隐藏图标_系统小技巧:Win10桌面图标问题多 常见3种这么解
  4. AAAI 2019 Oral | 让TA说你想听的—基于音/视频特征解离的讲述者人脸生成
  5. boost::io::quoted用法的测试程序
  6. UVA10079 Pizza Cutting
  7. vista中安装语言包出错解决
  8. 利用ComplexHeatmap绘制热图(一)
  9. win7 ie11降级ie8
  10. 高德地图No implementation found for long com.autonavi.amap.mapcore.MapCore.nativeNewInstance(java.lang.S
  11. python对文件去重_python对文件夹内文件去重
  12. linux centos杀毒软件,在CentOS系统上安装开源杀毒软件ClamAV
  13. java excel 批注_Excel里“批注”的各项操作介绍
  14. uniapp 简单有效判断手指滑动方向
  15. SQLPro for SQLite for Mac(SQLite编辑器)
  16. 从现在开始,格外珍惜时间,让生活充实起来
  17. 7-6 输出大写英文字母分数 (15分)
  18. Hadoop数据完整性与CheckSum校验原理
  19. 嵌入式开发对学历门槛要求高吗?
  20. 01背包与完全背包(动态规划)(01背包)

热门文章

  1. 手机彩信编辑软件1.0
  2. 无聊猿的暴富、包袱与抱负
  3. 利用wget命令在linux中下载百度云盘文件
  4. Vue 点击眼睛图标不影响input焦点不关闭软键盘
  5. ActivityThread应用进程
  6. 消除iOS橡皮筋效果
  7. java 未定义_未定义,未指定和实现定义的行为
  8. ‘gbk‘ codec can‘t decode byte 0xac in position 9: illegal multibyte sequence
  9. [ 2204听力 ] 二
  10. 中蜂几月份自然分蜂_中蜂分蜂时间是什么时候?