zoukankan      html  css  js  c++  java
  • 机器学习算法之旅

    在理解了我们须要解决的机器学习问题之后,我们能够思考一下我们须要收集什么数据以及我们能够用什么算法。本文我们会过一遍最流行的机器学习算法,大致了解哪些方法可用,非常有帮助。


    机器学习领域有非常多算法,然后每种算法又有非常多延伸,所以对于一个特定问题,怎样确定一个正确的算法是非常困难的。本文中我想给你们两种方法来归纳在现实中会遇到的算法。


    学习方式


    依据怎样处理经验、环境或者不论什么我们称之为输入的数据,算法分为不同种类。机器学习和人工智能课本通常先考虑算法能够适应的学习方式。

    这里仅仅讨论几个基本的学习风格或学习模型,而且有几个基本的样例。这样的分类或者组织的方法非常好,由于它迫使你去思考输入数据的角色和模型准备的过程,然后选择一个最适合你的问题的算法,从而得到最佳的结果。


    ●监督学习:输入数据被称为训练数据,而且有已知的结果或被标记。比方说一封邮件是否是垃圾邮件,或者说一段时间内的股价。模型做出预測,假设错了就会被修正,这个过程一直持续到对于训练数据它可以达到一定的正确标准。问题样例包含分类和回归问题,算法样例包含逻辑回归和反向神经网络。


    ●无监督学习:输入数据没有被标记,也没有确定的结果。模型对数据的结构和数值进行归纳。问题样例包含Association rule learning和聚类问题,算法样例包含 Apriori 算法和K-均值算法。


    ●半监督学习:输入数据是被标记的和不被标记的数据的混合,有一些预測问题可是模型也必须学习数据的结构和组成。问题样例包含分类和回归问题,算法样例基本上是无监督学习算法的延伸。


    ●增强学习:输入数据能够刺激模型而且使模型做出反应。反馈不仅从监督学习的学习过程中得到,还从环境中的奖励或惩处中得到。问题样例是机器人控制,算法样例包含Q-learning以及Tempora difference learning。


    当整合数据模拟商业决策时,大多数会用到监督学习和无监督学习的方法。当下一个热门话题是半监督学习,比方图像分类问题,这中问题中有一个大的数据库,可是仅仅有一小部分图片做了标记。增强学习多半还是用在机器人控制和其它控制系统的开发上。


    算法相似性


    算法基本上从功能或者形式上来分类。比方,基于树的算法,神经网络算法。这是一个非常实用的分类方式,但并不完美。由于有很多算法能够轻易地被分到两类中去,比方说Learning Vector Quantization就同一时候是神经网络类的算法和基于实例的方法。正如机器学习算法本身没有完美的模型一样,算法的分类方法也没有完美的。


    在这一部分我列出了我觉得最直观的方法归类的算法。我并没有穷尽算法或者分类方法,可是我想对于让读者有一个大致了解非常有帮助。假设有你了解的我没有列出来,欢迎留言分享。如今我们開始!


    Regression


    ●Regression(回归分析)关心的是变量之间的关系。它应用的是统计方法,几个算法的样例包含:

    Ordinary Least Squares


    ●Logistic Regression


    ●Stepwise Regression


    ●Multivariate Adaptive Regression Splines (MARS)


    ●Locally Estimated Scatterplot Smoothing (LOESS)


    Instance-based Methods


    Instance based learning(基于实例的学习)模拟了一个决策问题,所使用的实例或者样例是对模型很重要的。这样的方法对现有数据建立一个数据库然后把新数据加进去,再用一个相似性測量方法从而在数据库里找出一个最优匹配,进行一个预測。因为这个原因,这样的方法也被称为胜者为王方法和基于内存的方法。如今关注的焦点在存储数据的表现形式和相似性測量方法。


    ●k-Nearest Neighbour (kNN)


    ●Learning Vector Quantization (LVQ)


    ●Self-Organizing Map (SOM)


    Regularization Methods


    这是一个对其它方法的延伸(一般是回归方法),这个延伸对越简单的模型越有利,而且更擅长归纳。我在这里列出它是由于它的流行和强大。


    ●Ridge Regression


    ●Least Absolute Shrinkage and Selection Operator (LASSO)


    ●Elastic Net


    Decision Tree Learning


    Decision tree methods(决策树方法)建立了一个依据数据中实际值决策的模型。决策树用来解决归纳和回归问题。


    ●Classification and Regression Tree (CART)


    ●Iterative Dichotomiser 3 (ID3)


    ●C4.5


    ●Chi-squared Automatic Interaction Detection (CHAID)


    ●Decision Stump


    ●Random Forest


    ●Multivariate Adaptive Regression Splines (MARS)


    ●Gradient Boosting Machines (GBM)


    Bayesian


    ●Bayesian method(贝叶斯方法)是在解决归类和回归问题中应用了贝叶斯定理的方法。


    ●Naive Bayes


    ●Averaged One-Dependence Estimators (AODE)


    ●Bayesian Belief Network (BBN)


    Kernel Methods


    Kernel Method(核方法)中最有名的是Support Vector Machines(支持向量机)。这样的方法把输入数据映射到更高维度上,是的一些归类和回归问题更easy建模。


    ●Support Vector Machines (SVM)


    ●Radial Basis Function (RBF)


    ●Linear Discriminate Analysis (LDA)


    Clustering Methods


    Clustering(聚类),本身就形容了问题和方法。聚类方法一般是由建模方式分类的。全部的聚类方法都是用统一的数据结构来组织数据,使得每组内有最多的共同点。


    ●K-Means


    ●Expectation Maximisation (EM)


    Association Rule Learning


    Association rule learning(联合规则学习)是用来对数据间提取规律的方法,通过这些规律能够发现巨量多维空间数据之间的联系,而这些重要的联系能够被组织拿来使用。


    ●Apriori algorithm


    ●Eclat algorithm


    Artificial Neural Networks

  • 相关阅读:
    mysql_example
    windows 下 解决 go get 或 dep init 更新不了问题
    golang反射
    Windows下修改hosts并且让他立即生效
    Windows不重启就使环境变量修改生效
    swoole进程-2
    swoole进程
    swoole协程
    区间素数筛法
    AOJ
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3774944.html
Copyright © 2011-2022 走看看