在机器学习中,很多算法是很复杂的,很难容易的形象的解释,但是也有很多是算法复杂,但是理解起来简单。本文试图把学过的一些知识逐步有系统的用一二句话给小白解释清楚,一二句话解释不清楚的,也不勉强,我会给出高手文章的链接或者我自己日记的链接,希望这个页面作为自己的一个系统化的备忘,以及小白的简单入门。
另外,这个页面是逐步更新的。
- 机器学习基础
- 先行知识
- 凸优化convex optimization
- 概率论probability theory
- 贝叶斯理论Naive Bayesian Theory
- 信息论 information theory
- 凸优化convex optimization
- 概率论probability theory
- 贝叶斯理论Naive Bayesian Theory
- 信息论 information theory
- 有监督的算法 supervised
- 决策树 decision tree
- 决策树 decision tree
和数据结构的树是一样的,条件的组合决定样本的分类;就是像你想的那么简单,别想复杂了。提醒一点:不一定非要是二叉树啊。
- 无监督算法unsupervised
- k均值 k-means
- k均值 k-means
把数据按照距离的远近分为K(k未知)个分组,每个分组的中心点位该组数据的平均值。
- k-medoids.
- k-medoids.
类似于k-means来根据距离进行分组,但是中心点不是平均值而是最中间的那个点。
关于k-means和k-medoids的区别和联系,这个文章写的不错:http://blog.pluskid.org/?p=40
- 基于密度的聚类算法 DBSCAN(Density-Based Spatial Clustering of Application with Noise) .here.
- 基于密度的聚类算法 DBSCAN(Density-Based Spatial Clustering of Application with Noise) .here.
把密度大(单位体积内数据点比较多)的区域内的点作为一个分组,作为核心点,外围是边界点,不归属于任何区域的作为噪音点。
- 其他关键技术
- 熵 Entropy
- 熵 Entropy
熵是阻碍众多人理解信息论的难点,没有之一。而当年力劝香农(Shannon)使用这个概念的冯-诺依曼(von Neumann ,现代计算机奠基人)绝对是罪魁祸首,没有之一。原本香农准备用位(bit)的,那样该多好。
熵是度量信息(数据)不确定性的单位。比如猜东西,某个信息提示10下才能猜对就比另外信息提示两下就能猜对的信息不确定性高,熵也就大。稍微详细的入门解释请移步查看 吴军 写的 《数学之美》第六章:信息的度量和作用,包你明白。
-
- 损失函数 loss function
- 损失函数 loss function
损失函数是关键概念,因为它是优化的目标函数。寻找最优的分类或回归函数的时候,很多时候我们是很难对目标函数f(x)做优化甚至做计算的,但是如果转换一下思路:最好的结果就是那些能让错误的结果最少的,错误总和最小的,于是出现损失函数来计算错误的分类情况;做优化的时候,只要找到损失函数的最小值,也就找到了目标函数f(x)。一般说来,损失函数是凸函数(注意:中国的凸函数是口朝上的,外国的口朝下的),而凸函数有很好的优化算法和收敛性。
- 核技巧,核函数 kernel trick, kernel function
-
- 各种概率分布 distribution
- 模型选择和验证 Model selection and validation
- k折验证 k-fold
- 留一验证
- 过拟合 over fit
- 核技巧,核函数 kernel trick, kernel function
- 各种概率分布 distribution
- k折验证 k-fold
- 留一验证
- 过拟合 over fit
过拟合是模型泛化(generalization)能力的度量。理想情况下,根据训练数据得出来的模型应该在被预测的数据集上表现出同样的性能。但是有时候,模型过多的考虑了训练数据的特殊性和噪音,而使得模型过于复杂,于是在应用于其他数据集场景的时候就会表现的性能过差。这就是过拟合。
- 奥卡姆剃刀 Occam's Razor
- 奥卡姆剃刀 Occam's Razor
在软件设计领域也有另外的说法:KISS(keep it simple, stupid)。核心意思是,尽量保持简单的假想,设计和实现。有很多地方可以体现到这一思想,朴素贝叶斯(NBS)和隐马尔可夫(HMM,Hidden Markov Model)也是有一个非常简单而不是非常复杂的前提假设。