SparkMLlib基础内容
SparkMLlib基础内容
(一),多种数据类型

1.1 本地向量集
def testVetor: Unit ={
val vd:Vector=Vectors.dense(2,3,6)
println(vd(2))//输出结果为6,稠密型数据集下标从0开始依次递增
val vr:Vector=Vectors.sparse(10,Array(1,3,5,8),Array(1,2,3,4))
//sparse数据集为一个矩阵中的指定位置复制,其余位置默认为0
println(vr(8))//输出为2,即指定的下标的值
println(vr(4))//输出为0
}
1.2向量标签使用
def testLablePoint: Unit ={
val vd:Vector=Vectors.dense(2,3,6)
val lp=LabeledPoint(1,vd)
println(lp.label)//输出为1
println(lp.features)//输出为[2.0,3.0,6.0]
val vr:Vector=Vectors.sparse(10,Array(1,3,5,8),Array(1,2,3,4))
//sparse数据集为一个矩阵中的指定位置复制,其余位置默认为0
val lp2=LabeledPoint(2,vr)
println(lp2.label)//输出为2
println(lp2.features)//输出为(10,[1,3,5,8],[1.0,2.0,3.0,4.0])
}
svm文件加载
/*文本格式 (label,index:value)
7 1:1 2:1 3:1 4:9 5:2 6:1 7:2 8:0 9:0 10:1 11:3
8 1:4 2:4 3:0 4:3 5:4 6:2 7:1 8:3 9:0 10:0 11:0*/
val svmFile=MLUtils.loadLibSVMFile(sc,"svmFile")
svmFile.foreach(println(_))//分解成sparse向量格式
/* (7.0,(11,[0,1,2,3,4,5,6,7,8,9,10],[1.0,1.0,1.0,9.0,2.0,1.0,2.0,0.0,0.0,1.0,3.0]))
(8.0,(11,[0,1,2,3,4,5,6,7,8,9,10],[4.0,4.0,0.0,3.0,4.0,2.0,1.0,3.0,0.0,0.0,0.0]))
*/
1.3 矩阵的使用
本地矩阵
val mx= Matrices.dense(2,3,Array(1,2,3,4,5,6))//将数组转为2行3列
println(mx)
/*Result
1.0 3.0 5.0
2.0 4.0 6.0 */
1.4 分布式矩阵

1.4.1 行矩阵

/*
1.0 3.0 5.0
2.0 4.0 6.0 *?
val rdd=sc.textFile("test").map(_.split("\t").map(_.toDouble))
.map(line=>Vectors.dense(line))
val row=new RowMatrix(rdd)
println(row.numRows())//2
println(row.numCols())//3
1.4.2 带索引的行矩阵
val rdd=sc.textFile("test").map(_.split("\t").map(_.toDouble))
.map(line=>Vectors.dense(line)).map((vd) => new IndexedRow(vd.size,vd))
val indexRow=new IndexedRowMatrix(rdd)
indexRow.rows.foreach(println(_))
/*result
IndexedRow(3,[1.0,3.0,5.0])
IndexedRow(3,[2.0,4.0,6.0])
*/
1.4.3 坐标矩阵
val rdd=sc.textFile("test").map(_.split("\t").map(_.toDouble))
.map(value => (value(0).toLong,value(1).toLong,value(2)))
.map(value2 =>new MatrixEntry(value2._1,value2._2,value2._3))
val comRow=new CoordinateMatrix(rdd)
comRow.entries.foreach(println(_))
/*
MatrixEntry(1,3,5.0)
MatrixEntry(2,4,6.0)
*/
(二),数理统计概念



皮尔逊相关系数:https://segmentfault.com/q/1010000000094674



val Data_test=sc.parallelize(Seq(1,2,3,4,5,6)).map(_.toDouble)
.map(x => Vectors.dense(x))
val Data_test2=sc.parallelize(Seq(1,2,3,4,5,6)).map(_.toDouble)
.map(x =>LabeledPoint(x,Vectors.dense(x)) )
val stat=Statistics.colStats(Data_test)
println(stat.normL1)//曼哈顿距离
println(stat.normL2)//欧几里德距离
println(stat.variance)//平均值
val correlation=Statistics.corr(Data_test)//皮尔逊相关系数
println(correlation)
val vd=Statistics.chiSqTest(Data_test2)//卡方检验
vd.foreach(println(_))
/*results
[21.0]
[9.539392014169456]
[3.5]
1.0
Chi squared test summary:
method: pearson
degrees of freedom = 25
statistic = 30.000000000000014
pValue = 0.22428900483440284
No presumption against null hypothesis: the occurrence of the outcomes is statistically independent..
*/
SparkMLlib基础内容的更多相关文章
- IO基础内容(File)
JavaIO基础内容 IO技术概述 Output 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 Input 把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操 ...
- ROS_Kinetic_09 ROS基础内容(四)
ROS_Kinetic_09 ROS基础内容(四) 参考网址: http://wiki.ros.org/cn/ROS/Tutorials/UsingRosEd http://wiki.ros.org/ ...
- ROS_Kinetic_06 ROS基础内容(三)
ROS_Kinetic_06 ROS基础内容(三) 先插入一段闲话,关于android的碎片化,无非集中于版本过多,型号各异,品牌杂乱等,似乎这是开源软件无法摆脱的宿命,ROS似乎也在这条路上越走越远 ...
- ROS_Kinetic_05 ROS基础内容(二)
ROS_Kinetic_05 ROS基础内容(二) 1. ROS节点node 官网教程:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingNodes ...
- ROS_Kinetic_04 ROS基础内容(一)
ROS_Kinetic_04 ROS基础内容(一) 在开始基础内容之前,假定您已经完成了ROS kinetic版本的安装, 如果没有请参考ROS kinetic安装说明. 1. 环境变量 在使用ROS ...
- 1、js基础内容
js基础内容 1. 编辑器 编译环境 浏览器 编辑软件 sublime DW H5Build Atom ==[注]尽可能多的去使用编辑器去编辑代码.== Html+css ==JS 逻辑== 比作建设 ...
- css基础内容
css基础内容 CSS 指层叠样式表 (Cascading Style Sheets)样式定义如何显示 HTML 元素样式通常存储在样式表中把样式添加到 HTML 4.0 中,是为了解决内容与表现分离 ...
- (数据科学学习手札43)Plotly基础内容介绍
一.简介 Plotly是一个非常著名且强大的开源数据可视化框架,它通过构建基于浏览器显示的web形式的可交互图表来展示信息,可创建多达数十种精美的图表和地图,本文就将以jupyter notebook ...
- (数据科学学习手札41)folium基础内容介绍
一.简介 folium是js上著名的地理信息可视化库leaflet.js为Python提供的接口,通过它,我们可以通过在Python端编写代码操纵数据,来调用leaflet的相关功能,基于内建的osm ...
随机推荐
- BZOJ4552 [Tjoi2016&Heoi2016]排序 【二分 + 线段树】
题目链接 BZOJ4552 题解 之前去雅礼培训做过一道题,\(O(nlogn)\)维护区间排序并能在线查询 可惜我至今不能get 但这道题有着\(O(nlog^2n)\)的离线算法 我们看到询问只有 ...
- ionic2.x 手动搭建开发环境教程分享(nodejs,jdk,ant,androidsdk)
1.ionic简介 为什么选用ionic: 1. 彻底开源且免费 2. 性能优异 3. 基于红的发紫的AngularJs 4. 漂亮的UI 5. 强大的命令行( ...
- 莫队算法初识~~CodeForces - 617E
E. XOR and Favorite Number time limit per test 4 seconds memory limit per test 256 megabytes input s ...
- saltstack 实现haproxy+keepalived
1.目录结构规划如下 mkdir -p /srv/salt/prod/haproxy mkdir -p /srv/salt/prod/keepalived mkdir -p /srv/salt/pro ...
- Linux 软连接 & 硬链接
1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link).默认情况下,ln命令产生硬链接. [硬连接]硬连接指通过索引节点 ...
- 实现实体类和Xml相互转化
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.X ...
- 由做网站操作日志想到的HttpModule应用
背景 在以前的Web项目中,记录用户操作日志,总是在方法里,加一行代码,记录此时用户操作类型与相关信息.该记录日志的方法对原来的业务操作侵入性较强,也比较零散,不便于查看和管理.那么有没有更加通用点的 ...
- 使用vim进行java编程
首先:编写源代码Test.java 1class Test{ ...
- 编程中的runtime_error问题
前几天在编程中,代码如下: 头文件:ErrorHandlingModule.h //filename:ErrorHandlingModule.h #ifndef ErrorHandlingModule ...
- request_mem_region 与 ioremap【转】
转自:http://blog.csdn.net/alada007/article/details/7700125 如果从根本上说起的话应该从Intel的处理器芯片与其它的芯片的不同说起,与这两个函数相 ...