精华内容
下载资源
问答
  • 什么是预测不确定性,为什么您要关心它? 不确定性的两个来源是什么? 如何使用CatBoost梯度提升库估算回归问题的不确定性 什么是不确定性? 机器学习已广泛应用于系列任务。但是,在某些高风险应用中,例如自动...

    本教程涵盖以下主题:

    1. 什么是预测不确定性,为什么您要关心它?
    2. 不确定性的两个来源是什么?
    3. 如何使用CatBoost梯度提升库估算回归问题的不确定性

    什么是不确定性?

    机器学习已广泛应用于一系列任务。但是,在某些高风险应用中,例如自动驾驶,医疗诊断和财务预测,错误可能导致致命的后果或重大的财务损失。在这些应用中,重要的是要检测系统何时犯错并采取更安全的措施。此外,还希望收集这些“故障场景”,对其进行标记,并教系统通过主动学习做出正确的预测。

    预测不确定性估计可用于检测错误。理想情况下,该模型在可能会出错的情况下表明高度不确定性。这使我们能够发现错误并采取更安全的措施。至关重要的是,行动的选择取决于模型为何不确定。不确定性的主要来源有两个:数据不确定性(也称为偶然不确定性)和知识不确定性(也称为认知不确定性)。如果我们的目标是发现错误,则不必将这两个不确定性分开。但是,如果我们的目标是主动学习,那么我们想发现新的输入,并且可以将知识不确定性用于此。

    数据的不确定性是由于数据固有的复杂性而产生的,例如加性噪声或重叠类。在这些情况下,模型知道输入具有多个类别的属性,或者目标有噪声。重要的是,无法通过收集更多的训练数据来减少数据不确定性。当模型的输入来自训练数据稀疏或远离训练数据的区域时,就会出现知识不确定性。在这些情况下,模型对该区域了解得很少,并且可能会犯错。与数据不确定性不同,可以通过从一个了解程度不高的区域收集更多的训练数据来减少知识不确定性。

    本教程详细介绍了如何在CatBoost中量化数据和知识的不确定性。

    CatBoost中的数据不确定性

    为了说明这些概念,我们将使用一个简单的综合示例。

    假设我们有两个分类特征x 1和x 2,每个都有9个值,所以有81种可能的特征组合。 目标取决于以下函数:

    y = mean(x₁,x₂) + eps(x₁,x₂)
    

    其中平均值(x 1,x 2)是一个未知的固定值,而eps(x 1,x 2)是一个正态分布的噪声(即数据不确定性),平均值为0,方差为var(x 1,x 2)。 在我们的示例中,均值(x 1,x 2)是随机生成的,而var(x 1,x 2)具有两个值(0.01和0.04),其分布如下:

    红心上的点比红心外的点在目标中具有更多的噪音。 请注意,我们列举了类别以获得更好的可视化效果,但是在数据集中,两个功能都是分类的,即未给出顺序。

    当我们生成具有这种分布的数据集时,我们假设红心内没有任何训练示例-这些特征组合被认为是我们数据集的异常值。

    用RMSE损失优化的标准模型只能预测平均值(x 1,x 2)。 好的,但是如果我们要估算y的方差,即数据不确定性,该怎么办? 换句话说,如果我们想了解哪些预测比较吵杂怎么办? 为了估计数据的不确定性,必须使用预测均值和方差的概率回归模型。 为此,CatBoost中有一个名为RMSEWithUncertainty的新损失函数。 有了这个损失,类似于NGBoost算法[1],CatBoost估计正态分布的均值和方差,优化负对数似然率并使用自然梯度。 对于每个示例,CatBoost模型返回两个值:估计平均值和估计方差。

    让我们尝试将此损失函数应用于我们的简单示例。 我们得到以下变化:

    我们可以看到CatBoost成功地预测了心脏及其外部的变化。 在心脏内部,我们没有训练数据,因此可以预测任何事情。

    CatBoost中的知识不确定性

    我们知道如何估算数据中的噪声。 但是,如何衡量由于特定地区缺乏培训数据而导致的知识不确定性? 如果我们要检测异常值该怎么办? 估计知识不确定性需要模型的整体。 如果所有模型都理解输入,则它们将给出相似的预测(较低的知识不确定性)。 但是,如果模型不理解输入,则它们可能会提供不同的预测,并且彼此之间会强烈不同意见(知识不确定性很高)。 对于回归,可以通过测量多个模型之间的均值方差来获得知识不确定性。 请注意,这与单个模型的预测方差不同,后者可以捕获数据不确定性。

    让我们考虑一下生成的GBDT模型的集合,如下所示:

    def ensemble(train_pool, val_pool, num_samples=10, iters=1000, lr=0.2):
        ens_preds = []
        for seed in range(num_samples):
            model = CatBoostRegressor(iterations=iters, learning_rate=lr, 
                                      loss_function='RMSEWithUncertainty', posterior_sampling=True,
                                      verbose=False, random_seed=seed)
            model.fit(train_pool, eval_set=val_pool)
            ens_preds.append(model.predict(test))
        return np.asarray(ens_preds)
    

    使用选项posterior_sampling生成模型,因为这可以使获得的(随机)预测很好地分布(具有良好的理论属性,在这里我们参考[2]以获得详细信息)。

    然后,为了估计知识的不确定性,我们只计算模型预测的平均值的方差:

    knowledge = np.var(ens_preds, axis=0)[:, 0]
    

    我们得到以下结果:

    该模型正确检测到心脏内部的知识不确定性(我们看不到原始心脏边界的痕迹)。 这说明了如何通过估计知识的不确定性来检测异常输入。

    实际上,训练多个CatBoost模型的集成可能太昂贵了。 理想情况下,我们希望训练一个模型,但仍然能够检测异常值。 有一个解决方案:我们可以使用从单个训练模型中获得的虚拟集合:

    def virt_ensemble(train_pool, val_pool, num_samples=10, iters=1000, lr=0.2):
        ens_preds = []
        model = CatBoostRegressor(iterations=iters, learning_rate=lr, 
                                  loss_function='RMSEWithUncertainty', posterior_sampling=True, 
                                  verbose=False, random_seed=0)
        model.fit(train_pool, eval_set=val_pool)
        ens_preds = model.virtual_ensembles_predict(test, prediction_type='VirtEnsembles', 
                                                    virtual_ensembles_count=num_samples)
        return np.asarray(ens_preds)
    

    CatBoost通过一个训练完成的模型返回多个预测。 这些预测是通过截断模型获得的:

    同样,我们使用选项posterior_sampling来保证裁剪预测的理想分布。 让我们看看我们得到了什么:

    注意,由于虚拟集合元素是相关的,因此知识不确定性的预测绝对值现在要小得多。 但是,它仍然可以成功检测到未被占用的区域(异常值)。

    代替返回几个模型的预测的prediction_type =“ VirtEnsembles”,我们可以使用prediction_type =“ TotalUncertainty”并使相同的结果更容易。 对于这种预测类型,CatBoost使用虚拟集合计算所有类型的不确定性。 即,对于RMSEWithUncertainty,它返回以下统计信息:[均值预测,知识不确定性,数据不确定性]:

    model = CatBoostRegressor(iterations=1000, learning_rate=0.2, 
                              loss_function='RMSEWithUncertainty', posterior_sampling=True, 
                              verbose=False, random_seed=0)
    model.fit(train_pool, eval_set=val_pool)
    preds = model.virtual_ensembles_predict(test, prediction_type='TotalUncertainty', 
                                            virtual_ensembles_count=10)
    
    mean_preds = preds[:,0] # mean values predicted by a virtual ensemble
    knowledge = preds[:,1] # knowledge uncertainty predicted by a virtual ensemble
    data = preds[:,2] # average estimated data uncertainty
    

    感谢您的关注! 我希望本教程可以帮助您更好地了解不确定性的概念以及如何使用CatBoost进行估算。 我们将在以后的文章中详细介绍不确定性的应用。 敬请期待😺

    引用

    [1] T. Duan et al., NGBoost: Natural Gradient Boosting for Probabilistic Prediction (2020), ICML 2020

    [2] A. Ustimenko, L. Prokhorenkova and A. Malinin, Uncertainty in Gradient Boosting via Ensembles” (2020), arXiv preprint arXiv:2006.10562

    本文代码:https://github.com/catboost/catboost/blob/master/catboost/tutorials/uncertainty/uncertainty_regression.ipynb

    作者:Liudmila Prokhorenkova

    deephub翻译组

    展开全文
  • 不确定度

    千次阅读 2018-10-25 22:39:40
    输入这一组数据的个数n,以及仪器的误差dif和c,//输入n个数据 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using ...

    一个很简单的程序,求不确定度

    输入这一组数据的个数n,以及仪器的误差dif和c,//输入n个数据

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int main(){
        int n;
        while(scanf("%d",&n)!=EOF){        //输入这一组数据的个数n,
            float a[100];
            float s2,s,ua,sum,ub;
            float t=1.32;         //给定t
            float dif,c;
            scanf("%f%f",&dif,&c); //以及仪器的误差dif和c
            for(int i=0;i<n;i++){
                scanf("%f",&a[i]);   //输入n个数据
                sum+=a[i];
            }
            float average=(float)sum/n;
            for(int i=0;i<n;i++){
                s2+=(a[i]-average)*(a[i]-average);
            }
            s=sqrt((float)(s2/n/(n-1)));
            ua=s*t;
            ub=(float)dif/c;
            printf("ua:%f\n",ua);
            printf("ub:%f\n",ub);
            float uc;
            uc=sqrt(ua*ua+ub*ub);
            printf("uc:%f\n",uc);
        }
    
        return 0;
    }
    

     

    展开全文
  • 处理不确定数据的方法研究

    千次阅读 2016-01-25 11:41:35
    成果简介: ...本研究针对不确定性的数学理论、算法及应用开展了多层次研究:在随机性数据处理方面,应用已有的成熟算法对实际生活中常见的不确定性现象开展分析,包括了多维标度法在亲属关系中的分析应

    成果简介:

    不确定性是客观存在的大量现象和事物的特征,其表现形式也具有多样性,如随机性、模糊性、粗糙性以及多重不确定性等。随着研究范围的扩大、研究内容的深入,对不确定现象与事物的研究及其数据处理方法也亟待突破和落地应用。本研究针对不确定性的数学理论、算法及应用开展了多层次研究:在随机性数据处理方面,应用已有的成熟算法对实际生活中常见的不确定性现象开展分析,包括了多维标度法在亲属关系中的分析应用、Bayes判别法在医学领中的分析应用;在粗糙性数据处理方面,发展了若干处理不确定性数据的新方法,包括了合成集值信息系统的属性特征分析方法以及基于包含度的结构粗糙集近似方法研究。

    成果内容提要:

    随着信息技术的日星月异,一些具有海量、高维、动态等特征的大规模复杂数据不对涌现,这些数据以数字、语言、声音、图像等形式进行存储,并形成了大量的复杂信息系统,人们迫切需要去分析处理这些复杂数据,从中找到有价值的信息和知识。然而,由于这些数据带有的高度不确定性,直接对这些数据进行处理面临着严重的计算问题。瞎子摸象的故事就反映了在信息不确定性下进行应用推理会产生认知的偏差。因此,如何有效、快速地处理不确定性数据,并提取出隐含其中、潜在有用的知识,一直是智能信息处理领域的一个研究热点。

    作为知识获取和数据挖掘的重要理论,概率论与包含度理论是处理随机性和粗糙性数据工具的基础理论。本作品针对若干不确定性的数学理论、算法及应用开展了多层次研究,在随机和粗糙性数据处理方面取得了以下两方面的研究成果,对推动不确定性数据处理的理论、方法和实际应用研究具体重要的现实意义。

    1、在随机性数据处理方面,应用基于概率论的统计分析算法对实际生活的常见不确定性现象开展分析。

    (1)多维标度法在亲属关系中的分析应用:简单地介绍了多维标度法和加权多维标度法的理论及原理,对亲属关系间的不确定现象进行建模,采用多维标度法分析了亲属关系的亲密程度,展示了15种亲属关系可分为五大类,并由此得到在人们心中亲属的分类情况,最终根据这些分类来解释一些亲属间的关系,理解人际关系中的一些社会现象,帮助缓和彼此之间的一些矛盾。

    (2)Bayes判别法在医学领中的分析应用:Bayes判别在进行判别分析时考虑到各总体出现的先验概率、预报的先验概率及错判造成的损失,其判别效能优于其他判别方法。在对Bayes判别方法详细介绍基础上,本研究利用R软件对一组舒张压和胆固醇数据分别进行Bayes判别分析、Fisher判别分析和基于距离的判别分析,对比三种不同方法下得到的判别结果。结果表明,Bayes判别分析得到的分类结果精度较高,在医学领域有较好的应用前景。

    2、在粗糙性数据处理方面,发展了基于包含度理论的若干粗糙性数据处理新理论和新方法。

    (1)合成集值信息系统的属性特征:属性特征是描述数据的重要表征,也是研究信息系统中属性重要性的方法之一。对一个信息系统而言,知识库中的属性并不是同等重要的,其中有些属性是冗余的,即不必要属性,而有些属性是必需的,即必要属性。而当信息系统中的数据是随机采集时,其冗余性更为普遍。因此,研究信息系统中属性的重要性即属性特征具有重要的理论与实际意义。本研究基于集值信息系统中的拟序关系,给出了对象合成、属性合成集值信息系统,讨论了集值信息系统与合成集值信息系统的协调集、属性特征之间的关系,进而定义了对象(属性)子集值信息系统,研究了子集值信息系统与原集值信息系统等的必要属性及不必要属性之间的关系。

    (2)基于包含度的结构粗糙集近似方法研究:基于包含度理论的粗糙集是一种处理不确定性和不完整性的数学工具,不仅能有效地分析不完整、不一致、不精确等不完备的信息,还能对数据进行分析与推理,从中发现隐含的的知识,揭示其潜在的规律。本研究在Pawlak下、上近似和Bryniarski下、上近似的基础上,研究了结构粗糙集近似及其性质,主要包括基于概率粗糙集近似研究及其性质,利用包含度度量等价类和被近似集之间的包含程度,基于包含度的粗糙集近似及其性质,以及基于包含度的结构粗糙集近似。

    综上,上述两方面的理论和应用研究,有助于随机和粗糙性数据的合成、传播和修正,为不确定数据处理理论和应用研究提供了借鉴,同时也对产生新的不确定推理技术有着明显的指导作用。

    社会反映:

    当今世界处在一个信息时代,信息是人类社会认识世界和改造世界的知识源泉,人们接触到的各种各样的信息有时候是确定的,更多的时候是不确定的。信息本身的确定或不确定属性无所谓好坏,问题在于我们怎样去正视不确定性、认识不确定性、把握不确定性,确定与不确定揭示和反映事物变化发展过程中的必然与偶然、清晰与模糊、精确与近似之间的关系,确定性是指客观事物联系和发展过程中有规律的、必然的、清晰的、精确的属性,不确定性是指客观事物联系和发展的过程中无序的、或然的、模糊的、近似的属性,确定与不确定,既有本质区别,又有内在联系,两者之间的关系是辩证统一的。

    不确定性的数据分析研究是在概率论、可信性理论、包含度理论等基础理论支撑逐渐开展的,是指对决策受到各种事前无法控制的外部因素变化与影响所进行的研究和估计,可以尽量弄清和减少不确定性因素对关注问题的影响。本研究旨在提供处理若干不确定性问题的理论分析和数学工具,内容包括随机性数据与粗糙性数据的处理两大方面,部分反映了不确定性数据处理的最新研究成果、研究方法和研究动向,在理论体系和方法上均有所创新。本作品可作为应用数学、运筹学、管理科学、计算机科学、系统科学、信息科学与工程技术等专业师生和研究人员探讨分析不确定性数据处理的参考资料,也可作为相关专业的教师和研究人员的参考书。

    (1)多维标度法在亲属关系中的分析应用

    在实际中我们会经常遇到这样问题,对于亲人,他们跟我们的关系的亲密是怎么样排序的,哪些亲戚可以放在一个等级同等重要?本研究针对亲属关系问题,调査了亲属关系在人们心中的重要程度,由此来确定在我们心中怎样的亲属关系可以放在同等重要的位置。具体是采用了多维标度法对种亲属关系的亲近程度做了相应的分析,并且得出了比较符合实际的结果。在分析结果中,第一类是叔父和侄子,在大家庭环境中,侄子是叔父的儿子视为是一家人,可以认为是亲属关系中的一类,这与所得分析结果吻合;第二类是阿姨和侄女对个人而言,按照我们的一般直觉,可以根据性别与关系亲疏将阿姨和侄女划分在一起,这种凭直觉的划分可以由第二种分类来解释;第三类与第四类形成鲜明的性别的对比关系,这恰恰也符合我们的一般感觉;而堂兄妹在划分中被单独列为一类。由此分析结果,我们可以得出在人们的心里亲属关系的一般划分情况,根据亲属关系分类的结果,可以了解到在人心中亲属关系的密切程度并由此并观察出在人们心中怎样的亲属可以放在同等重要的位置,有利于我们理解亲属关系中的很多普遍现象(例如,个人对待叔父和堂兄妹的态度有所不同,认为父亲和儿子同等重要,遇到生活问题总是愿意找母亲或姐妹倾诉,等等)。这个分析结果对处理人际关系问题非常有帮助,让我们了解到在普遍现象中,哪些亲属被同等对待哪些亲属被有差别地对待由此可以有助于缓解一些出现在彼此关系中的矛盾,从而降低人与人之间的冲突,努力建立和谐的人际关系。

    上述成果已在国内中文核心期刊公开发表,并取得57次下载频次。论文具体信息如下:刘莎, 马江洪, 刘东航. 多维标度法在亲属关系中的应用[J]. 数学的实践与认识, 2014, 44(15): 261-266.

    (2)Bayes判别分析在医学中的应用

    判别分析是用以判别个体所属群体的一种统计学方法,它产生于20世纪30年代,近年来,在许多自然科学的各个分支和技术部门中,得到了广泛应用。判别分析假设训练样本由一个因变量和个自变量的个样本点构成依据这样的训练样本,判别分析建立起因变量与自变量之间的关系,称为判别规则,然后依据这种判别规则针对待判样本的每一个样品做出该样本点应归属与哪一类判别分析的方法很多,大致上分为两大类,一类是以距离为判别准则; 另一类是以概率为判别准则的Bayes判别。距离判别最简单、最直观的一种判别方法,但其存在不足,在实际中常用的是基于概率的Bayes判别。本研究对Bayes判别分析进行了详细的研究,给出了Bayes判别思想并且应用R软件程序对一个医学实例进行Bayes判别分析,同时将Bayes判别分析与Fisher判别分析以及基于距离的判别分析方法得到的结果进行了比较,说明了Bayes判别分析的分类结果精度高。由此判断,Bayes判别分析在病例诊断等医学领域应用中可以发挥不可估量的作用,随着数据库技术的飞速发展以及人们获取数据手段的多样化,计算机辅助诊断将会有广泛的应用前景和发展空间。

    上述成果已在国内中文核心期刊公开发表,并取得136次下载频次。论文具体信息如下:高蒙, 张旭峰, 刘权芳. 基于R软件的Bayes判别分析在医学中的应用[J]. 数学的实践与认识, 2014, 44(22): 120-124.

    (3)合成集值信息系统的属性特征

    Pawlak粗糙集理论以论域中的对象在任意属性下取值为单个值的信息系统为研究对象,以等价关系为基础研究概念近似(上下近似)和属性约简。近年来,许多学者将Pawlak粗糙集进行了推广,提出了基于不同二元关系的粗糙集理论模型。然而,一方面,现实世界中的信息系统形式复杂多样,要保证每个对象的所有属性值的完整性和唯一性往往是非常困难的。在不确定信息或缺省信息,即不完备信息的情况下,就需要研究不完备信息系统。另一方面,数据库的合成与分解是实际应用中非常重要的一个问题,它所对应的数学模型是信息系统的合成与分解,而实际处理数据时,经常要研究基于取值为集合的集值信息系统,所以研究集值信息系统的合成与分解就变得非常必要。

    属性特征是研究信息系统中属性重要性的一种重要方法。由于任意一个信息系统的知识库都是确定的,故可根据不同的要求对信息系统进行分类、知识获取和规则提取。在实际应用中,经常会出现在原信息系统上添加对象、增加或删除属性,进而在新的信息系统上进行分类、获取知识等。故而研究新的信息系统与原信息系统在知识库、知识获取、分类及规则提取等方面的关系是一个值得研究的问题。鉴于现实中存在着大量的信息是不确定、不完备或者是多值的系统,而等价关系又极大的限制了粗糙集的属性约简等方法的研究与应用。故而,本研究将上述单值信息系统的合成方法推广到集值信息系统中,研究合成的集值信息系统的属性特征。具体是研究了集值信息系统上拟序关系的性质,给出了集值信息系统的合成——对象合成集值信息系统与属性合成集值信息系统,研究了这两种合成集值信息系统与原集值信息系统的协调集及属性特征之间的关系;进而讨论了集值信息系统的分解问题,给出了对象及属性子集值信息系统,讨论了集值信息系统与其子集值信息系统的属性特征——必要属性与不必要属性之间的关系。上述理论的研究提供了一种处理不精确和不完全知识的工具,一定程度上解决了刻画粗糙集理论中属性重要性的核心问题。

    上述成果将在国内中文核心期刊公开发表,文章编号:1001-7402(2015)03-00-07。论文具体信息如下:马建敏、潘笑晨、张文修. 合成集值信息系统的属性特征[J]. 模糊系统与数学, 2015, 29(3): 1-7.

    (4)合成集值信息系统的属性特征

    Zadeh L A于1965年提出的模糊集是对“经典集合”的扩充,从而刻画了“对象”的不确定性,包含度理论是对“包含关系”的扩充,从而包容了“关系”的不确定性。模糊集理论与包含度理论相辅相成,成为研究不确定性的重要工具,在各种关系型数据库中有着直接的应用。在包含度理论基础上,Pawlak在粗糙集理论中提出的上、下近似是利用等价关系产生的等价类与被近似集之间的关系来刻画未知的知识。1989年Bryniarski提出了利用等价类刻画未知知识的带有结构特征的下、上近似,它保留了Pawlak下、上近似中等价类与被近似集之间的关系,但给出了满足上述关系的结构信息。本研究是在Pawlak下、上近似和Bryniarski下、上近似的基础上,总结了近年来我国不确定系统研究工作者的最新成果,研究了结构粗糙集近似及其性质,发展了基于包含度的粒计算的理论与方法,对于人工智能、专家系统、模式识别、管理决策都有重要意义。

    展开全文
  • 在很多模型及假设检验中都需要满足个假设条件:数据需服从正态分布。这篇文章主要讲讲如何判断数据是否符合正态分布。主要分为两种方法:描述统计方法和统计检验方法。 描述统计方法 描述统计就是用描述的数字或...
    • 在很多模型及假设检验中都需要满足一个假设条件:数据需服从正态分布。这篇文章主要讲讲如何判断数据是否符合正态分布。主要分为两种方法:描述统计方法和统计检验方法。

    描述统计方法

    • 描述统计就是用描述的数字或图表来判断数据是否符合正态分布。常用的方法有Q-Q图、P-P图、直方图、茎叶图。

    Q-Q图

    • Q是quantile的缩写,即分位数。 分位数就是将数据从小到大排序,然后切成100份,看不同位置处的值。比如中位数,就是中间位置的值。Q-Q图的x轴为分位数,y轴为分位数对应的样本值。x-y是散点图的形式,通过散点图可以拟合出一条直线, 如果这条直线的斜率为标准差,截距为均值.,则可以判断数据符合正态分布,否则则不可以。
      在这里插入图片描述
    • 拟合出来的这条直线和正态分布之间有什么关系呢?为什么可以根据这条直线来判断数据是否符合正态分布呢?我们先来想一下正态分布的特征,正态分布的x轴为样本值,从左到右x是逐渐增大的,y轴是每个样本值对应的出现的概率。概率值先上升后下降,且在中间位置达到最高。可以把Q-Q图中的y轴理解成正态分布中的x轴, 如果拟合出来的直线是45度,可以保证中位数两边的数值分布是一样的,即正态分布中基于中位数左右对称。

    P-P图

    • P-P图是根据变量的累积概率对应于所指定的理论分布累积概率绘制的散点图,用于直观地检测样本数据是否符合某一概率分布。如果被检验的数据符合所指定的分布,则代表样本数据的点应当基本在代表理论分布的对角线上。
    • P-P图的检验原理与Q-Q图基本相同,只是Q-Q图用的是分布的分位数来做检验,而P-P图是用分布的累计比。和Q-Q图一样,如果数据为正态分布,则在P-P正态分布图中,数据点应基本在图中对角线上。

    直方图

    • 直方图分为两种,一种是频率分布直方图,一种是频数分布直方图。频数就是样本值出现的次数,频率是某个值出现的次数与所有样本值出现总次数的比值。从直方图我们可以很直观的看出这组数据是否符合正态分布。
      在这里插入图片描述

    茎叶图

    • 茎叶图的思路是将数组中的数按位数进行比较,将数的大小基本不变或变化不大的位作为一个主干(茎),将变化大的位的数作为分枝(叶),列在主干的后面,这样就可以清楚地看到每个主干后面的几个数,每个数具体是多少。
    • 茎叶图是一个与直方图相类似的特殊工具,但又与直方图不同,茎叶图保留原始资料的资讯,直方图则失去原始资料的讯息。将茎叶图茎和叶逆时针方向旋转90度,实际上就是一个直方图,可以从中统计出次数,计算出各数据段的频率或百分比。从而可以看出分布是否与正态分布或单峰偏态分布逼近。
      在这里插入图片描述

    统计检验方法

    • 讲完了描述统计的方法,我们来看一下统计检验的方法。统计检验的方法主要有SW检验、KS检验、AD检验、W检验。

    SW检验

    • SW检验中的S就是偏度,W就是峰度。
    • 偏度(skewness),是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。包括右偏分布(也叫正偏分布,其偏度>0),正态分布(偏度=0),左偏分布(也叫负偏分布,其偏度<0)。在定义上,偏度是样本的三阶标准化矩:在这里插入图片描述
    • 峰度(kurtosis),表征概率密度分布曲线在平均值处峰值高低的特征数。直观看来,峰度反映了峰部的尖度,计算方法为随机变量的四阶中心矩与方差平方的比值。公式上就是把偏度计算公式里的幂次改为4即可。峰度包括正态分布(峰度值=3),厚尾(峰度值>3),瘦尾(峰度值<3)。公式可表示如下:
      在这里插入图片描述
    • 在Python的scipy包中scipy.stats.normaltest(x, axis=0, nan_policy=‘propagate’)的原理就是基于数据的偏度和峰度,该方法是专门做正态性检验的。x:待检验的数据;axis:默认为0,表示在0轴上检验,即对数据的每一行做正态性检验,我们可以设置为 axis = None 来对整个数据做检验;nan_policy:当输入的数据中有空值时的处理办法。默认为 ‘propagate’,返回空值;设置为 ‘raise’ 时,抛出错误;设置为 ‘omit’ 时,在计算中忽略空值。

    KS检验

    • KS检验是基于样本累积分布函数来进行判断的。可以用于判断某个样本集是否符合某个已知分布,也可以用于检验两个样本之间的显著性差异。如果是判断某个样本是否符合某个已知分布,比如正态分布,则需要先计算出标准正态分布的累计分布函数,然后计算样本集的累计分布函数。两个函数之间在不同的取值处会有不同的差值。我们只需要找出来差值最大的那个点D。然后基于样本集的样本数和显著性水平找到差值边界值(类似于t检验的边界值)。判断边界值和D的关系, 如果D小于边界值,则可以认为样本的分布符合已知分布,否则不可以。
      在这里插入图片描述
    • 在Python中可通过scipy包直接进行KS检验:scipy.stats.kstest(x,cdf = “norm”);x表示待检验的样本集,cdf用来指明要判断的已知分布类型:‘norm’, ’expon’, ’logistic’, ’gumbel’, ’gumbel_l’, gumbel_r’,其中norm表示正态分布检验。返回两个值:D和对应的p_value值。

    AD检验

    • AD检验是在KS基础上进行改造的,KS检验只考虑了两个分布之间差值最大的那个点,但是这容易受异常值的影响。 AD检验考虑了分布上每个点处的差值。
    • 在Python中可通过scipy包直接进行KS检验:scipy.stats.anderson(x, dist= ‘norm’),x为待检验的样本集,dist用来指明已知分布的类型,可选值与ks检验中可选值一致。返回三个结果: 第一个为统计值,第二个为评判值,第三个为每个评判值对应的显著性水平。

    W检验

    • W检验(Shapiro-Wilk的简称)是基于两个分布的相关性来进行判断,会得出一个类似于皮尔逊相关系数的值。 值越大,说明两个分布越相关,越符合某个分布。
    • 在Python中可通过scipy包直接进行W检验:scipy.stats.shapiro(x),x为待检验的样本集,上面的代码会返回两个结果:W值和其对应的p_value。shapiro是专门用于正态性检验的,所以不需要指明分布类型。且 shapiro 不适合做样本数>5000的正态性检验。

    判断完后,若数据不符合正态分布又当如何呢?后续小编将继续总结将非正态分布数据转换为正态分布的方法。

    展开全文
  • 如何用matlab找出一组离散数据中的峰值 对于一组离散数据,我们经常需要找出其中的峰值,如下一组离散数据: x = [1 2 3 4 3 2 1 5 8 9 17 12 11 5 3 2 1 7 1] 为了更直观显示,画出数组x的图。可以看出共有三个峰值...
  • 本节主要讲到了快速静态定位中的整周模糊度确定方法,快速模糊解算法,Fast Ambiguity Resolution Approch,FRAR)和最小二乘模糊降相关平差法(Least-square Ambiguity Decorrelation Adjustment,LAMBDA) ...
  • 数据指标的权重确定

    万次阅读 2018-10-14 16:30:56
    (1)主观赋权法:根据决策者(专家)主观上对各属性的重视程度来确定属性权重的方法,其原始数据由专家根据经验主观判断得到。 包括专家调查法(Delphi法)、层次分析法(AHP)、二项系数法、环比评分法、最小平...
  • 如何确定最佳训练数据集规模?

    千次阅读 2019-06-05 10:36:17
    【导读】对于机器学习而言,获取数据的成本有时会非常昂贵,因此为模型选择个合理的训练数据规模,对于机器学习是至关重要的。在本文中,作者针对线性回归模型和深度学习模型,分别介绍了确定训练数据集规模的方法...
  • 回归分析是数据挖掘中最基本的方法,其中基于普通最小二乘法的多元线性回归要求模型中的特征数据不能存在有多重共线性,否则模型的可信将大打折扣。但是就是技术而言,如何确定模型中的各各特征之间是否有多重共...
  • 人工智能之不确定推理方法

    万次阅读 2017-11-24 13:51:44
    人工智能之不确定推理方法 现实世界中的大多数问题是精确、非...不确定性推理过程实际上是种从不确定的初始证据出发,通过运用不确定性知识,最终推出具有一定不确定性但却又是合理或基本合理的结论的思维过程。
  • DCMM数据管理能力成熟评估模型

    千次阅读 2021-01-12 19:45:18
    今天想再次跟大家聊聊关于数据治理能力成熟评估模型的事,这次要聊的这个模型是DCMM。 根据国务院国资委印发的《关于加快推进国有企业数字化转型工作的通知》要求,明确指出了数据治理是国企数字化转型的...
  • 因此,在机器学习项目中,个关键的问题是,为了达到比如分类器准确等特定性能指标,我们需要多少训练数据才够。训练数据多少的问题在相关文献中也称为样本复杂度。 在这篇文章中,我们将从回归分析开始到深度...
  • 数据无处不在——我们每天创造超过2.5艾字节(exabytes)的数据,研究人员预测到2025...第数据是指企业直接从受众(包括客户、网站访问者和社交媒体关注者)那里收集的数据。“第方”是指收集第数据用于重新...
  • 组数据两两比较相关性

    万次阅读 2013-11-06 17:41:42
    这个问题可以分为几种情况,第,每组数据数据量都很小,比如只有三个或者四个。第二,每组数据都有一定的数据量,比如十几二十甚至更多,并且成对出现。第三,每组数据都有一定数据量,但没有一一对应的关系,等等...
  • 数据挖掘与数据分析

    万次阅读 多人点赞 2018-05-28 13:58:14
    数据挖掘和数据分析概述 数据挖掘和数据分析都是从数据中提取一些有价值的信息,二者有很多联系,但是二者的侧重点和实现手法有所区分。 数据挖掘和数据分析的不同之处: 1、在应用工具上,数据挖掘一般要通过...
  • 非靶向代谢数据分析方法总结

    万次阅读 多人点赞 2019-04-30 18:53:10
    其中,代谢学是相对比较年轻的一门学科,“代谢”(metabolome)的概念于1998第次被提出。基因学和转录学是生物信息的上游,更多的体现的是生物活动的内在本质因素,而代谢学是生物信息的最下游,体现的...
  • 数据结构与算法学习笔记

    万次阅读 多人点赞 2018-09-25 13:55:49
    数据结构指的是“一组数据的存储结构”,算法指的是“操作数据的一组方法”。 数据结构是为算法服务的,算法是要作用再特定的数据结构上的。 最常用的数据结构预算法: 数据结构:数组、链表、栈、队列、散列表、...
  • 当开始个新的数据科学项目时,首要任务之将是获取数据,以便能够评估项目的范围...虽然我们知道使用小数据集会导致模型在训练期间快速过拟合,但还有个经常很少讨论的问题,即模型性能的不确定性问题。在这篇文章
  • 计算与推断思维 数据科学

    万次阅读 2017-11-11 21:30:35
    数据科学 原文:Data Science 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 什么是数据科学数据科学是通过探索,预测和推断,从大量不同的数据集中得出有用的结论。探索涉及识别信息中的规律...
  • 处理数据不平衡

    万次阅读 多人点赞 2018-09-06 12:44:57
    数据不平衡问题虽然不是最难的,但绝对是最重要的问题之数据不平衡 在学术研究与教学中,很多算法都有个基本假设,那就是数据分布是均匀的。当我们把这些算法直接应用于实际数据时,大多数情况下都无法...
  • 数据结构基础概念篇

    万次阅读 多人点赞 2017-11-14 13:44:24
    数据结构一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这些...数据项:数据可分割的最小单位。数据元素可由若干个数据项组成。 数据
  • 数据挖掘系列的第篇,介绍了关于数据挖掘的基本概念以及关于数据的方方面面,建立对于数据数据挖掘的基本认识。
  • 数据分析统计学基础之数据的趋势

    千次阅读 2019-05-15 18:01:25
    数据的趋势 一.数据的集中趋势 ...  平均数为集中趋势的最常用测度值,目的是确定一组数据的均衡点。用平均数表示一组数据的情况,有直观、简明的特点,所以在日常生活中经常用到,如平均的速度...
  • 前言 如果你有什么问题,希望跟我能够一起交流,除了通过博客交流外,欢迎你加入我的...YOLO有自己训练好的数据集,在YOLO v2 中,数据集可检测的类别达9000种以上,但是9000毕竟不是全部,它能涵盖大部分的物体识...
  • 【导读】对于机器学习而言,获取数据的成本有时会非常昂贵,因此为模型选择个合理的训练数据规模,对于机器学习是至关重要的。在本文中,作者针对线性回归模型和深度学习模型,分别介绍了确定训练数据集规模的方法...
  • 最近有小伙伴面试,对数据结构和算法比较头疼,我整理了波资料,帮助大家快速掌握数据结构和算法的面试,感觉有用的下伙伴,点赞支持哦! 叨叨,直接上干货。 目录 Q1:数据结构和算法的知识点整理: Q2:...
  • 、OLAP与Impala简介1. OLAP简介 OLAP是Online ...OLAP允许以种称为多维数据集的结构,访问业务数据源经过聚合和组织整理的后数据。以此为标准,OLAP作为单独的类产品同联机事务处理(OLTP)得以明显区分。
  • 数据结构算法常见面试考题

    万次阅读 多人点赞 2018-11-08 09:29:44
    数据结构上几种树集中的讨论一下: 1.AVLtree 定义:最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)...
  • 基因测序数据的拼接/组装 (图片来源:google) 每个物种的参考基因序列(reference genome)的产生都要先通过测序的方法,获得基因的测序读段(reads),然后再进行从头拼接或组装(英文名称为do novo ...
  • 数据结构 Hash表(哈希表)

    万次阅读 多人点赞 2018-05-20 01:23:34
    参考链接:数据结构(严蔚敏) 什么是Hash表 ...那么,有没有种函数H,根据这个函数和查找关键字key,可以直接确定查找值所在位置,而需要个个比较。这样就**“预先知道”**key所在的位置,直...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 276,982
精华内容 110,792
关键字:

一组数据的不确定度