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转换器,可以进行预测数据。
        功能:
            将某个机器学习应用中整个流程进行串联起来,方便部署测试使用。