zoukankan      html  css  js  c++  java
  • Spark MLlib中分类和回归算法

    Spark MLlib中分类和回归算法:

    • -分类算法:

                  pyspark.mllib.classification

                         -朴素贝叶斯 NaiveBayes

                         -支持向量机(优化:随机梯度下降)SVMWithSGD

                         -逻辑回归  LogisticRegressionWithSGD

                                // 从Spark 2.0开始,官方推荐使用BFGS方式优化LR算法

                                LogisticRegressionWithBFGS

                                // 针对流式数据实时模型训练算法

                                StreamingLogisticRegressionWithSGD

    • -树Tree相关分类算法:

                  pyspark.mllib.tree

                    -决策树 DecisionTree

                      -随机森林算法 –集成学习算法-Bagging方式   RandomForest

                      -梯度提升决策树算法 –集成学习算法 –Boosting方式  GradientBoostedTrees

                Spark MLlib中从底层源码来看,无论是DT 还是RF还是GBT算法,底层都是RF算法实现的。

    • -分类算法的类别:

              树相关的算法,既可以做二分类,又可以做多分类算法:

                     numClass: Number of classes for classification

              -二分类

                     NB、SVM、LR

              -多分类

                     NB、LR

    监督学习算法:

            数据集RDD[LabeledPoint]

                   标签向量 LabelPoint = feature: Vector + label: Float

            类比:

                   RDD 类似 矩阵

                   数组 类比  Vector

            无论是矩阵还是向量分为两种类型:

                   -稀疏类型

                          稀疏矩阵,稀疏向量

                   -稠密类型

                          稠密矩阵,稠密向量

           Spark MLlib中回归算法(基于RDD 实现算法库):

                  -a. 线性回归算法相关:

                         LinerRegressionWithSGD

                         LassoWithSGD

                                L1-regularization

                         RidgeRegressionWithSGD

                                L2-regularization

                  -b. 树算法相关

                -决策树 DecisionTree

                  -随机森林算法 –集成学习算法-Bagging方式   RandomForest

                  -梯度提升决策树算法 –集成学习算法 –Boosting方式  GradientBoostedTrees

    基于DataFrame实现机器学习库,几个重要的概念:

        -a. DataFrame

            类似Pandas中dataframe,将算法所有的数据集存储在DataFrame数据结构中。

            DataFrame = RDD + Schema(字段名称、字段类型)

        -b. Estimator

            模型学习器,就是算法,比如ALS,DecisionTree,将数据应用到模型学习器中会得到一个模型Model。

            每个模型学习器中有个一个方法(训练模型):

                fit(dataframe) -> Model

        -c. Transformer

            转换器,就是模型Model或者算法,比如ALSModel,将针对数据集中某一列或某几列数据生成预测另外一列新数据。

            ALSModel.transform(dataframe)

                userId,itemId  -> predictRating

        -d. Parameters

            封装算法训练时参数或者模型预测时参数,底层是字典Dic(Map集合),其中字典的Key就是参数名称,字典的Value就是参数的值。

            比如:使用ALS模型学习器训练模型,设置参数:特征数rank和迭代次数iterations,可以使用Parameters组合封装设置。

        -e. Pipeline

            管道,Spark ML机器学习库从SK-Learn中借鉴

            由很多Stage组成:

                一个序列的Stages组成,每个Stage要么是转换器Estimator(模型),要么是模型学习器Estimator(算法)

            本身来说:

                Pipeline就是一个模型学习器,相当于算法,所以里面有一个fit函数,应用数据训练以后得到PipelineModel转换器,可以进行预测数据。

            功能:

                将某个机器学习应用中整个流程进行串联起来,方便部署测试使用。

  • 相关阅读:
    《京东峰值系统设计》读后感
    《王者荣耀游戏服务器架构演进(完整版)》读后感
    《秒杀系统架构分析与实战》读后感
    《阿里如何实现秒级百万TPS?搜索离线大数据平台架构解读》读后感
    《阿里游戏高可用架构设计实践》读后感
    Spark SQL 编程初级实践
    系统质量属性之——性能
    《信息技术手册查重错误比对分析》开发记录7
    《信息技术手册查重错误比对分析》开发记录6
    【Codeforces Round #589 (Div. 2) D】Complete Tripartite
  • 原文地址:https://www.cnblogs.com/ltolstar/p/10278918.html
Copyright © 2011-2022 走看看