文档章节

使用spark操作ensemble

KYO4321
 KYO4321
发布于 02/21 15:59
字数 303
阅读 13
收藏 0
// Ensemble源代码地址,https://github.com/XXXShao/EnsembleModelingInSpark
// 需要打成jar包再导入方可使用

import Ensemble.{Ensembler,EnsembleModel}

import org.apache.spark.ml.linalg.{Vector, Vectors}
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.evaluation.BinaryClassificationEvaluator
import org.apache.spark.ml.feature.{HashingTF, Tokenizer}
import org.apache.spark.ml.linalg.Vector
import org.apache.spark.ml.tuning.{CrossValidator, ParamGridBuilder}
import org.apache.spark.sql.{Row, SparkSession}
import org.apache.spark.ml.linalg.{Vector, Vectors}
import org.apache.spark.ml.feature.Normalizer



//import org.apache.log4j.{Level, Logger}
//Logger.getLogger("org.apache.spark").setLevel(Level.WARN)

// val training = spark.createDataFrame(Seq(
//   (1.0, Vectors.dense(0.0, 1.1, 0.1)),
//   (0.0, Vectors.dense(2.0, 1.0, -1.0)),
//   (0.0, Vectors.dense(2.0, 1.3, 1.0)),
//   (1.0, Vectors.dense(0.0, 1.2, -0.5))
// )).toDF("label", "features")

val training = spark.read.format("libsvm").load("/user/spark/H2O/data/sample_libsvm_data.txt")

// Create a LogisticRegression instance. This instance is an Estimator.
val lr = new LogisticRegression()

// We may set parameters using setter methods.
lr.setMaxIter(10).setRegParam(0.01)

val lr1 = new LogisticRegression()

val lr2 = new LogisticRegression().setMaxIter(10).setRegParam(0.05)

//third component is a pipline
val normalizer = (new Normalizer().setInputCol("features")
  .setOutputCol("normFeatures").setP(1.0))

val lr30 = new LogisticRegression().setFeaturesCol("normFeatures")
val lr3 = new Pipeline().setStages(Array(normalizer, lr30))


//ensemble models
val ensembling = new Ensembler().setComponents(Array(lr, lr1, lr2, lr3))


val model = ensembling.fit(training)

val transformers = model.components.map(t => t.transform(training))
transformers.map(x => x.show()) //show individual predictions

//combine models
val prediction = model.transform(training)
prediction.show()


/****
////加入xgb之后的模型融合
val xgb = new XGBoostEstimator(Map("num_class" -> 2, "num_rounds" -> 5, "objective" -> "binary:logistic", "booster" -> "gbtree")).setLabelCol("label").setFeaturesCol("features")

/////ensemble models
val ensembling = new Ensembler().setComponents(Array(xgb, lr, lr1, lr2, lr3))

val model = ensembling.fit(training)

val transformers = model.components.map(t => t.transform(training))
transformers.map(x => x.show()) //show individual predictions

//combine models
val prediction = model.transform(training)
prediction.show()
****/

© 著作权归作者所有

KYO4321
粉丝 4
博文 146
码字总数 82963
作品 0
深圳
程序员
私信 提问
Spark 数据分析导论-笔记

Spark Core Spark Core 实现了Spark 的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。 Spark Core 中还包含了 对弹性分布式数据集(resilient distributed dataset,简...

Java搬砖工程师
2018/12/26
53
0
大数据入门与实战-Spark上手

1 Spark简介 1.1 引言 行业正在广泛使用Hadoop来分析他们的数据集。原因是Hadoop框架基于简单的编程模型(MapReduce),它使计算解决方案具有可扩展性,灵活性,容错性和成本效益。在这里,主...

致Great
03/12
0
0
Spark cluster 部署

Spark 框架 Spark与Storm的对比 对于Storm来说: 1、建议在那种需要纯实时,不能忍受1秒以上延迟的场景下使用,比如实时金融系统,要求纯实时进行金融交易和分析 2、此外,如果对于实时计算的...

meteor_hy
2018/06/27
0
0
微软发布 .Net for Apache Spark :用什么语言开发大数据都可以

4 月 24 日,在 Spark+AI 峰会 上,我们很高兴地宣布推出 .NET for Apache Spark。Spark 是一种流行的开源分布式处理引擎,用于分析大型数据集。Spark 可用于处理批量数据、实时流、机器学习...

开源大数据EMR
05/22
0
0
spark1.2.0版本搭建伪分布式环境

、下载scala2.11.5版本,下载地址为:http://www.scala-lang.org/download/2.11.5.html 2、安装和配置scala: 第一步:上传scala安装包 并解压 第二步 配置SCALAHOME环境变量到bashprofile 第...

stark_summer
2015/02/09
313
2

没有更多内容

加载失败,请刷新页面

加载更多

JS其他类型值转化为Boolean类型规则

本文转载于:专业的前端网站➤JS其他类型值转化为Boolean类型规则 由于最近在笔试的时候,发现好多关于其他类型转化为Boolean类型的题目,因此总结一下! 一、String类型转化为Boolean 1.转化...

前端老手
20分钟前
4
0
EurekaClient自动装配及启动流程解析

在上篇文章中,我们简单介绍了EurekaServer自动装配及启动流程解析,本篇文章则继续研究EurekaClient的相关代码 老规矩,先看spring.factories文件,其中引入了一个配置类EurekaDiscoveryClie...

Java学习录
26分钟前
5
0
析构函数是否必须为虚函数?为何?

在C++中,基类指针可以指向一个派生类的对象。如果基类的析构函数不是虚函数,当需要delete这个指向派生类的基类指针时,就只会调用基类的析构函数,而派生类的析构函数无法被调用。容易造成...

天王盖地虎626
27分钟前
4
0
【TencentOS tiny】深度源码分析(7)——事件

引言 大家在裸机编程中很可能经常用到flag这种变量,用来标志一下某个事件的发生,然后在循环中判断这些标志是否发生,如果是等待多个事件的话,还可能会if((xxx_flag)&&(xxx_flag))这样子做...

杰杰1号
30分钟前
6
0
聊聊nacos client的ServerHttpAgent

序 本文主要研究一下nacos client的ServerHttpAgent HttpAgent nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/http/HttpAgent.java public interface HttpAgent { ......

go4it
36分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部