天天看点

怎么用机器学习解方程_用MATLAB实现简单的机器学习

      从昨天变清晰的那张图片开始,一个肥肠简单的机器学习入门实验(鬼知道我为什么敲了一晚上)。

0x01 随机数生成

先看实验要求:

怎么用机器学习解方程_用MATLAB实现简单的机器学习

生成随机数,50个来自T类M(0,1),50个来自F类N(1,1)

怎么用机器学习解方程_用MATLAB实现简单的机器学习

0x02 写分类器

怎么用机器学习解方程_用MATLAB实现简单的机器学习

可知需要写一个分类器

以下算法介绍来自百度百科,code修改自matlab函数库自带exp

K近邻分类器 (KNN)

      邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一。所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。

      kNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性。该方法在确定分类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别。 

      kNN方法在类别决策时,只与极少量的相邻样本有关。由于kNN方法主要靠周围有限的邻近的样本,而不是靠判别类域的方法来确定所属类别的,因此对于类域的交叉或重叠较多的待分样本集来说,kNN方法较其他方法更为适合。

怎么用机器学习解方程_用MATLAB实现简单的机器学习

随机森林分类器(Random Forest)

      在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。 而 "Random Forests" 是他们的商标。 

      这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合 Breimans 的 "Bootstrap aggregating" 想法和 Ho 的"random subspace method"以建造决策树的集合。

怎么用机器学习解方程_用MATLAB实现简单的机器学习

朴素贝叶斯(NBM)

       朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。最为广泛的两种分类模型是决策树模型(Decision Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBM)。

       和决策树模型相比,朴素贝叶斯分类器(Naive Bayes Classifier,或 NBC)发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。

       理论上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立的,这给NBC模型的正确分类带来了一定影响。

怎么用机器学习解方程_用MATLAB实现简单的机器学习

集成学习方法

      集成学习是使用一系列学习器进行学习,并使用某种规则把各个学习结果进行整合从而获得比单个学习器更好的学习效果的一种机器学习方法。一般情况下,集成学习中的多个学习器都是同质的"弱学习器"。

怎么用机器学习解方程_用MATLAB实现简单的机器学习

线性判别分析(LDA)

      线性判别分析(linear discriminant analysis,LDA)是对费舍尔的线性鉴别方法的归纳,这种方法使用统计学,模式识别和机器学习方法,试图找到两类物体或事件的特征的一个线性组合,以能够特征化或区分它们。所得的组合可用来作为一个线性分类器,或者,更常见的是,为后续的分类做降维处理。

怎么用机器学习解方程_用MATLAB实现简单的机器学习

支持向量机(SVM)

      支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类(binary classification)的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane) 。

      SVM使用铰链损失函数(hinge loss)计算经验风险(empirical risk)并在求解系统中加入了正则化项以优化结构风险(structural risk),是一个具有稀疏性和稳健性的分类器 [2] 。SVM可以通过核方法(kernel method)进行非线性分类,是常见的核学习(kernel learning)方法之一  。

怎么用机器学习解方程_用MATLAB实现简单的机器学习

0x03 统计查准率和查全率(KNN为例)

怎么用机器学习解方程_用MATLAB实现简单的机器学习

0x04 总结

    机器学习、深度学习、AI,我是晕了,你呢?