首页 > 代码库 > 机器学习入门指引<一>

机器学习入门指引<一>

    机器学习,作为门时髦、热门的计算机应用技术,特别是随着深度学习的流行,推动“大数据+深度模型”的模式,为人工智能和人机交互的发展提供巨大的空间。

    和数据挖掘一样,利用大量的数据分析建立有效的模型以便提供分类或者决策支持,机器学习也是利用经典的算法(聚类,SVM,神经网络,深度学习等)建立数据模型,不同的是机器学习偏向于算法的设计;更直接的说,机器学习,就是一些建立模型进行数据分析的算法包。

    作为典型的机器学习的方法,人工神经网络模型的应用经典而又广泛。NN(neural network)的一般步骤是将数据样本作为输入,提取数据特征然后训练NN模型,再将模型应用在测试数据集上得到输出。研究机器学习的一般步骤,类似于NN,需要补充的是提取数据特征后选取的算法包含很多,例如,决策树、贝叶斯分类器、SVM等。

    下面分别简单讲讲各种典型的机器学习的方法:

    1.决策树

    决策树的设计是这样的,根据样本最明显的属性特征设为根节点,分支分别代表着属性的值,叶子节点代表着分类的结果。

    其算法设计思路是利用信息熵理论找出属性的明显性,将最明显的属性特征设为根节点,然后根据这个属性的不同值进行分支,得到新节点,如果新节点能较好模拟出分类结果;如果得不到分类结果,继续以新的节点迭代上述过程。

    算法设计中遇到的问题,首先是如何根据信息熵理论得到最明显的属性?

    熵,在不同领域代表着不用的具体含义。在物理学,熵,指的是大量微粒在空间的位置和速度的分布密度的体现,熵越大,粒子的无序性越明显;在香农的信息论中,信息熵指的是信息的不确定性,其定义是  E(S)=-P(S1)*log(P(S1))-P(S2)*log(P(S2)),  其中集合S包含两个集合S1和S2,对应的概率分别是P(S1)和P(S2)。在熵理论中,信息的增加意味着不确定性的减少,也就是熵的减小;信息增益在诸多系统中定义为:在某一个操作之前的系统熵与操作之后的系统熵的差值也即是不确定性的减小量。将信息熵的增益理论用在决策树的划分上面,通过比较属性划分后的信息熵增益,比较明显性。

    其次遇到的问题是分类结果的过拟合问题?

    过拟合,主要指对于某假设的模型,在数据训练集合中能够较好模拟出结果,但是在整个数据集合中表现出较大的误差。过拟合问题,这里浅谈辄止。

    决策树的优点是对于小规模的数据集,能够有较快的训练速度和较好的训练识别率;缺点是当数据集很大的时候,训练误差较大,决策树的建立会带来很大的内存消耗等。

     2、贝叶斯学习

    概率分析中如果给出P(A|B),怎么求P(B|A)呢?

    贝叶斯公式,熟悉不过,P(B|A)=P(A|B)*P(B)/P(A)。那么,贝叶斯公式体现了什么?

    贝叶斯公式,体现了假设的置信度。简单来讲就是在先决概率的条件,怎么做出假设,使得假设能够最大体现已知的数据集。所以,贝叶斯学习为推理假设提供了可靠的概率估计。下面分析一下基于GMMs(高斯混合模型,Gaussian Mixture Models)的EM算法:

    GMMs下的EM算法,用个通俗的例子来讲,教室里有200个同学(身高数据集为H),已知男女同学的身高分别服从两个不同的高斯分布,如何求得男、女各自的高斯参数θ=[u, ?]T,使得这个学校里面出现这200个人身高的概率最大。利用极大似然估计,能够算出θ1和θ2(分别表示男、女身高的高斯模型),使得这个学校的身高数据中出现H的概率最大。如果200个同学他们都带上面具,不知性别,那么只有知道性别,根据每个人的身高数据才能得到θ;只有得到θ,才能将戴面具的同学进行性别分类。例如,假设u1=175(表示男生的平均身高是175),如果某个人身高是180,把他归为男生。这就衍生出是先有鸡还是先有蛋的问题。

    EM算法,过程就是先假设θ,然后根据这个θ可以将200人分呈男女两类;利用这个新得到的分类,又可以根据最大似然估计算出新的θ值;迭代这两个步骤,直到θ收敛。

    3.基于实例的学习——KNN(K近邻算法,K nearest neighbor)

    基于实例的学习,要做的事就是就是如何将实例数据存储起来,等到新实例发生时,将它与存储的实例进行临近划分,并且使用临近值来逼近目标函数。KNN算法,核心意思就是将实例数据按照局部临近的原则进行分类,取出某个维上最近的K个点来逼近当前新实例的函数值。

    其基本思路如下,假设定义两个实例的欧式距离为D(Xi,Xj)=||(Xi-Xj)^2||(相当于求欧式距离),如果输入一个新实例X,可以利用求min(D(X,Xi)),Xi取自数据集,将新实例划分到某个分类中,分类中的逼近函数为F;那么可以求出某一维上最近的K个点,F(X)=∑F(Xi) / K,(其中i=1,2....K.);对k-近邻算法的一个改进是对k个近邻的贡献加权,越近的距离赋予越大的权值。

    4.SVM(支持向量机support victor machine)

    SVM,作为一种分类算法,引起了前十年的机器学习热潮。SVM,理解起来很简单,如其名字,找到对分类有支持作用的向量来找到分类域,这样做的作用是可以在高维空间利用少数据量就可以进行分类。

    

机器学习入门指引<一>