机器学习简单理解
才开始接触机器学习,有错之处大神请指教!
以前一直只是听说机器学习这个话题,在哪个应用领域多么牛逼,多么的厉害咯,说白了,以前就是仅仅听大牛们吹机器学习,心里可能只有这么个名词而已,具体干什么的完全是小白。直到最近开始接触机器学习,从周志华的机器学习开始入门,第一反应就是真的难,特别难,开始看这本书的时候,其实比较抓狂,里面很多公式都不会推导,有时候甚至都开始怀疑人生了。
虽说难吧,但是还得看,配合在weka上跑机器学习算法,对它的理解才慢慢深入了起来。周志华的机器学习是由如何来分别一个西瓜的好坏来引入的,拿到生活中,有时候我们去买西瓜的时候,总会根据它的条纹、颜色、根蒂、敲的声音清脆程度等等,为什么我们第一反应就是根据这些特征的判断?就是因为我们依靠经验得出的结论。初中生物就有学过,人是高级动物,有思维的能力。而机器学习,个人简单的理解,就是让机器来学习人的思维过程,让机器可以根据大量的经验,从而尽量准确的得到结果。说起来简单,但是这个过程做起来真的很困难,比如在weka上使用分类算法跑一些数据时,有时候为了增加很小很小的精度,可能要花费大量的时间去做参数调整;然后对不平衡数据、完备数据集、不完备数据集、、多标签数据集等等,数据集特点不同,可能又不适合这个分类器,在对分类器做选择,又是一个花时间的过程。在现有的weka的算法上跑数据想提高精度这么困难,何况在我们自己设计算法,搞科研的时候。
通过看周志华的机器学习,简单的了解了一些基本的算法,但是并不深入。
1、决策树是一类常用的机器学习方法,基于树的结构来进行决策,是面临决策问题是自然的一种处理机制。决策树里面,如何选择最优划分属性是关键,随着划分过程不断进行,希望决策树的分支结点所包含的样本尽可能属于同一类别,即“纯度”越来越高。信息增益、增益率、基尼指数这个三个东西是最重要的理论,公式也较容易理解,都是由信息增益引申出来的。
2、神经网络是根据由生物神经网络模型抽象出来的,最基本的是神经元模型,把很多个的神经元按一定的层次结构连接起来,就得到了神经网络。更新权重是最重要的环节,具体的算法实现自己理解得不太深入。
3、支持向量机很好理解,就是希望在训练集D在样本空间找到一个划分超平面,将不同的类别的样本分开。但这种划分超平面可能很多,希望产生的分类结果是最鲁棒的,对未见示例的泛化能力最强。难点在算法里面引入的计算超平面的核函数和拉格朗日乘子法。
4、朴素贝叶斯是在估计后验概率P(c│x)的有很大困难时引入的(困难是:类条件概率P(x|c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得),于是引入属性条件独立性假设,得到朴素贝叶斯分类器。我觉得朴素贝叶斯很强大实用,但在极其要求精度的情况下,还是要做调整的,毕竟在现实生活中,不可能所有属性都相互独立。
5、集成学习很好理解,是通过构建并结合多个学习器来完成学习任务,也成为多分类器系统。其实只要基学习器掌握好了,选择它们作为个体学习器然后结合起来就可以,满足的条件是“好而不同”。
6、聚类算法里面了解的是KNN,思想就是一个样本在特征空间中K个最相邻样本中的大多数样本属于某一类别,则该样本属于这个类别。据说KNN是所有算法中最简单的算法,个人觉得还是很有道理的,毕竟算法思想确实简单明了,且没有什么很复杂的数学理论。
总的来说,这条路很漫长……现在基本处于0基础的状态,需要掌握的东西还太多太多了,需要学习的内容也还很多。