数据分析2:盒图介绍及相关算法实现

首先我们要简单的介绍一下盒图这种东西:

盒图是在1977年由美国的统计学家约翰·图基(John Tukey)发明的。它由五个数值点组成:

最小值(min),下四分位数(Q1),中位数(median),上四分位数(Q3),最大值(max)。也可以往盒图里面加入平均值(mean)。如图。下四分位数、中位数、上四分位数组成一个“带有隔间的盒子”。上四分位数到最大值之间建立一条延伸线,这个延伸线成为“胡须(whisker)”。

由于现实数据中总是存在各式各样地“脏数据”,也称为“离群点”,于是为了不因这些少数的离群数据导致整体特征的偏移,将这些离群点单独汇出,而盒图中的胡须的两级修改成最小观测值与最大观测值。这里有个经验,就是最大(最小)观测值设置为与四分位数值间距离为1.5个IQR(中间四分位数极差)。即

1、IQR = Q3-Q1,即上四分位数与下四分位数之间的差,也就是盒子的长度。

2、最小观测值为min = Q1 - 1.5*IQR,如果存在离群点小于最小观测值,则胡须下限为最小观测值,离群点单独以点汇出。如果没有比最小观测值小的数,则胡须下限为最小值。

3、最大观测值为max = Q3 + 1.5*IQR,如果存在离群点大于最大观测值,则胡须上限为最大观测值,离群点单独以点汇出。如果没有比最大观测值大的数,则胡须上限为最大值。

如果给出了一个数据集D,D是一个结构体数组,我们要对其中的元素 communicate结构进行盒图分析,即要求出来盒图的五个元素,这时候我们该怎么办?

一个非常简单的办法叫做桶排序!!!这个方法参照我的一篇博文:

  http://blog.csdn.net/qq_23100787/article/details/51143387 超链接在左边

然后我们假设T数据集是桶排序后的数据集,那么我们对这个数据集进行循环遍历即可,桶排序是一种典型的用空间换时间的排序方法。

算Q1方法:遍历过去1/4位置时候的值

算Q3方法:遍历过去3/4位置时候的值

算中位数方法:遍历过去1/2位置时候的值 (分奇数偶数)

算众数方法:遍历过去单次最多的值

算最大值最小值方法:遍历过去第一个和最后一个

最后思想我们知道了,如果有代码就更好了,我就给出我写的局部的代码:

<strong> </strong>int min_value = 99999999,max_value = 0,most_value=0,ave_value=0;
        for(int i=0;i<5000;i++){
            if(T[i].flag==true){
                //计算众数
                if(T[i].virable>max_temp){
                    most_value = i;
                    max_temp = T[i].virable;
                }
                 for(int j=0;j<T[i].virable;j++){

                     //计算均值
                     ave_value +=i;

                    //计算中位数,最大最小值,两个胡须
                    count_temp ++;          //问题出在这儿,一次加太多了
                    if(count_temp==((row_count-1)/4)){
                        q_1 = i;
                    }
                    if(count_temp==((row_count-1)/2)){
                        middle = i;
                    }
                    if(count_temp==((row_count-1)/4*3)){
                        q_3 = i;
                    }
                    if(count_temp==1){
                        min_value = i;
                    }
                    if(count_temp==row_count-1){
                        max_value = i;
                    }
                 }
            }
        }

上面是伪代码,但是聪明的你肯定已经通过讲解看懂了,希望大家能喜欢这篇博文~~~

转载请说明出处

时间: 2024-10-29 05:30:44

数据分析2:盒图介绍及相关算法实现的相关文章

图 Graph-图的相关算法

2018-03-06 17:42:02 一.最短路问题 问题描述:在网络中,求两个不同顶点之间的所有路径中,边的权值之和最小的那一条路径. 这条路径就是两点之间的最短路径 (Shortest Path) 第一个顶点为源点 (Source) 最后一个顶点为终点 (Destination) 问题分类: 单源最短路径问题:从某固定源点出发,求其到所有其他顶点的最短路径. (有向)无权图 (有向)有权图 多源最短路径问题:求任意两顶点间的最短路径. 1)无权图的单源最短路算法 BFS可以解决这类问题.

《算法导论》图相关算法小结

最近又抽空读了一遍<算法导论>,关于图的内容贯穿了多个章节(比如在动态规划一章埋了无权最短路径的伏笔,后面才专门讲),适用条件各异,而且都有证明过程. 如果不打算熟记证明,仅仅是应用,遇到具体场景再去回忆适用于哪种算法不太方便. 以下内容以手头的机械工业出版社基于原书第2版的译本整理了一下,便于速查. 不包含思考题.标注为"*"的章节和习题内容. 符号定义 一般地, 图G=(V, E),其中V代表顶点集合,E代表边集合.ω(u, v)代表从顶点u到顶点v的边的权值. 如果ω

采样方法(二)MCMC相关算法介绍及代码实现

采样方法(二)MCMC相关算法介绍及代码实现 2017-12-30 15:32:14 Dark_Scope 阅读数 10509更多 分类专栏: 机器学习 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Dark_Scope/article/details/78937731 0.引子 书接前文,在采样方法(一)中我们讲到了拒绝采样.重要性采样一系列的蒙特卡洛采样方法,但这些方法在高维空间时都

探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法 - 聚类

聚类分析 什么是聚类分析? 聚类 (Clustering) 就是将数据对象分组成为多个类或者簇 (Cluster),它的目标是:在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大.所以,在很多应用中,一个簇中的数据对象可以被作为一个整体来对待,从而减少计算量或者提高计算质量. 其实聚类是一个人们日常生活的常见行为,即所谓"物以类聚,人以群分",核心的思想也就是聚类.人们总是不断地改进下意识中的聚类模式来学习如何区分各个事物和人.同时,聚类分析已经广泛的应用在许多应用中,包

探索推荐引擎内部的秘密,第 2 部分: 深入推荐引擎相关算法 - 协同过滤(转)

第 2 部分: 深入推荐引擎相关算法 - 协同过滤 本系列的第一篇为读者概要介绍了推荐引擎,下面几篇文章将深入介绍推荐引擎的相关算法,并帮助读者高效的实现这些算法. 在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法.它以其方法模型简单,数据依赖性低,数据方便采集 , 推荐效果较优等多个优点成为大众眼里的推荐算法“No.1”.本文将带你深入了解协同过滤的秘密,并给出基于 Apache Mahout 的协同过滤算法的高效实现.Apache Mahout 是 ASF 的一个

深入推荐引擎相关算法 - 协同过滤

集体智慧和协同过滤 什么是集体智慧 集体智慧 (Collective Intelligence) 并不是 Web2.0 时代特有的,只是在 Web2.0 时代,大家在 Web 应用中利用集体智慧构建更加有趣的应用或者得到更好的用户体验.集体智慧是指在大量的人群的行为和数据中收集答案,帮助你对整个人群得到统计意义上的结论,这些结论是我们在单个个体上无法得到的,它往往是某种趋势或者人群中共性的部分. Wikipedia 和 Google 是两个典型的利用集体智慧的 Web 2.0 应用: Wikip

图的所有简单算法实现

包括邻接链表.有向无向图.带权图.增删顶点和边.查找.连通.DFS和BFS等.这只是一个最初版本,有些复杂的算法还没有实现. package structure; //图的邻接链表的节点 public class GraphListNode { private int vertex;//图的顶点 private int weight;//边的权重 private boolean visited;//是否访问过 //带权重图的节点 public GraphListNode(int vertex,i

AdaBoost 人脸检测介绍(3) : AdaBoost算法流程

本系列文章总共有七篇,目录索引如下: AdaBoost 人脸检测介绍(1) : AdaBoost身世之谜 AdaBoost 人脸检测介绍(2) : 矩形特征和积分图 AdaBoost 人脸检测介绍(3) : AdaBoost算法流程 AdaBoost 人脸检测介绍(4) : AdaBoost算法举例 AdaBoost 人脸检测介绍(5) : AdaBoost算法的误差界限 AdaBoost 人脸检测介绍(6) : 使用OpenCV自带的 AdaBoost程序训练并检测目标 AdaBoost 人脸

IOS 学习之 iOS沙盒(sandbox) 介绍 沙盒机制 文件操作(一)

1.iOS沙盒机制 iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等. 1.1.每个应用程序都有自己的存储空间 1.2.应用程序不能翻过自己的围墙去访问别的存储空间的内容 1.3.应用程序请求的数据都要通过权限检测,假如不符合条件的话,不会被放行.     通过这张图只能从表层上理解sandbox是一种安全体系,应用程序的所有操作都要通过这个体系来执行,其中核心内容是