Spark各类算法的应用场景

SparkMlib是Spark项目的其中一个模块,包含了当前比较热门的机器学习算法,这些算法API主要分成两种。ML和MLIB。

本文对官方文档中描述的一些算法和工具进行了简单的介绍。

ML主要针对DataFrame,MLIB则面向RDD,算法的种类基本一致,我个人比较偏向于ML,结构化的数据更易操作一些。

Classification


     分类算法包括逻辑回归,决策树已经随机森林等等。适合解决有监督形式的机器学习。
      现实生活中常常用来预测,用户是否会流失、是否是垃圾邮件、明天是否会下雨等等。
      同时部分模型也支持多种分类的预测,如保险业保单风险评级(A,B,C,D,E等级)

Regression

       回归算法包括线性回归等等,用来进行连续值的预测,譬如明天气温多少度,PM2.5有多少,网站PV等等。


clustering


       聚类算法主要是Kmeans,适用于无监督学习,适用的场景包括用户随机分群。分群后的数据更便于我们总结用户特征。

        LDA主要应用于文本类数据的分析,可以总结出各个文章群的主要主题,也就是各个分群的关注点。
   
        GMM和Kmeans比较类似,但是Kmeans中一个数据只属于一个簇,GMM会将一个数据分配到多个簇,并给出每个簇的概率。

collaborative filtering

        协同过滤是一种推荐算法,根据用户对物品的偏好构建稀缺矩阵,并计算其对其他物品的喜好程度。应用的场景诸如:

        电商网站的猜你喜欢,音乐推荐,电影推荐等等。


Evaluation Metrics

        这篇文章介绍的类都是一些用来检验模型效果的工具类,譬如用户是否流失的模型预测中,这个工具类可以帮助我们根据数据的实际值和预测值进行准确率的计算。还包括F1,ROC等等一系列模型指标。诸如各类回归模型的方差,推荐系统的TOP-N等等。

model selection

        这篇文章介绍的是一种模型选择的方法,同一份代码,可以为同一种模型设置不同的参数,根据定义的模型检验类,Spark会帮助你计算最优的参数设置,并输出最优的模型。

Extracting,transforming and selecting features

         这篇文章主要介绍了如果将数据转为向量,如何将向量转为数据,以及如何合并,优化向量。诸如将两个字段合并为一个向量,将文本转为向量,将性别转为向量等等。


Pipeline

         Pipeline可以理解为一种LIST,他可以将模型和transforming串联起来,并输出一个完成的模型。










你可能感兴趣的:(Spark)