Spark MLlib特征处理:MinMax最大最小值区间缩放---原理及实战
来源:互联网 发布:c语言可视化编程软件 编辑:程序博客网 时间:2024/05/21 15:01
原理
MLlib中特征值最大最小区间缩放:
参数说明:
E_{max}:特征实际最大值
E_{min}: 特征实际最小值
ei :特征值max:MLlib 默认最大值1.0
min: MLlib 默认最小值0.0
1)当
Emax=Emin
Rescaled(ei)=0.5∗(max+min)
=0.5∗(1.0+0.0)=0.5
2)当
Emax≠Emin Rescaled(ei)=ei−EminEmax−Emin∗(max−min)+min
=ei−EminEmax−Emin
实战
import org.apache.spark.ml.feature.MinMaxScalerimport org.apache.spark.sql.SQLContextimport org.apache.spark.{SparkContext, SparkConf}object MinMaxExample { def main(args: Array[String]) { val conf = new SparkConf().setAppName("MinMaxScalerExample").setMaster("local[8]") val sc = new SparkContext(conf) val sqlContext = new SQLContext(sc) // 读取libsvm格式的数据 // libsvm数据格式: // 标签 索引位置:值 索引位置:值 ... // 0 2:51 3:253 5:253 // 1 2:124 3:253 4:255 // 1 2:145 3:253 5:211 // 每条数据5的特征,特征索引从0-4 // 方便理解:每条数据表示成DenseVector格式: // 0 1:0 2:51 3:253 4:0 5:253 // 1 1:0 2:124 3:253 4:255 5:0 // 1 1:0 2:145 3:253 4:0 5:211 val dataFrame = sqlContext.read.format("libsvm").load("data/libsvm.txt") val scaler = new MinMaxScaler().setInputCol("features").setOutputCol("scaledFeatures") // fit 每一特征最大最小值 // max:Vector(0,145,253,255,253) // min: Vector(0,51,253,0,0) val scalerModel = scaler.fit(dataFrame) // transform 最大最小区间转换 // 1) 如果该特征值max = min ==> 0.5 // 2) 如果该特征值max != min ==> (values-min)/(max-min) // 3) 返回DenseVector val scaledData = scalerModel.transform(dataFrame) scaledData.foreach(println) sc.stop() // 输出 // [0.0,(5,[1,2,4],[51.0,253.0,253.0]),[0.5,0.0,0.5,0.0,1.0]] // [1.0,(5,[1,2,4],[145.0,253.0,211.0]),[0.5,1.0,0.5,0.0,0.83399209486166]] // [1.0,(5,[1,2,3],[124.0,253.0,255.0]),[0.5,0.776595744680851,0.5,1.0,0.0]] }}
0 0
- Spark MLlib特征处理:MinMax最大最小值区间缩放---原理及实战
- Spark MLlib特征处理:Binarizer 二值化---原理及实战
- Spark MLlib特征处理:StringToIndex 字符串索引---原理及实战
- Spark MLlib特征处理:OneHotEncoder OneHot编码 ---原理及实战
- Spark MLlib特征处理:Normalizer 正则化---原理及实战
- Spark MLlib特征处理:TF-IDF 词频-逆文频---原理及实战
- Spark MLlib特征处理:PCA 主成分分析 ---原理及实战
- Spark MLlib聚类clustering:KMeans K均值 ---原理及实战
- spark mllib 实战
- Spark-mllib特征提取算法
- Spark-mllib特征转换算法
- Spark-mllib特征选择算法
- POJ3264 区间最大最小值
- Spark MLlib LDA 基于GraphX实现原理及源码分析
- spark--二十种特征变换方法及Spark MLlib调用实例(Scala/Java/python)(一)
- 模板:线段树求区间最大/最小值及下标
- Spark中ml和mllib库特征处理例子及其文档总结
- Spark入门实战系列--8.Spark MLlib(上)--机器学习及SparkMLlib简介
- 类的多态
- 闲来无事写一个propertiesUtile工具类
- 各种容器与服务器的区别与联系:Servlet容器 WEB容器 Java EE容器 应用服务器 WEB服务器 Java EE服务器
- 知识库 tomcat-A Simple Web Server static
- html5 编辑API之range对象(二)
- Spark MLlib特征处理:MinMax最大最小值区间缩放---原理及实战
- 文本框限制输入类型的相关代码设置
- uc/os-II 分析(9)---消息邮箱
- 浦发网上银行
- 分布式系列——分布系统的一些技术
- git merge和git rebase的区别
- 汉洛塔递归实现的思考(C语言)
- VB中的传值和传址,形式参数与实际参数
- Python学习09:继承与多重继承