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 ...
随机推荐
- NOI退役啦
没进前一百 签的上交一本 高三加油喽
- 《c程序设计语言》读书笔记-5.6-指针重写getline等函数
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> ...
- 《c程序设计语言》读书笔记-3.4-数字转字符串
#include <io.h> #include <stdio.h> #include <string.h> #include <stdlib.h> # ...
- 看angualrjs源码中怎么判断所属的类型
下面是angualrjs的代码: function isFile(obj) { return toString.call(obj) === '[object File]'; } function is ...
- 几个简单的VBS脚本程序以及其JS实现
1 语音发声脚本,调用sapi.spvoice读英语hh 保存为say.vbs,点击打开就可以念诗: set objTTS = CreateObject("sapi.spvoice&quo ...
- Topcoder SRM 602 div1题解
打卡- Easy(250pts): 题目大意:rating2200及以上和2200以下的颜色是不一样的(我就是属于那个颜色比较菜的),有个人初始rating为X,然后每一场比赛他的rating如果增加 ...
- win8.1 安装sql2008 启动报错.net framework 应用程序的组件中发生了异常unable to read the previous list
解决方案:删除 RegSrvr.xml C:\Documents and Settings\Administrator\Application Data\Microsoft\Microsoft SQL ...
- SCP 命令(自己总结)
\ svn 删除所有的 .svn文件 find . -name .svn -type d -exec rm -fr {} \; linux之cp/scp命令+scp命令详解 名称:cp 使用权限: ...
- 三、第一个cocos2d程序的代码分析
http://blog.csdn.net/q199109106q/article/details/8591706 在第一讲中已经新建了第一个cocos2d程序,运行效果如下: 在这讲中我们来分析下里面 ...
- Appium+python自动化10-AVD 模拟器【转载】
前言 有些小伙伴没android手机,这时候可以在电脑上开个模拟器玩玩 一.模拟器配置 1.双击启动AVD Manager,进入配置界面