zoukankan      html  css  js  c++  java
  • 机器学习算法概览

    本文是翻译文章,但我并未逐字句的翻译。而是有所删减。并增加了一些自己的补充。

    转载请注明:http://blog.csdn.net/stdcoutzyx/article/details/44501797

    机器学习(Machine Learning, ML)是什么。作为一个MLer。常常难以向大家解释何为ML。久而久之。发现要理解或解释机器学习是什么,能够从机器学习能够解决的问题这个角度来说。

    对于MLers,理解ML解决的问题的类型也有助于我们更好的准备数据和选择算法。

    十个机器学习问题例子

    想入门机器学习的同学,常常会去看一些入门书,比方《集体智慧编程》、《机器学习实战》、《数据挖掘》、《推荐系统实践》等。看书的过程中。常常性的会看到例如以下例子:

    • 垃圾邮件识别
    • 信用卡交易异常检測
    • 手写数字识别
    • 语音识别
    • 人脸检測
    • 商品推荐
    • 疾病检測(依据以往病例记录,确定病人是否患病)
    • 股票预測
    • 用户分类(依据用户行为推断该用户是否会转化为付费用户)
    • 形状检測(依据用户在手写板上上画得形状,确定用户画的究竟是什么形状)

    因此。当再有人问ML是什么的时候,就能够说这个是ML能够handle的,这个问题ML也能够handle,blahblah。

    机器学习问题类型

    对问题进行分类,优点就在于能够更好的把握问题的本质,更好的知道什么类型的算法须要用到。

    一般有四大类型:

    • 分类(classification):有一些已经标注好类别的数据,在标注好的数据上建模。对于新样本。推断它的类别。如垃圾邮件识别
    • 回归(regression):有一些已经标注好的数据,标注值与分类问题不同。分类问题的标注是离散值,而回归问题中的标注是实数,在标注好的数据上建模。对于新样本,得到它的标注值。如股票预測。
    • 聚类(clustering):数据没有被标注,可是给出了一些类似度衡量标准,能够依据这些标准将数据进行划分。如在一堆未给出名字的照片中,自己主动的将同一个人的照片聚集到一块。

    • 规则抽取(rule extraction):发现数据中属性之间的统计关系,而不仅仅是预測一些事情。

      如啤酒和尿布。

    机器学习算法

    知道了机器学习要解决的问题后,就能够思考针对某一个问题,须要採集的数据的类型和能够使用的机器学习算法。机器学习发展到今天,诞生了非常多算法,在实际应用中往往问题在于算法的选择,在本文中。使用两种标准对算法进行分类,即学习方式和算法之间的类似性。

    学习方式(Learning Style)

    在ML中,仅仅有几个主流的学习方式,在以下的介绍中,使用一些算法和问题的例子来对这些方式进行解释说明。依照学习方式对机器学习算法进行分类能够使我们很多其它的思考输入数据在算法中的角色和使用模型前须要的准备工作。对我们选择最适合的模型有非常好的指导作用。

    • 监督学习(supervised learning):输入数据都有一个类别标记或结果标记,被称作训练数据,比方垃圾邮件与非垃圾邮件、某时间点的股票价格。模型由训练过程得到,利用模型,能够对新样本做出猜測。并能够计算得到这些预測的准确度等指标。

      训练过程往往须要在训练集上达到一定程度的准确度,不欠拟合或过拟合。监督学习一般解决的问题是分类和回归,代表算法有逻辑斯底回归(Logistic Regression)和神经网络后向传播算法(Back Propagation Neural Network)。

    • 无监督学习(Unsupervised Learning):输入数据没有不论什么标记。通过推理数据中已有的结构来构建模型。一般解决的问题是规则学习和聚类。代表算法有Apriori算法和k-means算法。

    • 半监督学习(Semi-Supervised Learning):输入数据是标注数据和非标注数据的混合。它也是为了解决预測问题的,可是模型必须同一时候兼顾学习数据中已经存在的结构和作出预測,即上述监督学习和无监督学习的融合。

      该方法要解决的问题仍然是分类的回归。代表算法一般是在监督学习的算法上进行扩展,使之能够对未标注数据建模。

    • 增强学习(Reinforcement Learning):在这样的学习方式中。模型先被构建。然后输入数据刺激模型,输入数据往往来自于环境中,模型得到的结果称之为反馈,使用反馈对模型进行调整。

      它与监督学习的差别在于反馈数据很多其它的来自于环境的反馈而不是由人指定。

      该方式解决的问题是系统与机器人控制,代表算法是Q-学习(Q-learning)和时序差分算法(Temporal difference learning)。

    在商业决策中,通常会使用的方法是监督学习和无监督学习。当下一个热门的话题是半监督学习。比方在图片分类中。有非常多数据集都是有少量的标记数据和大量的非标记数据。增强学习很多其它的用于机器人控制机其它的控制系统中。

    算法类似度(Algorithm Similarity)

    通常会依据模型的模式或者函数模式的类似度来对算法进行划分。比方基于树的方法(tree-based method)与神经网络算法(neural network)。

    当然,这样的方法并不完美。由于非常多算法能够非常easy的被划分到多个类别中去,比方学习矢量量化算法(Learning Vector Quantization)既是神经网络算法也是基于例子的算法(Instance-based method)。

    在本文中,能够看到非常多不同的分类方法。

    回归(Regression)

    回归是在自变量和须要预測的变量之间构建一个模型,并使用迭代的方法逐渐减少预測值和真实值之间的误差。回归方法是统计机器学习的一种
    常常使用的回归算法例如以下:

    • Ordinary Least Squares(最小二乘法)
    • Logistic Regression(逻辑斯底回归)
    • Stepwise Regression(逐步回归)
    • Multivariate Adaptive Regression Splines(多元自适应回归样条法)
    • Locally Estimated Scatterplot Smoothing(局部加权散点平滑法)

    基于例子的方法(Instance-based Methods)

    基于例子的方法须要一个样本库。当新样本出现时,在样本库中找到最佳匹配的若干个样本,然后做出猜測。基于例子的方法又被成为胜者为王的方法和基于内存的学习,该算法主要关注样本之间类似度的计算方法和存储数据的表示形式。

    • 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)

    决策树方法建立了一个依据数据中属性的实际值决策的模型。

    决策树用来解决归纳和回归问题。

    • 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)

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

    • Naive Bayes
    • Averaged One-Dependence Estimators (AODE)
    • Bayesian Belief Network (BBN)

    核方法(Kernel Methods)

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

    • Support Vector Machines (SVM)
    • Radial Basis Function (RBF)
    • Linear Discriminate Analysis (LDA)

    聚类(Clustering Methods)

    聚类本身就形容了问题和方法。

    聚类方法一般是由建模方式分类的比方基于中心的聚类和层次聚类。全部的聚类方法都是利用数据的内在结构来组织数据,使得每组内的点有最大的共同性。

    • K-Means
    • Expectation Maximisation (EM)

    联合规则学习(Association Rule Learning)

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

    • Apriori algorithm
    • Eclat algorithm

    人工神经网络(Artificial Neural Networks)

    受生物神经网络的结构和功能的启示诞生的人工神经网络属于模式匹配一类,常常被用于回归和分类问题,可是它存在上百个算法和变种组成。

    当中有一些是经典流行的算法(深度学习拿出来单独讲):

    • Perceptron
    • Back-Propagation
    • Hopfield Network
    • Self-Organizing Map (SOM)
    • Learning Vector Quantization (LVQ)

    深度学习(Deep Learning)

    Deep Learning(深度学习)方法是人工神经网络在当下的一个变种。

    相比传统的神经网络。它更关注更加复杂的网络构成。很多方法都是关心半监督学习。就是一个大数据集中仅仅有少量标注数据的那种问题。

    • Restricted Boltzmann Machine (RBM)
    • Deep Belief Networks (DBN)
    • Convolutional Network
    • Stacked Auto-encoders

    降维(Dimensionality Reduction)

    与聚类方法类似,对数据中的固有结构进行利用,使用无监督的方法学习一种方式,该方式用更少的信息来对数据做归纳和描写叙述。

    这对于对数据进行可视化或者简化数据非常实用,也有去除噪声的影响,常常採用这样的方法使得算法更加高效。

    • Principal Component Analysis (PCA)
    • Partial Least Squares Regression (PLS)
    • Sammon Mapping
    • Multidimensional Scaling (MDS)
    • Projection Pursuit

    组合方法(Ensemble Methods)

    Ensemble methods(组合方法)由很多小的模型组成,这些模型经过独立训练,做出独立的结论,最后汇总起来形成最后的预測。组合方法的研究点集中在使用什么模型以及这些模型怎么被组合起来。

    • Boosting
    • Bootstrapped Aggregation (Bagging)
    • AdaBoost
    • Stacked Generalization (blending)
    • Gradient Boosting Machines (GBM)
    • Random Forest

    原文链接

  • 相关阅读:
    FlaskRESTful之响应处理
    FlaskRESTful之请求处理(RequestParser)
    FlaskRESTful之入门
    Flask框架之异常处理和请求钩子
    Flask框架之Cookie和Session
    Flask框架之请求和响应
    Flask框架的路由和蓝图
    初识Flask框架
    DRF框架之问题总结
    字符串和date数据进行转换和Date类型进行计算
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7043463.html
Copyright © 2011-2022 走看看