spark mllib和ml类里面的区别
mllib是老的api,里面的模型都是基于RDD的,模型使用的时候api也是有变化的(model这里是naiveBayes),
(1:在模型训练的时候是naiveBayes.run(data: RDD[LabeledPoint])来训练的,run之后的返回值是一个NaiveBayesModel对象,就可以使用NaiveBayesModel.predict(testData: RDD[Vector]): RDD[Double] 里面不仅可以传入一个RDD[Vector] ,里面还可以传入单个Vector,得到单个预测值,然后就可以调用save来进行保存了,具体的可以看官方文档API
(2:模型使用可以参考(1,模型的读取是使用load方法去读的
ml是新的API,ml包里面的模型是基于dataframe操作的
(1:在模型训练的时候是使用naiveBayes.fit(dataset: Dataset[]): NaiveBayesModel来训练模型的,返回值是一个naiveBayesModel,可以使用naiveBayesModel.transform(dataset: Dataset[]): DataFrame,进行模型的检验,然后再通过其他的方法来评估这个模型,
(2:模型的使用可以参考(1: 是使用transform来进行预测的,取预测值可以使用select来取值,使用select的时候可以使用“$”label””的形式来取值
训练的时候是使用的NaiveBayes,使用的时候使用naiveBayesModel
ml包里的模型训练代码请参考ml包里面的模型训练代码 ml包里面的模型的使用
mllib代码的使用会在稍后贴上:
mllib的建模使用代码:
import org.apache.spark.SparkConf import org.apache.spark.SparkContext import org.apache.spark.mllib.feature.HashingTF import org.apache.spark.mllib.regression.LabeledPoint import org.apache.spark.mllib.classification.LogisticRegressionWithSGDclass EmailClassification {} object EmailClassification{def main(args: Array[String]): Unit = {val sc = getSparkCont()//每一行都以一封邮件val spam = sc.textFile("spam.txt");val nomal = sc.textFile("normal.txt")//创建一个hashingTF实例来吧邮件文本映射为包含10000个特征的向量val tf = new HashingTF(10000)//把邮件都被分割为单词,每个单词都被映射成一个向量val spamFeatures = spam.map { email => tf.transform(email.split(" ")) }val nomalFeatures = nomal.map { email => tf.transform(email.split(" ")) }//创建LabelPoint 的数据集val positiveExamples = spamFeatures.map { feature => LabeledPoint(1,feature) }val negativeExamples = nomalFeatures.map { feature => LabeledPoint(1,feature) }val trainingData = positiveExamples.union(negativeExamples)//使用SGD算法运行逻辑回归 返回的类型是LogisticRegression 但是这个模型是有save,但是没有load方法,我还在思考,读者如果有什么意见或者看法可以下面评论的val model = new LogisticRegressionWithSGD().run(trainingData)//创建一个邮件向量进行测试val posTest = tf.transform("cheap stuff by sending money to ....".split(" "))val prediction = model.predict(posTest)println(prediction)}def getSparkCont():SparkContext={val conf = new SparkConf().setAppName("email").setMaster("local[4]")val sc = new SparkContext(conf)return sc}}
spark mllib和ml类里面的区别相关推荐
- Spark MLlib矩阵分解源码分析
基础知识 特征值分解 如果一个向量 vv 是方阵 AA 的特征向量,可以表示成下面的形式: Av=λv Av = \lambda v 其中, λ\lambda 为特征向量 vv 对应的特征值,矩阵 A ...
- Spark排序算法系列之(MLLib、ML)LR使用方式介绍(模型训练、保存、加载、预测)
转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/thi ...
- Spark MLlib 机器学习
本章导读 机器学习(machine learning, ML)是一门涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多领域的交叉学科.ML专注于研究计算机模拟或实现人类的学习行为,以获取新知识.新 ...
- spark 2.x ML概念与应用
# spark 2.x ML概念与应用 @(SPARK)[spark] 一基础 1核心概念 2Transformer 3Estimator 4Pileline 5同一实例 6保存模型 二基本数据结构 ...
- spark.mllib:GradientBoostedTrees
Gradient-Boosted Trees(GBT或者GBDT) 和 RandomForests 都属于集成学习的范畴,相比于单个模型有限的表达能力,组合多个base model后表达能力更加丰富. ...
- spark.mllib源码阅读:GradientBoostedTrees
Gradient-Boosted Trees(GBT或者GBDT) 和 RandomForests 都属于集成学习的范畴,相比于单个模型有限的表达能力,组合多个base model后表达能力更加丰富. ...
- Spark MLlib机器学习 | 算法综合实战(一)(史上最详细)
========== ========= 8.1.1 什么是机器学习 机器学习可以看做是一门人工智能的科学,该领域的主要研究对象是人工智能.机器学习利用 ...
- 大数据Spark MLlib机器学习
目录 1 什么是Spark MLlib? 2 支持的数据类型 2.1 本地向量集 2.1.1.密集型数据集 2.1.2 稀疏型数据集 2.2 向量标签 2.3 本地矩阵 2.4 分布式矩阵 2.4.1 ...
- Spark学习之路——8.Spark MLlib
MLlib的官网文档: http://spark.apache.org/docs/latest/ml-guide.html 本节主要内容: 一.MLlib简述 二.基本数据类型 三.汇总统计 四.实例 ...
最新文章
- 微软Print to PDF打印机提示参数错误的解决方法
- Mongodb-初步了解
- collections模块介绍
- String.charAT的运用
- VTK:Utilities之Timer
- springboot 返回json字符串格式化问题
- LeetCode 625. 最小因式分解(贪心)
- [ZJOI2007]时态同步 树形DP
- 机器学习实战 基于_机器学习实战:基于Scikit-Learn和TensorFlow—第四章笔记
- [PHP]Yii rules常用规则
- 备份k8s_树莓派k8s集群安装kafka集群及监控
- 黄聪:wordpress向mysql字段中保存html代码(使用add_option()方法),然后无法显示出问题...
- 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_20-CMS前端页面查询开发-页面原型-页面内容完善...
- json rpc 2.0 java_使用JSONRPC 2.0规范解决多语言RPC交互的方案
- PID控制(三)(位置式和增量式PID)
- Windows设置自己的程序开机自动启动
- SQL(11)_FOREIGN KEY 约束
- CANopen协议介绍
- linux显示mem进行排序,linux下top命令显示详解
- 大唐之路(4)一号店入驻要求
热门文章
- 同步规则和happen-before规则
- python双向索引什么意思_python字典支持双向索引吗
- detectron2训练自己的数据集_YOLO(v3)PyTorch版 训练自己的数据集
- java jar中jar_java – jar中的jar
- 集群(一)——LVS负载均衡集群
- mysql5.6 临时表_MySQL5.6 运用临时表做SQL优化
- mysql 8安装_mysql安装过程详解
- linux查看文件列表内存地址ll,linux指令之文件查看 ls
- linux realvnc教程,Linux下RealVNC Enterprise 的安装和使用
- html水平分隔线样式,CSS生成漂亮的水平分隔线(horizontal rule)设计效果