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 ...
随机推荐
- SecureCRT配置设置
颜色设置 参考: http://blog.csdn.net/zklth/article/details/8937905 配置导入.导出 参考: http://jingyan.baidu.com ...
- JNDI连接数据库的详细步骤 以及简要的c3po数据库连接的配置
第一步在tomcat的context.xml文件中配置数据源:context.xml的路径形式是:D:\Program Files (x86)\apache-tomcat-6.0.44\conf\co ...
- RSA加密/解密 Decryption error异常解决
RSA加密/解密 Decryption error异常解决 import java.io.ByteArrayOutputStream; import java.security.Key; import ...
- [bzoj2190][SDOI2008]仪仗队 ——欧拉函数
题解 以c点为(0, 0)建立坐标系,可以发现, 当(x,y)!=1,即x,y不互素时,(x,y)点一定会被点(x/n, y/n)遮挡. 所以点(x, y)被看到的充分必要条件是Gcd(x, y) = ...
- 总结DSP28335的程序设计的方法
对DSP进行开发时,需要对其底层的硬件及外设进行相应的配置,当配置完成后才可以将其相应模块激活,才可以在其内部进行程序编写及调试处理.下面对程序配置及操作进行简单的整理,仅供参考. 第一步:初始化系统 ...
- usb驱动---What is the difference between /dev/ttyUSB and /dev/ttyACM【转】
转自:http://blog.csdn.net/ppp2006/article/details/25654733 https://www.rfc1149.net/blog/2013/03/05/wha ...
- 委托delegate与Dictionary实现action选择器
大家一定都有这种情况,1.前台页面信息是通过Ajax请求的方法加载的;2.或者是通过请求本页面加载的;3.请求的页面不仅仅是一个Http请求在 这咱情况下我们一般会加一个action的参数,用于区别是 ...
- 【计算机网络】简单网络管理协议 SNMP
计算机网络 6.7节学习笔记 SNMP: 管理网络上的对象时,必然会给该对象添加一些软件或硬件,但这种添加必须对原有对象的影响尽量小. SNMP中的管理程序和代理程序按客户-服务器方式工作.管理程序 ...
- mysql运维必会的一些知识点整理(转自民工哥)
(1)基础笔试命令考察 1.开启MySQL服务 /etc/init.d/mysqld start service mysqld start systemctl start mysqld 2.检测端口是 ...
- springboot webapi 支持跨域 CORS
1.创建corsConfig 配置文件 @Configuration public class corsConfig { @Autowired varModel varModel_; @Bean pu ...