Spark MLib 基本统计汇总 2
4. 假设检验
基础回顾:
- 假设检验,用于判断一个结果是否在统计上是显著的、这个结果是否有机会发生。
- 显著性检验
- 原假设与备择假设
常把一个要检验的假设记作 H0,称为原假设(或零假设) (null hypothesis)
与H0对立的假设记作H1,称为备择假设(alternative hypothesis)
- 拟合优度Goodness of Fit,是指回归直线对观测值的拟合程度。
对非线性方程:
(1)计算残差平方和 Q =∑(y-y*)2 和 ∑y2 ,其中,y 代表的是实测值,y* 代表的是预测值
(2)拟合度指标 RNew=1-(Q/∑y2)1/2
角标new就是为了和线性回归方程的判定系数R2、adjusted R2进行区别。在对方程拟合程度的解释上,Rnew和R2、adjusted R2是等价的,其意义也相同。
对线性方程:
R2 = ∑(y预测-y)2/∑(y实际-y)2,y是平均数。
如果R2=0.775,则说明变量y的变异中有77.5%是由变量X引起的。
当R2=1时,表示所有的观测点全部落在回归直线上。
当R2=0时,表示自变量与因变量无线性关系。
- 独立性检验(属于卡方检验的一种)
它是根据频数判断两类因子彼此相关或相互独立的假设检验。
假设有两个分类变量X和Y,它们的值域分另为{x1, x2}和{y1, y2},其样本频数列联表为:
构造统计量:
K2越小,原假设H0成立的可能性越大;它越大,目标结论H1成立的可能性越大.)
步骤:
Mlib的假设检验:
spark.mllib
目前支持皮尔森卡方检测。- 输入属性的类型决定拟合优度(
goodness of fit
)检测还是独立性检测。 拟合优度检测需要输入数据的类型是vector
,独立性检测需要输入数据的类型是Matrix
。 - import org.apache.spark.mllib.stat.Statistics._ ; Statistics 的 chiSqTest 方法用来做检测,当输入 vector和Matrix 时不同的检验。
import org.apache.spark.SparkContext
import org.apache.spark.mllib.linalg._
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.stat.Statistics._ // 作皮尔森拟合优度检测
val vec: Vector =Vectors.dense(1.0, 2.0, 3.0)
val goodnessOfFitTestResult = Statistics.chiSqTest(vec)
println(goodnessOfFitTestResult) // 作皮尔森独立性检测
val mat: Matrix =Matrices.dense(3,2,Array(9.0,1.0,2.0,3.0,8.0,6.0))
val independenceTestResult = Statistics.chiSqTest(mat)
println(independenceTestResult)
5. 随机数生成
spark.mllib
支持生成随机的RDD
, RDD
的独立同分布(iid
)的值来自于给定的分布:均匀分布、标准正太分布、泊松分布。
例子:用标准正态分布生成一个随机的双精度RDD
import org.apache.spark.mllib.random.RandomRDDs._ val u = normalRDD(sc, 1000000L, 10) // 生成了一个10个RDD分区的百万个随机数 val v = u.map(x => 1.0 + 2.0 * x) //把标准正态分布产生的随机数map到N(1,4)的正态分布
6. 核密度估计
http://blog.163.com/zhuandi_h/blog/static/1802702882012111092743556/
核密度估计可以用来估计未知的密度函数,属于非参数检验方法。
假设我们有n
个数 ,要计算某个数
X
的概率密度有多大, 可以通过下面的核密度估计方法估计。
K
为核密度函数,h
为窗宽。
原理比较简单,在我们知道某一事物的概率分布的情况下
如果某一个数在观察中出现了,我们认为这个数的概率密度很大,和这个数近的数的概率密度也比较大;而那些离这个数远的数的概率密度会比较小。
- 基于这种想法,针对观察中的第一个数,我们可以用
K
去拟合我们想象中的那个远小近大概率密度。
对每一个观察数拟合出的多个概率密度分布函数,取平均。 如果某些数是比较重要的,则可以取加权平均。
- 核密度的估计并不是找到真正的分布函数。
- 在
MLlib
中,仅仅支持以 高斯核(正态分布) 做核密度估计:
- KernelDensity 的 estimate 方法
import org.apache.spark.mllib.stat.KernelDensity
import org.apache.spark.rdd.RDD val data: RDD[Double] = ... // an RDD of sample data val kd = new KernelDensity()
.setSample(data)
.setBandwidth(3.0)
val densities = kd.estimate(Array(-1.0, 2.0, 5.0))
Spark MLib 基本统计汇总 2的更多相关文章
- Spark MLib 基本统计汇总 1
1. 概括统计 summary statistics MLlib支持RDD[Vector]列式的概括统计,它通过调用 Statistics 的 colStats方法实现. colStats返回一个 ...
- Spark MLib完整基础入门教程
Spark MLib 在Spark下进行机器学习,必然无法离开其提供的MLlib框架,所以接下来我们将以本框架为基础进行实际的讲解.首先我们需要了解其中最基本的结构类型,即转换器.估计器.评估器和流水 ...
- Spark MLib:梯度下降算法实现
声明:本文参考< 大数据:Spark mlib(三) GradientDescent梯度下降算法之Spark实现> 1. 什么是梯度下降? 梯度下降法(英语:Gradient descen ...
- Spark mlib的本地向量
Spark mlib的本地向量有两种: DenseVctor :稠密向量 其创建方式 Vector.dense(数据) SparseVector :稀疏向量 其创建方式有两种: 方法一:Vector. ...
- 利用Oracle内置分析函数进行高效统计汇总
分析函数是Oracle从8.1.6开始引入的一个新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现 ...
- spark 省份次数统计实例
//统计access.log文件里面IP地址对应的省份,并把结果存入到mysql package access1 import java.sql.DriverManager import org.ap ...
- sql简单实用的统计汇总案例参考
USE [PM]GO/****** 对象: StoredProcedure [dbo].[LfangSatstics] 脚本日期: 08/24/2013 10:57:48 ******/SET ...
- Spark笔记——技术点汇总
目录 概况 手工搭建集群 引言 安装Scala 配置文件 启动与测试 应用部署 部署架构 应用程序部署 核心原理 RDD概念 RDD核心组成 RDD依赖关系 DAG图 RDD故障恢复机制 Standa ...
- Spark Streaming 002 统计单词的例子
1.准备 事先在hdfs上创建两个目录: 保存上传数据的目录:hdfs://alamps:9000/library/SparkStreaming/data checkpoint的目录:hdfs://a ...
随机推荐
- PAT 1011. A+B和C (15)
给定区间[-231, 231]内的3个整数A.B和C,请判断A+B是否大于C. 输入格式: 输入第1行给出正整数T(<=10),是测试用例的个数.随后给出T组测试用例,每组占一行,顺序给出A.B ...
- ISAPI_Rewrite中文手册
参考:http://blog.csdn.net/fanxiaojie119/article/details/5353186 第一章:软件介绍ISAPI_Rewrite 是一款适用于IIS的功能强大的基 ...
- Discuz封锁蜘蛛最有效的方法
闲来无事翻代码,发现一个好东西,Discuz设计者考虑到了有些流氓搜索引擎不遵守roborts.txt,于是设计了一个NOROBOT变量,当这个变量为true 的时候,定义中的搜索引擎都会无法访问,默 ...
- CareerCup All in One 题目汇总 (未完待续...)
Chapter 1. Arrays and Strings 1.1 Unique Characters of a String 1.2 Reverse String 1.3 Permutation S ...
- Alpha版本项目展示要求
Alpha版本展示的时间暂定为11月17日课上.如有变动,另行通知. 在Alpha阶段项目评审会上, 每个团队有12分钟展示时间,10分钟问答和机动时间,我们的展示也不需要PPT,大家把要展现的东西写 ...
- (一)GATT Profile和GAP 简介(目前所有的BLE应用都基于GATT,所以也要了解是怎么一回事)-转发
个人大总结:(先后顺序) 1.GAP协议定义多个角色(其中就有中心设备[GATT客户端](唯一)叫主设备||和外围设备[GATT服务端端](多个)也叫从设备). 2.先经过GAP协议,再有GATT协议 ...
- 工作随笔——mysql子查询删除原表数据
最近在开发的时候遇到一个mysql的子查询删除原表数据的问题.在网上也看了很多方法,基本也是然并卵(不是写的太乱就是效率太慢). 公司DBA给了一个很好的解决方案,让人耳目一新. DELETE fb. ...
- PC互联网和移动互联网的本质差别
网一代,我们先称为PC互联网,这大约可以从2010年作为分界,然后就是基于手机,及可穿戴的移动互联网. 在PC时代,软件都很庞大复杂,甚至客端端和网页混合,比如常见的桌面软件,Office及Photo ...
- Matlab 的reshape函数
看Matlab的help文档讲得不是清楚. 先给上一段代码: >> a=[1 2 3;4 5 6;7 8 9;10 11 12]; >> b=reshape(a,2,6); 这 ...
- 网页样式——各种炫酷效果持续更新ing...
1.evanyou效果-彩带的实现,效果如下 注:这个主要用的是Canvas画布实现的,点击背景绘制新的图形,代码如下: /*Html代码:*/ <canvas id=">< ...