文档章节

spark mllib 基于卡方校验的特征选择

ericSM
 ericSM
发布于 2016/07/30 08:57
字数 359
阅读 339
收藏 0

运行代码如下

package spark.FeatureExtractionAndTransformation

import org.apache.spark.mllib.feature.ChiSqSelector
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.{SparkConf, SparkContext}

/**
  * 基于卡方校验的特征选择
  * 卡方校验:
  * 在分类资料统计推断中一般用于检验一个样本是否符合预期的一个分布.
  * 是统计样本的实际值与理论推断值之间的偏离程度.
  * 卡方值越小,越趋于符合
  *
  * Created by eric on 16-7-24.
  */
object FeatureSelection {
  val conf = new SparkConf()                                     //创建环境变量
    .setMaster("local")                                             //设置本地化处理
    .setAppName("TF_IDF")                              //设定名称
  val sc = new SparkContext(conf)

  def main(args: Array[String]) {
    val data = MLUtils.loadLibSVMFile(sc, "/home/eric/IdeaProjects/wordCount/src/main/spark/FeatureExtractionAndTransformation/fs.txt")
    val discretizedData = data.map { lp => //创建数据处理空间
      LabeledPoint(lp.label, Vectors.dense(lp.features.toArray.map {x => x/2}))
    }

    val selector = new ChiSqSelector(2)//创建选择2个特性的卡方校验
    val transformer = selector.fit(discretizedData)//创建训练模型

    val filteredData = discretizedData.map { lp =>  //过滤前两个特性
      LabeledPoint(lp.label, transformer.transform(lp.features))
    }
    filteredData.foreach(println)

//    (0.0,[1.0,0.5])
//    (1.0,[0.0,0.0])
//    (0.0,[1.5,1.5])
//    (1.0,[0.5,0.0])
//    (1.0,[2.0,1.0])
  }
}

fs.txt

0 1:2 2:1 3:0 4:1
1 1:0 2:0 3:1 4:0
0 1:3 2:3 3:2 4:2
1 1:1 2:0 3:4 4:3
1 1:4 2:2 3:3 4:1

结果如下

 

© 著作权归作者所有

ericSM
粉丝 17
博文 142
码字总数 154379
作品 0
南京
项目经理
私信 提问
基于Spark的机器学习实践 (二) - 初识MLlib

1 MLlib概述 1.1 MLlib 介绍 ◆ 是基于Spark core的机器学习库,具有Spark的优点 ◆ 底层计算经过优化,比常规编码效率往往要高 ◆ 实现了多种机器学习算法,可以进行模型训练及预测 1.2 Spark ...

javaedge
04/09
0
0
Spark的39个机器学习库-中文

//Apache Spark 本身// 1.MLlib >AMPLab Spark最初诞生于伯克利 AMPLab实验室,如今依然还是AMPLab所致力的项目,尽管这些不处于Apache Spark Foundation中,但是依然在你日常的github项目中...

MoksMo
2015/11/04
881
0
地铁译:Spark for python developers ---Spark与数据的机器学习

机器学习可以从数据中得到有用的见解. 目标是纵观Spark MLlib,采用合适的算法从数据集中生成见解。对于 Twitter的数据集, 采用非监督集群算法来区分与Apache
Spark相关的tweets . 初始输入...

abel_cao
01/17
0
0
Spark2.1.0之模块设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/beliefer/article/details/80386736 在阅读本文之前,读者最好已经阅读了《Spark2.1.0之初识Spark》和《Spark...

泰山不老生
2018/06/05
0
0
基于Spark的机器学习实践 (十) - 降维

通过讲解PCA算法的原理,使大家明白降维算法的大致原理,以及能够实现怎么样的功能。结合应用降维算法在分类算法使用之前进行预处理的实践,帮助大家体会算法的作用。 0 相关源码 1 PCA算法及...

javaedge
04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

关于运维,该怎么决定它的方向,这个似工作又似兴趣的存在

我之前主要从事网络、桌面、机房管理等相关工作,这些工作使我迷惘,这应该是大多数运维人都经历过的过程; 18年国庆,我从国内前三的消费金融公司裸辞,下海创业,就是想要摆脱这样的困境。...

网络小虾米
13分钟前
3
0
Java Timer的用法

Timer timer = new Timer(); timer.schedule(new TimerTask() { public void run() { System.out.println("11232"); } }, 200000 , 1000); public void schedule(TimerTask task, long delay......

林词
17分钟前
3
0
使用js动态加载外部js文件以及动态创建script脚本

动态脚本指的是在页面加载时不存在,但将来的某一时刻通过修改该DOM动态添加的脚本。和操作HTML元素一样,创建动态脚本也有两种方式:插入外部文件和直接插入JavaScript代码。 动态加载外的外...

Bing309
24分钟前
2
0
从零开始入门 K8s | Kubernetes 网络概念及策略控制

作者 | 阿里巴巴高级技术专家 叶磊 一、Kubernetes 基本网络模型 本文来介绍一下 Kubernetes 对网络模型的一些想法。大家知道 Kubernetes 对于网络具体实现方案,没有什么限制,也没有给出特...

阿里巴巴云原生
28分钟前
2
0
天气获取

本文转载于:专业的前端网站➨天气获取 $.get("http://wthrcdn.etouch.cn/WeatherApi", { citykey: cityCode }, function (d) { //创建文档对象 var parser = new ......

前端老手
29分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部