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 ...
随机推荐
- Codeforces 938.A Word Correction
A. Word Correction time limit per test 1 second memory limit per test 256 megabytes input standard i ...
- "todoList妙味"学习总结
1.v-bind 主要用于属性绑定 :class="{completed: item.isChecked}",它会将{}里面的内容解析为js表达式 2.vue提供了一组方法, ...
- error C2440: 'static_cast' : cannot convert from 'UINT (__thiscall CStaticLink::* )(CPoint)' to 'LRESULT (__thiscall CWnd::* )(CPoint) (转)
原文转自 http://blog.csdn.net/yinxing408033943/article/details/7601698 解决方法: 找到 UNIT CStaticLink::OnNcH ...
- 华为上机测试题(表达式运算-java)
PS:自己写的,自测试OK,供大家参考. 补充:数据解析的过程,评论区有更好的处理方式,可参考. /* * 输入一个表达式,3*8+7-2,没有括号 输出结果 */ /* 本程序暂不考虑容错处理 */ ...
- Nginx整合PHP原理
安装Nginx 在网上,看到不少人装Nginx 时非常麻烦,配置时用了一大堆选项,请问你们真实现那么多功能么?害的我越看越郁闷.此次安装Nginx如果是按着上面笔者的步骤一步步走下来,安 ...
- kubernetes节点安装配置
#环境安装,要与控制节点一致Centos 7 Linux release 7.3.1611网络: 互通配置主机名设置各个服务器的主机名hosts#查找kubernetes支持的docker版本Kube ...
- java1.7集合源码阅读:ArrayBlockingQueue
ArrayBlockingQueue是一个先进先出线程安全的队列,队列头部是进入队列时间最长的元素,队尾是进入队列时间最短的元素,同时队列的最大容量是固定的. 先看类定义: public class ...
- hdu 5720(贪心+区间合并)
Wool Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Subm ...
- web前端性能优化,提升静态文件的加载速度
原文地址:传送门 WeTest 导读 此文总结了笔者在Web静态资源方面的一些优化经验. 如何优化 用户在访问网页时, 最直观的感受就是页面内容出来的速度,我们要做的优化工作, 也主要是为了这个目标. ...
- object的hashCode与equals
JAVA代码: public static void main(String[] args) { Object obj1 = new Object(); Obj ...