zoukankan      html  css  js  c++  java
  • (转)机器学习十大算法都是何方神圣?看完你就懂了

    一、有监督学习

      算法一:决策树

      决策树是一种树形结构,为人们提供决策依据,决策树可以用来回答yes和no问题,它通过树形结构将各种情况组合都表示出来,每个分支表示一次选择(选择yes还是no),直到所有选择都进行完毕,最终给出正确答案。

     算法二:朴素贝叶斯分类器

      朴素贝叶斯分类器基于贝叶斯理论及其假设(即特征之间是独立的,是不相互影响的)

      P(A|B) 是后验概率, P(B|A) 是似然,P(A)为先验概率,P(B) 为我们要预测的值。

      具体应用有:垃圾邮件检测、文章分类、情感分类、人脸识别等。

    算法三:最小二乘法

      如果你对统计学有所了解,那么你必定听说过线性回归。最小均方就是用来求线性回归的。如下图所示,平面内会有一系列点,然后我们求取一条线,使得这条线尽可能拟合这些点分布,这就是线性回归。这条线有多种找法,最小二乘法就是其中一种。最小二乘法其原理如下,找到一条线使得平面内的所有点到这条线的欧式距离和最小。这条线就是我们要求取得线。

      线性指的是用一条线对数据进行拟合,距离代表的是数据误差,最小二乘法可以看做是误差最小化。

    算法四:逻辑回归

      逻辑回归模型是一个二分类模型,它选取不同的特征与权重来对样本进行概率分类,用一各log函数计算样本属于某一类的概率。即一个样本会有一定的概率属于一个类,会有一定的概率属于另一类,概率大的类即为样本所属类。

      具体应用有:信用评级、营销活动成功概率、产品销售预测、某天是否将会地震发生。

    算法五:支持向量机(SVM)

      支持向量机是一个二分类算法,它可以在N维空间找到一个(N-1)维的超平面,这个超平面可以将这些点分为两类。也就是说,平面内如果存在线性可分的两类点,SVM可以找到一条最优的直线将这些点分开。SVM应用范围很广。

      具体应用有:广告展示、性别检测、大规模图像识别等。

      算法六:集成学习

      集成学习就是将很多分类器集成在一起,每个分类器有不同的权重,将这些分类器的分类结果合并在一起,作为最终的分类结果。最初集成方法为贝叶斯决策,现在多采用error-correcting output coding, bagging, and boosting等方法进行集成。

      那么为什集成分类器要比单个分类器效果好呢?

      1.偏差均匀化:如果你将民主党与共和党的投票数算一下均值,可定会得到你原先没有发现的结果,集成学习与这个也类似,它可以学到其它任何一种方式都学不到的东西。

      2.减少方差:总体的结果要比单一模型的结果好,因为其从多个角度考虑问题。类似于股票市场,综合考虑多只股票可以要比只考虑一只股票好,这就是为什么多数据比少数据效果好原因,因为其考虑的因素更多。

      3.不容易过拟合。如果的一个模型不过拟合,那么综合考虑多种因素的多模型就更不容易过拟合了。

      二、无监督学习

      算法七:聚类算法

      聚类算法就是将一堆数据进行处理,根据它们的相似性对数据进行聚类。

      聚类算法有很多种,具体如下:中心聚类、关联聚类、密度聚类、概率聚类、降维、神经网络/深度学习。

      算法八:主成分分析(PCA)

      主成分分析是利用正交变换将一些列可能相关数据转换为线性无关数据,从而找到主成分。

      PCA主要用于简单学习与可视化中数据压缩、简化。但是PCA有一定的局限性,它需要你拥有特定领域的相关知识。对噪音比较多的数据并不适用。

      算法九:SVD矩阵分解

      SVD矩阵是一个复杂的实复负数矩阵,给定一个m 行、n列的矩阵M,那么M矩阵可以分解为M = UΣV。U和V是酉矩阵,Σ为对角阵。

      PCA实际上就是一个简化版本的SVD分解。在计算机视觉领域,第一个脸部识别算法就是基于PCA与SVD的,用特征对脸部进行特征表示,然后降维、最后进行面部匹配。尽管现在面部识别方法复杂,但是基本原理还是类似的。

      算法十:独立成分分析(ICA)

      ICA是一门统计技术,用于发现存在于随机变量下的隐性因素。ICA为给观测数据定义了一个生成模型。在这个模型中,其认为数据变量是由隐性变量,经一个混合系统线性混合而成,这个混合系统未知。并且假设潜在因素属于非高斯分布、并且相互独立,称之为可观测数据的独立成分。

      ICA与PCA相关,但它在发现潜在因素方面效果良好。它可以应用在数字图像、档文数据库、经济指标、心里测量等。

      以上就是我对机器学习算法的一些简单介绍,现在你可以通过我的介绍与你自己的理解,好好思考机器学还可以在我们的日常生活中有哪些应用。

  • 相关阅读:
    Unix系统编程()进程和程序
    java保存动态代理生成的类的class文件
    Hibernate 查询sql结果行数、查询列表的几种方法
    JVM学习--内存分配策略(持续更新)
    JVM学习--开启应用的gc日志功能
    JVM垃圾收集器组合--各种组合对应的虚拟机参数实践
    持续集成环境--Tomcat热部署导致线程泄漏
    监控redis服务器执行的命令--类似于tomcat的local-access.log
    centos7搭建nexus maven私服(二)
    centos7搭建nexus maven私服
  • 原文地址:https://www.cnblogs.com/zyber/p/6483234.html
Copyright © 2011-2022 走看看