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基础内容的更多相关文章

  1. IO基础内容(File)

    JavaIO基础内容 IO技术概述 Output 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 Input 把持久设备上的数据读取到内存中的这个动作称为输入(读)Input操 ...

  2. ROS_Kinetic_09 ROS基础内容(四)

    ROS_Kinetic_09 ROS基础内容(四) 参考网址: http://wiki.ros.org/cn/ROS/Tutorials/UsingRosEd http://wiki.ros.org/ ...

  3. ROS_Kinetic_06 ROS基础内容(三)

    ROS_Kinetic_06 ROS基础内容(三) 先插入一段闲话,关于android的碎片化,无非集中于版本过多,型号各异,品牌杂乱等,似乎这是开源软件无法摆脱的宿命,ROS似乎也在这条路上越走越远 ...

  4. ROS_Kinetic_05 ROS基础内容(二)

    ROS_Kinetic_05 ROS基础内容(二) 1. ROS节点node 官网教程:http://wiki.ros.org/cn/ROS/Tutorials/UnderstandingNodes ...

  5. ROS_Kinetic_04 ROS基础内容(一)

    ROS_Kinetic_04 ROS基础内容(一) 在开始基础内容之前,假定您已经完成了ROS kinetic版本的安装, 如果没有请参考ROS kinetic安装说明. 1. 环境变量 在使用ROS ...

  6. 1、js基础内容

    js基础内容 1. 编辑器 编译环境 浏览器 编辑软件 sublime DW H5Build Atom ==[注]尽可能多的去使用编辑器去编辑代码.== Html+css ==JS 逻辑== 比作建设 ...

  7. css基础内容

    css基础内容 CSS 指层叠样式表 (Cascading Style Sheets)样式定义如何显示 HTML 元素样式通常存储在样式表中把样式添加到 HTML 4.0 中,是为了解决内容与表现分离 ...

  8. (数据科学学习手札43)Plotly基础内容介绍

    一.简介 Plotly是一个非常著名且强大的开源数据可视化框架,它通过构建基于浏览器显示的web形式的可交互图表来展示信息,可创建多达数十种精美的图表和地图,本文就将以jupyter notebook ...

  9. (数据科学学习手札41)folium基础内容介绍

    一.简介 folium是js上著名的地理信息可视化库leaflet.js为Python提供的接口,通过它,我们可以通过在Python端编写代码操纵数据,来调用leaflet的相关功能,基于内建的osm ...

随机推荐

  1. ubuntu启动报错 Errors were found while checking the disk-drive for /

    开机报这个错误,主要原因是硬盘检测不通过导致的,下面介绍两种方法规避该问题: 修改grub 这个方法网上比较多,直接贴过来: 进入Ubuntu启动菜单时,光标选中 *Ubuntu 后,按键盘上的 e ...

  2. python代理池的实现

    https://github.com/wangqifan/ProxyPool http://python.jobbole.com/86994/

  3. Python学习笔记(Django篇)——2、创建第一个django应用

    在helloworld工程的基础上,我们准备创建第一个基于web的django应用,把这个应用名字命名为demo   首先,是如何创建这个应用包,当然第一选择我们可以进入到cmd中,执行如下命令 py ...

  4. WKWebview 和 WebViewJavascriptBridge

    WKWebview 和 WebViewJavascriptBridge https://www.cnblogs.com/L-vincen/p/6681435.html 链接在这里,有很多不错的文章,大 ...

  5. .com和.cn域名的区别所在,各个域名后缀含义

    很多人在注册域名的时候不明白域名后缀的含义,在这里就介绍两种最为常用的域名,介绍下他们的区别以及适用的范围.需要先查询是否被注册,我们经常去的就是西部数据和万网,查询并注册未被注册的域名,一般无论是什 ...

  6. HDU5037 Frog

    Once upon a time, there is a little frog called Matt. One day, he came to a river. The river could b ...

  7. [ CodeVS冲杯之路 ] P1294

    不充钱,你怎么AC? 题目:http://codevs.cn/problem/1294/ 随手一打就是这么漂亮的全排列,想当年我初一还是初二的时候,调了1个多小时才写出来(蒟蒻一枚) 直接DFS每次枚 ...

  8. 转圈游戏(NOIP2013)

    原题传送门 好吧,这道题很水,, 首先我们一看,这就是一道快速幂的题目,k那么大... 然后第X个人的答案就是(x+m*10^k)%n啦!! 好吧,这道题没有什么注意事项 太水了 #include&l ...

  9. WIN8下笔记本共享热点的设置

    C:\windows\system32>netsh wlan start hostednetwork 无法启动承载网络. 组或资源的状态不是执行请求操作的正确状态. 解决方法: http://j ...

  10. 【转载】性能监视器(SSAS)

    使用性能监视器,您可以通过性能计数器监视 Microsoft SQL Server Analysis Services (SSAS) 实例的性能. 性能监视器是用于跟踪资源使用情况的 Microsof ...