Python数据分析-机器学习 常用算法总结。

python机器学习,不同分类介绍。仅供参考。

分类一:

机器学习算法分两个说法

一:学习方式

  • 监督学习(有标签)

    • 决策树学习(ID3,C4.5等)
    • 朴素贝叶斯分类
    • 最小二乘回归
    • 逻辑回归(Logistic Regression)
    • 支撑向量机
    • 集成方法
    • 反向传递神经网络(Back Propagation Neural Network)
  • 非监督学习(无标签)

    • 奇异值分解
    • 主成分分析
    • 独立成分分析
    • Apriori算法
    • k-Means算法
  • 半监督学习(有、无标签)

    • 应用场景:分类 回归
    • 算法: 常用监督学习算法的延伸
    • 先对未表示数据建模,在此基础上再对标识的数据进行预测
  • 强化学习

    • 在这种模式下,输入数据作为对模型的反馈。
    • 在强化模型下,输入数据直接反馈到模型,模型必须对此立刻做出调整。
    • 常见算法:Q-Learning以及时间差学习(Temporal difference learning)
    • 应用场景:动态系统以及机器人控制等

二:算法的类似性

  • 1.回归算法

    • 最小二乘法(Ordinary Least Square)

    • 逻辑回归(Logistic Regression)

    • 逐步式回归(Stepwise Regression)

    • 多元适应回归样条(Multivariate Adaptive Regression Splines)

    • 应用场景:

    • 信用评分,

    • 度量营销活动的成功率,

    • 预测某一产品的收入,

    • 在某一特定日子里会发生地震?

  • 2.基于实例的算法

(基于实例的算法常常用来对决策问题建立模型,这样的模型常常先选取一批样本数据,然后根据某些近似性把新数据与样本数据进行比较。通过这种方式来寻找最佳的匹配。因此,基于实例的算法常常也被称为“赢家通吃”学习或者“基于记忆的学习”。)
* k-Nearest Neighbor(KNN),
* 学习矢量量化(Learning Vector Quantization, LVQ)
* 自组织映射算法(Self-Organizing Map , SOM)

  • 3.正则化的方法

    • (通常是回归算法)的延伸
    • 常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net)
  • 4.决策树学习

决策树算法根据数据的属性采用树状结构建立决策模型, 决策树模型常常用来解决分类和回归问题。
* 分类及回归树(Classification And Regression Tree, CART)
* ID3 (Iterative Dichotomiser 3)
* C4.5
* 随机森林(Random Forest)
* 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine, GBM)。

  • 5.贝叶斯方法

主要用来解决分类和回归问题
* 朴素贝叶斯算法
* 平均单依赖估计(Averaged One-Dependence Estimators, AODE)
* Bayesian Belief Network(BBN)

* ####应用:
* 标记电子邮件
* 将新闻文章分为技术类,政治类,体育类
* 检查一段文字表达积极的情绪,或消极情绪
* 用于人脸识别软件
  • 6.基于核的算法

基于核的算法把输入数据映射到一个高阶的向量空间, 在这些高阶向量空间里, 有些分类或者回归问题能够更容易的解决。
* 支持向量机(Support Vector Machine, SVM)
* 径向基函数(Radial Basis Function ,RBF),
* 线性判别分析(Linear Discriminate Analysis ,LDA)
* ####应用:
* 广告显示
* 人类的剪接位点识别
* 基于图像的性别检测
* 大规模图像分类

  • 7.聚类算法

聚类算法通常按照中心点或者分层的方式对输入数据进行归并。所以的聚类算法都试图找到数据的内在结构,以便按照最大的共同点将数据进行归类。
* k-Means算法
* 期望最大化算法(Expectation Maximization, EM)。

* #### 每一种聚类算法都不太一样:
* 基于质心的算法
* 基于连通性的算法
* 基于密度的算法
* 概率聚类
* 降维
* 神经网络/深度学习
  • 8.关联规则学习

通过寻找最能够解释数据变量之间关系的规则,来找出大量多元数据集中有用的关联规则。
* Apriori算法
* Eclat算法

  • 9.人工神经网络

人工神经网络算法模拟生物神经网络,是一类模式匹配算法。
通常用于解决分类和回归问题。

* 人工神经网络是机器学习的一个庞大的分支,有几百种不同的算法。(其中深度学习就是其中的一类算法

* ####重要的人工神经网络算法:
* 感知器神经网络(Perceptron Neural Network)
* 反向传递(Back Propagation),
*  Hopfield网络,自组织映射(Self-Organizing Map, SOM)。
*  学习矢量量化(Learning Vector Quantization, LVQ)。
  • 10.深度学习

深度学习算法是对人工神经网络的发展。
* 很多深度学习的算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。
* 受限波尔兹曼机(Restricted Boltzmann Machine, RBN)
* Deep Belief Networks(DBN)
* 卷积网络(Convolutional Network)
* 堆栈式自动编码器(Stacked Auto-encoders)。

  • 11.降低维度算法

像聚类算法一样,降低维度算法试图分析数据的内在结构,它是以非监督学习的方式试图利用较少的信息来归纳或者解释数据,
* 主成份分析(Principle Component Analysis, PCA)
* 偏最小二乘回归(Partial Least Square Regression,PLS)
* Sammon映射,
* 多维尺度(Multi-Dimensional Scaling, MDS)
* 投影追踪(Projection Pursuit)
* #### 其中,ICA和PCA是相关的,但是它是一种更强大的技术,当那些经典的方法完全失效的时候,它能够从数据中发现潜在的因素。
* 它的应用:
* 数字图像,
* 文档数据流,
* 经济指标,
* 心理测量

  • 12.集成算法

集成算法用一些相对较弱的学习模型独立地就同样的样本进行训练,然后把结果整合起来进行整体预测。集成算法的主要难点在于究竟集成哪些独立的较弱的学习模型以及如何把学习结果整合起来。这是一类非常强大的算法,同时也非常流行。
* Boosting,
* Bootstrapped Aggregation(Bagging),
* AdaBoost,
* 堆叠泛化(Stacked Generalization, Blending),
* 梯度推进机(Gradient Boosting Machine, GBM),
* 随机森林(Random Forest)。

  • 那么集成方法是怎样工作的,为什么他们会优于单个的模型?
    • 他们拉平了输出偏差:如果你将具有民主党倾向的民意调查和具有共和党倾向的民意调查取平均,你将得到一个中和的没有倾向一方的结果。
    • 它们减小了方差:一堆模型的聚合结果和单一模型的结果相比具有更少的噪声。在金融领域,这被称为多元化——多只股票的混合投资要比一只股票变化更小。这就是为什么数据点越多你的模型会越好,而不是数据点越少越好。
    • 它们不太可能产生过拟合:如果你有一个单独的没有过拟合的模型,你是用一种简单的方式(平均,加权平均,逻辑回归)将这些预测结果结合起来,然后就没有产生过拟合的空间了。

分类二:

机器学习算法分三大类

一:监督学习

  • 1.决策树
  • 2.朴素贝叶斯分类
  • 3.普通的最小二乘回归
  • 4.逻辑回归
  • 5.支持向量机(SVM)
  • 6.集成方法

二:非监督学习

  • 7.聚类算法
  • 8.主成分分析(PCA)
  • 9.奇异值分解(SVD)
  • 10.独立成分分析(ICA)

三:强化学习

  • 强化学习下,输入数据直接反馈到模型,模型必须对此立刻作出调整。
  • 主要应用场景:机器人控制等
  • 常见算法:Q-Learning 和时间差学习(Temporal difference learning)
  • 强化学习更多的应用在机器人控制及其他需要进行系统控制的领域。

分类三:

机器学习10大经典算法

https://blog.csdn.net/xxinliu/article/details/7408742(参考地址)

  • 1.c4.5、ID3算法-决策树
  • 2.The k-means algorithm-平均聚类算法
  • 3.SVM-支持向量机 监督学习
  • 4.Apriori算法-一种最有影响的挖掘布尔关联规则频繁项集的算法
  • 5.EM-最大期望算法、最大似然估计的算法
  • 6.PageRank-根据网站的外部链接和内部链接的数量和质量俩衡量网站的价值。佩奇算法
  • 7.AdaBoost-一种迭代算法
    • 其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器 (强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。
  • 8.k-nearest neighbor classification - 临近算法 分类
  • 9.贝叶斯分类器-目前研究较多的贝叶斯分类器主要有四种,分别是:Naive Bayes、TAN、BAN和GBN。
  • 10.分类与回归树
    • 在分类树下面有两个关键的思想。第一个是关于递归地划分自变量空间的想法;第二个想法是用验证数据进行剪枝。

Scikit-learn库简介

包括6个部分

  • 1.分类是指识别给定对象的所属类别,属于监督学习的范畴,最常见的应用场景包括垃圾邮件检测和图像识别等。

    • 目前Scikit-learn已经实现的算法包括支持向量机(SVM)、K-近邻、逻辑回归、随机森林、决策树及多层感知器(MLP)神经网络等。
  • 2.回归是指预测与给定对象相关联的连续值属性,最常见的应用场景包括预测药物反应和预测股票价格等。

    • 目前Scikit-learn已经实现的算法包括支持向量回归(SVR)、脊回归、Lasso回归、弹性网络(Elastic Net)、最小角回归(LARS )、贝叶斯回归及各种不同的鲁棒回归算法等。
  • 3.聚类是指自动识别具有相似属性的给定对象,并将其分组为集合,属于无监督学习的范畴,最常见的应用场景包括顾客细分和试验结果分组。

    • 目前Scikit-learn已经实现的算法包括K-均值聚类、谱聚类、均值偏移、分层聚类、DBSCAN聚类等。
  • 4.数据降维是指使用主成分分析(PCA)、非负矩阵分解(NMF)或特征选择等降维技术来减少要考虑的随机变量的个数,其主要应用场景包括可视化处理和效率提升。

  • 5.模型选择是指对于给定参数和模型的比较、验证和选择,其主要目的是通过参数调整来提升精度。目前Scikit-learn实现的模块包括格点搜索、交叉验证和各种针对预测误差评估的度量函数。

  • 6.数据预处理是指数据的特征提取和归一化,是机器学习过程中的第一个也是最重要的环节。这里归一化是指将输入数据转换为具有零均值和单位权方差的新变量,但因为大多数时候都做不到精确到零,因此会设置一个可接受的范围,一般都要求范围为0~1。而特征提取是指将文本或图像数据转换为可用于机器学习的数字变量。

posted @ 2019-01-07 16:06  hangover  阅读(4333)  评论(0编辑  收藏  举报