Spark MLlib有几种数据操作,分别是RDD操作、MLlib Statistics 统计操作、数据格式处理。
(1)RDD操作
常见的有文件读取 val distFile = sc.textFile("数据源")
数据分区 val distData = sc.parallelize(data,3)
转换操作 val rdd2 = rdd1.map(x=>x*2)
过滤操作 val rdd2 = rdd1.filter(x=>x>10)等等
(2)Statics 统计操作
1、列统计(属性统计)
val stat = Statistics.colStates(data);stat.min;stat.max;stat.mean;stat.variance;stat.norm了;stat.normL2;
统计每一列的最大值、最小值、平均数、方差、L1范数、L2范数;
2、皮尔曼相关系数
val corr1 = Statistics.corr(data,"pearson")#计算每一行列的相关系数
val corr2 = Statistics.corr(x,y,"pearson")#计算两变量的相关系数
3、假设检验
当输入类型为Vector时,可以做拟合度检验判断拟合度;当输入为Matrix 时,做卡方检验。
val c1 = Statistics.chiSqTest(v1,v2)
卡方检验就是统计样本的实际观测值与理论推断值之间的偏离程度,实际观测值与理论推断值之间的偏离程度就决定卡方值的大小,如果卡方值越大,二者偏差程度越大;反之,二者偏差越小;若两个值完全相等时,卡方值就为0,表明理论值完全符合。,通常用在某个变量(或特征)值是不是和因变量有显著关系。
具体使用可见https://www.jianshu.com/p/807b2c2bfd9b;卡方值,自由度,P-value等概念(是否接受某种假设需要对照相应的表)。卡方检验的对照表是怎么得到的?目前还不清楚。
(3)数据格式处理
一般为加载数据成固定格式,如loadLibSVMFile方法加载数据成libsvm格式(label ,feature)
网友评论