Spark2 ML 学习札记

摘要:
  1.pipeline 模式

    1.1相关概念

    1.2代码示例
  2.特征提取,转换以及特征选择

    2.1特征提取

    2.2特征转换

    2.3特征选择

  3.模型选择与参数选择

    3.1 交叉验证

    3.2 训练集-测试集 切分

内容:

1.pipeline 模式

  1.1相关概念

    DataFrame是来自Spark SQL的ML DataSet 可以存储一系列的数据类型,text,特征向量,Label和预测结果

    Transformer:将DataFrame转化为另外一个DataFrame的算法,通过实现transform()方法
    Estimator:将DataFrame转化为一个Transformer的算法,通过实现fit()方法

    PipeLine:将多个Transformer和Estimator串成一个特定的ML Wolkflow

    Parameter:Tansformer和Estimator共用同一个声明参数的API

    

    上图中蓝色标识的是Transformer(Tokenizer and HashingTF),红色标识的是Estimator(LogisticRegression)

  1.2代码示例   

val tokenizer = new Tokenizer()
  .setInputCol("text")
  .setOutputCol("words")
val hashingTF = new HashingTF()
  .setNumFeatures(1000)
  .setInputCol(tokenizer.getOutputCol)
  .setOutputCol("features")
val lr = new LogisticRegression()
  .setMaxIter(10)
  .setRegParam(0.01)
val pipeline = new Pipeline()
  .setStages(Array(tokenizer, hashingTF, lr))

// Fit the pipeline to training documents.
val model = pipeline.fit(training)
// Make predictions on test documents.
model.transform(test)
  .select("id", "text", "probability", "prediction")
  .collect()
  .foreach { case Row(id: Long, text: String, prob: Vector, prediction: Double) =>
    println(s"($id, $text) --> prob=$prob, prediction=$prediction")
  }

2.特征提取,转换以及特征选择

  2.1特征提取 

  2.2特征转换

  2.3特征选择 

    • VectorSlicer:截取指定的特征,可以是索引,也可以是特征标识
    • RFormula:RFormula用于将数据中的字段通过R语言的Model Formulae转换成特征值,输出结果为一个特征向量和Double类型的label。R文档
    • ChiSqSelector:ChiSqSelector用于使用卡方检验来选择特征(降维)。

3.模型选择与参数选择

    3.1 交叉验证

      将数据分为K分,每次测评选取一份作为测试集,其余为训练集;

    3.2 训练集-测试集 切分

      根据固定的比例将数据分为测试集和训练集

代码示例:    

val cv = new CrossValidator()
  .setEstimator(pipeline)
  .setEvaluator(new BinaryClassificationEvaluator)
  .setEstimatorParamMaps(paramGrid)
  .setNumFolds(2)  // Use 3+ in practice
				
时间: 2024-08-16 16:47:09

Spark2 ML 学习札记的相关文章

Java 学习札记(三)免安装版TomCat中tomcat6w.exe的运行

1.使用环境 很多时候我们用的是官网的解压免安装版的Tomcat,相比安装Tomcat除了少了安装步骤以外还少了tomcat6w.exe运行所需要的环境变量,所以一般Java开发免安装版的已经足够使用了,但是如果部署服务的时候我们不可能只运行startup.bat文件,我们需要新建一个服务并可以通过tomcat6w.exe启动和关闭服务. 2.无法运行tomcat6w.exe (1)提示错误: 运行tomcat6w.exe ,提示 指定的服务未安装 unable to open the serv

SQL菜鸟学习札记(一)

刚开始学SQL,从最基础的语句开始写,用一个LOL数据库做实验.目前使用的工具是MySQL Workbench,感觉比较顺手,界面没花多久时间就读懂的差不多了,所以目前就使用这个工具来做SQL的学习了. (1)多条件查询,然后修改值.因为我这里是需要编辑原来是0值的行,所以多条件查询中使用的是 A = 0为条件搜索. 刚刚提到的0值行就是这个样子,刚开始Copy行的时候遇到了很奇葩的错误--有些行必须存在默认值才能将数据进行表与表之间的Copy和Paste,所以就给默认值放了个0值. (2)仔细

【学习札记-类加载器】

个人学习整理,如有不足之处,请不吝指教.转载请注明:@CSU-Max 类加载器 简介 类加载器(class loader)用来加载 Java 类到 Java 虚拟机中.一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件).类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例.每个这样的实例用来表示一个 Java 类.通过此实例的 new

JasperReport学习札记6-JRXML的标签

原文源于:http://langhua9527.iteye.com/blog/402317 JasperReport学习笔记6-JRXML的标签1.<jasperReport>根元素包括很多属性pageWidth,pageHeight,leftMargin,rightMargin,topMargin,bottomMargin,orientation,whenNoDataType,isTitleNewPage,isSummaryNewPage orientation表示是横着放,还是竖着放,默认

Informix学习札记

Informix学习札记: 一,启动关闭数据库脚本 启动:oninit 关闭:onmode -k 二,导入导出数据库 导出数据库 将数据库public_bak导出到目录/usr/informix/export中: $ dbexport public_bak -o /usr/informix/export 执行结束后,会在export目录下,生成一个pubic_bak.exp目录.此目录下,有数据库创建对象的语句及数据. $ pwd /usr/informix/export $ ls public

JAVA学习札记 (一)

JAVA学习札记 (一) 一.JDK\JRE\JVM 区别 Name Full Name 中文名 JDK Java Development ToolKit JAVA开发套件 JRE Java Runtime Environment JAVA运行环境 JVM Java Virtual Machine JAVA虚拟机 三者的关系时从上至下逐层包含: JDK包含了运行环境以及JAVA的开发工具 JRE包括JVM和JAVA核心类库和支持文件,是JAVA的运行平台,所有的JAVA程序都要在JRE下才能运行

嵌入式技术基础与实践-学习札记(二)

嵌入式技术基础与实践-学习札记(二) 异步串行通信的通用基础知识 串口通信接口,简称"串口".\(UART\)或\(SCI\).\(MCU\)中的串口通信,在硬件上分为发送线\((TxD)\).接受线\((RxD)\)和地线\((GND)\):在通信方式上,属于单字节通信,是嵌入式开发中重要的打桩调试手段. 串行通信的基本概念 "位"\((bit)\)是单个二进制数字的简称.在计算机中,通常一个信息单位用\(8\)位二进制表示,成为一个"字节"\

Ubuntu(14.04LTS)学习札记

这篇博文是我在基于Ubuntu学习一些知识的札记,方便日后进行不断回顾,这里进行统一记录,当然当学到新的东西也会陆续更新!!!还请各位博主不要见笑,小弟在此谢过~\(≧▽≦)/~啦啦啦!!!! 1.Ubuntu的简单配置: 由于个人原因,我并不喜欢在桌面上放一些很花哨的东西,追求简约一直是我个人所推崇的.所以,我的Ubuntu系统配置也不例外,先上一张桌面的谍照: 1.1 安装Numix主题: 楼主我安装的是Numix Circle系列的主题,个人觉得还不错.依据个人爱好,主题嘛,看着酸爽就Ok

ML学习分享系列(1)_计算广告小窥[上]

原作:面包包包包包包 改动:寒小阳 && 龙心尘 时间:2016年1月 出处:http://blog.csdn.net/breada/article/details/50572914 http://blog.csdn.net/han_xiaoyang/article/details/50580423 声明:版权全部.转载请联系作者并注明出处 1. 引言 提笔写这篇博客.我的内心是惶恐的.原因非常简单.作为一个资历尚浅的研究生,是没有资格对计算广告这样一个伟大的行业.领域和学科来评头论足的.