KS检验、qq图、Scalability可扩展性
1.KS检验
Kolmogorov-Smirnov test(KS检验)是一种重要的非参数检验方法,应用非常广泛,比如之前介绍的数据库CMap,其核心算法就是借鉴KS检验。
KS检验是一种统计检验方法,其通过比较两样本的频率分布、或者一个样本的频率分布与特定理论分布(如正态分布)之间的差异大小来推论两个分布是否来自同一分布。
from scipy import stats
stats.kstest(rvs, cdf, args=(),…)
#其中rvs可以是数组、生成数组的函数或者scipy.stats里面理论分布的名字
#cdf可以与rvs一致。若rvs和cdf同是数组,则是比较两数组的分布是否一致;一个是数组,另一个是理论分布的名字,则是看样本是否否和理论分布
#args是一个元组,当rvs或者cds是理论分布时,这个参数用来存储理论分布的参数,如正态分布的mean和std。
from scipy import stats
stats.kstest(data_, 'norm',args=(test.mean(),test.std())
# KstestResult(statistic=xxxx, pvalue=xxxx)
2. qq图
版权声明:qq图部分内容转载自https://blog.csdn.net/weixin_40076694/article/details/80048105
为CSDN博主「星碎夜雨」的原创文章,遵循CC 4.0 BY-SA版权协议。
qq图有两个作用:1、检验一组数据是否服从某一分布。2、检验两个分布是否服从同一分布。qq图全称是quantile-quantile plot,从名称中可以了解到是和分位数相关的图。由于最近在做数据分析时用到了,然而看了一些博客,要么是qq图讲解的比较详尽但是没有使用Python;要么是使用Python语言但是没有讲清楚原理。基于此,想写一篇博客尽量讲清楚原理并且用Python实现出来。
qq图原理是比较两组数据的累计分布函数来判断两组数据是否是服从同一分布,所以第一步我们应该做两组数据的累计分布。首先,作为对比我们看一下标准正太分布的累计分布图。
from scipy import stats
import numpy as np
x = np.arange(-5, 5, 0.1)
y = stats.norm.cdf(x, 0, 1)
plt.plot(x, y)
然后,绘制目标数据(这里使用UCI机器学习数据库中的churn数据集)的累计分布函数图。
import pandas as pd
churn_raw_data = pd.read_csv('churn.txt')
day_minute = churn_raw_data['Day Mins']
sorted_ = np.sort(day_minute)
yvals = np.arange(len(sorted_))/float(len(sorted_))
plt.plot(sorted_, yvals)
直观上对比,目标累计分布函数图和标准正太累计分布函数图差异不大,事实是不是这样呢?最后我们就可以做qq图做对比。
x_label = stats.norm.ppf(yvals) #对目标累计分布函数值求标准正太分布累计分布函数的逆
plt.scatter(x_label, sorted_)
既然做对比那么对比的标准是什么呢,我们说如果所有点基本上在一条直线上,我们可以说这两个分布是同一分布。所以根据qq图,我们得出结论目标数据组服从正太分布。
上面是为了说明qq图的原理以及怎么使用pyhton进行手动操作,作为数据分析领域里比较全能的Python,它当然也是有包可以直接绘制qq图.
stats.probplot(day_minute, dist="norm", plot=plt)
plt.show()
还是比较方便就可以绘制的,那么比较两幅 qq图发现我们的理解是没有问题的。 qq图可以比较直观的比较两个分布是否相同的,在数据分析时也是比较常用。
参考文献:
https://stackoverflow.com/questions/3209362/how-to-plot-empirical-cdf-in-matplotlib-in-python
https://stats.stackexchange.com/questions/139708/qq-plot-in-python
https://docs.scipy.org/doc/scipy-0.16.0/reference/generated/scipy.stats.probplot.html
3.可扩展性(Scalability)
通常来说,构建分布式系统的目的是为了获取人们常常提到的可扩展的加速。所以,我们这里追求的是可扩展性(Scalability)。而我这里说的可扩展或者可扩展性指的是,如果我用一台计算机解决了一些问题,当我买了第二台计算机,我只需要一半的时间就可以解决这些问题,或者说每分钟可以解决两倍数量的问题。两台计算机构成的系统如果有两倍性能或者吞吐,就是我说的可扩展性。
这是一个很强大的特性。如果你构建了一个系统,并且只要增加计算机的数量,系统就能相应提高性能或者吞吐量,这将会是一个巨大的成果,因为计算机只需要花钱就可以买到。如果不增加计算机,就需要花钱雇程序员来重构这些系统,进而使这些系统有更高的性能,更高的运行效率,或者应用一个更好的算法之类的。花钱请程序员来修补这些代码,使它们运行的更快,通常会是一个昂贵的方法。我们还是希望能够通过从十台计算机提升到一千台计算机,就能扛住一百倍的流量。
所以,当人们使用一整个机房的计算机来构建大型网站的时候,为了获取对应的性能,必须要时刻考虑可扩展性。你需要仔细设计系统,才能获得与计算机数量匹配的性能。
参考资料:https://zhuanlan.zhihu.com/p/168757826
KS检验、qq图、Scalability可扩展性相关推荐
- android 正态分布曲线图,逼迫学习1:R语言随机数、正态分布、密度曲线、QQ图
我最近开了一个知识星球,美名其曰[数据小兵成长计划],每周或每月发布具体的学习计划,在星球内立帖为证,以学习成果为标志结束计划,学习过程如果遇到疑问,可以在星球内提问寻求帮助,直到完成. 我把它称之为 ...
- R语言aov函数进行单因素方差分析(One-way ANOVA)、使用Q-Q图来评估方差分析因变量的正态性、Bartlett验证方差的相等性(齐次性)、car包中的outlierTest函数异常检验
R语言使用aov函数进行单因素方差分析(One-way ANOVA).使用Q-Q图来评估方差分析因变量的正态性假设.Bartlett检验验证方差的相等性(齐次性).car包中的outlierTest函 ...
- matlab 用Q-Q图检验某组数据是否服从正态分布 qqplot
文章目录 任务 解决方案 任务 要使用某个模型,而这个模型的假设之一是数据服从正太分布. 需要先检验手上的数据是否服从正太分布. 解决方案 matlab的Q-Q图能检验数据是否服从正态分布,或者近似正 ...
- R语言使用epiDisplay包的shapiro.qqnorm函数执行Shapiro-Wilk检验并可视化QQ图、整合假设检验和可视化结果判断数据是否符合正态分布(图中包含假设检验的p值)
R语言使用epiDisplay包的shapiro.qqnorm函数执行Shapiro-Wilk检验并可视化QQ图.整合假设检验和可视化结果判断数据是否符合正态分布(图中包含假设检验的p值) 目录
- R语言使用epiDisplay包shapiro.qqnorm函数执行Shapiro-Wilk检验并可视化QQ图、整合假设检验和可视化结果判断数据是否符合正态分布、pch参数在可视化图中显示数据点标签
R语言使用epiDisplay包的shapiro.qqnorm函数执行Shapiro-Wilk检验并可视化QQ图.整合假设检验和可视化结果判断数据是否符合正态分布.配置pch参数在可视化图中显示数据点 ...
- Shapiro-Wilk检验(一般配合QQ图)
检验数据是否符合正态分布 类似于线性回归的方法一样,是检验其于回归曲线的残差. 使用范围:样本量N<20 软件实现:R语言的stats包中的shapiro.test函数 该检验原假设:数据服从正 ...
- ks检验正态分布结果_统计学里的数据正态性检验
在前面的文章中讲过,很多模型的假设条件都是数据是服从正态分布的.这篇文章主要讲讲如何判断数据是否符合正态分布.主要分为两种方法:描述统计方法和统计检验方法. 01.描述统计方法 描述统计就是用描述的数 ...
- python绘制qq图_Python中作QQ图(quantilequantile Plot)
Q-Q图主要可以用来回答这些问题: 两组数据是否来自同一分布 PS:当然也可以用KS检验,利用python中scipy.stats.ks_2samp函数可以获得差值KS statistic和P值从而实 ...
- ks检验与s-w 检验_简单的方法教会你,利用SPSS对数据进行正态性检验
导读 当我们应用统计方法对数据进行分析时,会发现很多方法都要求数据服从正态分布或近似服从正态分布,例如t检验.方差分析.线性回归等,所以对数据进行正态性检验是很有必要的,这节就介绍一下如何用SPSS对 ...
最新文章
- 对PostgreSQL缺省表空间的理解
- android 微信分享没反应问题总结
- 小程序tabbar文字在服务器上不显示,小程序的tabbar不显示
- JDK8后的日期时间API
- python并行线程倒计时_[python 并行2]线程
- JAVA里plain_Java中POJO及其细分XO、DAO的概念
- 微信小程序中引入图标
- fastjson List 转Json , Json 转List
- php1108脱机使用,电脑打印机脱机怎么重新连接
- “Flash闪存”基础 及 “SD NAND Flash”产品的测试
- iOS应用审核 - Phased Release for Automatic Updates (阶段性自动更新发布)
- 陈莉君教授: 回望踏入Linux内核之旅(下篇)
- Session Cookies Not Marked as Secure
- 请问苹果x是如何建文件夹_苹果xmind怎么建立文件夹
- 靠 Java「上位」的编程语言,竟成最流行编程语言之一
- idea keymap之前选择成 Eclipse 后,idea默认的快捷键Default找不到了的解决办法
- RealView编译器常用特有功能(转)
- 阿里云学生成长计划领取资格考试答案
- 【dubbo系列001】dubbo是什么?dubbo解决什么问题?
- A1489. 抽奖(乔明达)
热门文章
- 基于mindwave脑电波进行疲劳检测算法的设计(5)
- php月份转英文缩写,将日期转换成时间戳 strtotime
- 题解报告——Sandy的卡片
- MIUI ROM 定制教程
- 浏览器代理服务器没有响应解决方案
- PgSQl 结合 Mybatis 插入 json,及查询,数据库使用 jsonb
- ubuntu18.0安装搜狗输入法无法显示中文
- Autoware 1.14(WSL2) 与LG SVL Simulator(Win11)联合仿真
- 火爆全网的 “蚂蚁牙黑” 特效 今天你也可以做。
- PAT乙级练习题1030 完美数列