精华内容
下载资源
问答
  • 统计学---数据误差

    千次阅读 2019-10-21 15:52:24
    只要采用概率抽样,抽样误差就是不可避免的; 抽样误差是可计算的; 抽样误差是可控制的,主要通过改变样本量来控制; 2.非抽样误差 出现在概率抽样、非概率抽样、全面调查中; 分为: 抽样框误差 只出现在...

    数据的误差分为两类:

    1.抽样误差

    是一种随机性误差;
    引起:抽样的随机性
    只出现在概率抽样中;
    只要采用概率抽样,抽样误差就是不可避免的
    抽样误差是可计算的
    抽样误差是可控制的,主要通过改变样本量来控制;

    2.非抽样误差

    出现在概率抽样、非概率抽样、全面调查中;
    可控制,但不可计算;
    非抽样误差可分为:

    1. 抽样框误差
      只出现在概率抽样中(因为只有概率抽样需要抽样框)。
    2. 回答误差
      主要有理解误差、记忆误差、有意识误差。
      记忆误差,是一种随机误差,最终结果是具有趋中的倾向;
      有意识误差,是一种系统误差,偏向一个方向;
    3. 无回答误差
      有时是随机的,有时是系统的。
      不因调查内容的无回答是随机的,可通过增大样本量来解决;
      因调查内容的无回答是系统性误差。
    4. 调查员误差
    5. 测量误差
    展开全文
  • double的精度足够日常使用,但是浮点数在计算机内部存储的时候存在的误差值是不可避免的,比如说数字5在计算机中存储的数据根据运算方式的不同,结果可能是4.99999999998,也可能是5.0000000001,这在我们需要对...

    众所周知,C和C++中,经常用到的浮点数类型无论是float类型还是double类型都存在一定的精度与误差,关于float与double所表示的范围如下:
    这里写图片描述
    double的精度足够日常使用,但是浮点数在计算机内部存储的时候存在的误差值是不可避免的,比如说数字5在计算机中存储的数据根据运算方式的不同,结果可能是4.99999999998,也可能是5.0000000001,这在我们需要对浮点数进行一些特定的操作的时候,非常容易出现不必要的麻烦,比如我们需要对浮点数double n=3.8进行如下操作的时候:

    取n的整数部分可以用:int a = int(n);
    得到n的小数部分: double b = n - a;
    对小数部分进行操作:b *= 10;
    取b的整数部分可以用: int c = int(b);

    对于以上操作,按照正确的逻辑,取3.8的整数部分3,再用3.8 - 3 = 0.8,然后0.8 * 10 = 8,取8的整数部分得8.但是程序的输出结果显然不想我们想象的那么简单:

    int main()
    {
        double n;
        while(cin>>n)
        {
            double ans = n - int(n);
            ans *= 10;
            int ans1 = int(ans);
            printf("       ans = %d\n", ans1);
        }
        return 0;
     }
    

    对于以上代码,如果输入3.8,输出结果为:
    这里写图片描述

    很显然结果为7,下面添加几句代码来验证一下:

    int main()
    {
        double n;
        while(cin>>n)
        {
                double ans = n - int(n);
                printf("       ans = %.20lf\n", ans);
                ans *= 10;
                printf("       ans = %.20lf\n", ans);
                int ans1 = int(ans);
                printf("       ans1 = %d\n", ans1);
        }
        return 0;
     }

    这里写图片描述
    很容易发现,第一个ans取得是3.8的小数部分,结果是0.79999999999999982000,正确的结果显然应该是0.8,但是由于浮点数在计算机中存储的特性,计算机认为0.79999999999999982000就是0.8,显然这给后续的运算已经产生了不必要的影响,那么如何处理呢?下面来介绍eps的处理方法:

    eps处理浮点数误差的问题:

    何为eps
    eps可以看成是epsilon的缩写,可以用来表示一个无穷小的量,通常取eps的值为:1e-10~1e-8 之间。
    可以做什么?
    对于数字5,如果计算机存储的数据为5.000000000000001,显然对这种情况不需要用到eps进行补偿,而对于有缺省的类似于4.9999999999999998的数据,eps可以进行对它的缺省值进行一定的补偿,使其在计算机中的存储值变成5.00000000000000或者5.000000000000001,这样在后续的计算中就会解决因为存储的误差造成的不必要后果。下面同样用代码验证一下:

    #define eps 1e-10 //宏定义eps为1e-10
    int main()
    {
        double n;
        while(cin>>n)
        {
            double ans = n - int(n);
            ans *= 10;
            int ans1 = int(ans + eps);
            printf("       ans1 = %d\n", ans1);
        }
        return 0;
     }

    输出结果为:
    **输出结果**

    结果一面了然。另外,对于负数的情况,只需要把ans + eps改为ans - eps即可,下面附上完整代码:

    #include<iostream>
    #include<cstdio>
    #define eps 1e-10
    using namespace std;
    int main()
    {
        double n;
        while(cin>>n)
        {
            double ans = n - int(n);
            ans *= 10;
            int ans1;
            if(ans > 0)
                ans1 = int(ans + eps);
            else
                ans1 = int(ans - eps);//如果ans < 0, 要用ans - eps;
            printf("       ans1 = %d\n", ans1);
        }
        return 0;
    }
    

    输出结果:
    这里写图片描述
    总结:
    以上内容部分参考网上资料,以及结合平时的做题经历,如有不妥,欢迎批评指正。

    展开全文
  • 关于flume中hbase插件数据误差的问题

    千次阅读 2012-04-25 19:41:43
    前几天用到flume的日志收集,基于公司的业务对flume本身自带的hbase插件做了些改造,测试的时候却出现了丢数据和多数据的问题…… 1.首先查看collector的event数,是与原数据量相符的。所以在agent与collector的...

    前几天用到flume的日志收集,基于公司的业务对flume本身自带的hbase插件做了些改造,测试的时候却出现了丢数据和多数据的问题……

    1.首先查看collector的event数,是与原数据量相符的。所以在agent与collector的交互过程是没有问题的

    2.查看开发插件业务处理过程,看了好几遍感觉也没问题。

    3.于是问题只有可能出现在hbase的数据处理上了。本来是基于flume自带的hbase插件做的改造,在数据提交那块上没动脑子,后来才发现问题就是出在数据提交这块。

    丢数据

    为什么会出现丢数据的情况呢?

    大家都知道HTable的put操作是支持本地缓存的,如果设置了buffer,HBase不会每次put操作都提交到后台,而是等client端的数据量达到指定的buffer时才向后台提交数据。

    本来在flume这种模式下,数据的提交速度本身就很快,如果不设置buffer,性能上会严重出现问题。但由于HTable本身没有提供定时提交buffer的机制,所以数据量未达到buffer时,client端的数据是不会提交到后台的。所以此时会出现丢数据的假象。于是就想独立启用一个线程定时去提交buffer中的数据,不管buffer有没有达到指定数据量。这时可以在出现异常的情况下尽量避免丢失buffer中的数据(但是不能完全避免)。

    此时因为是多线程处理HTable的数据,就要考虑到HTable的线程安全,通过HTable的介绍可知,HTable并非是线程安全的。

    This class is not thread safe for updates; the underlying write buffer can be corrupted if  multiple threads contend over a single HTable instance. 

    所以得控制好多线程操作HTable这块。

    多数据

    为什么会出现多数据的情况呢?

    首先是没有正确操作flume,在flume的agent端,如果采用DFO(Store on failure)的方式,在collector不可抵达时,agent端的event事件会存储在本地磁盘,如果第一次启动agent的时候已经存储了数据在本地磁盘而未删除,在第二次启动agent时,本地磁盘的数据会被重新发送给collector,这个时候就会出现多数据的情况。所以在重启agent的时候,记得处理本地磁盘的数据。

    另外一种情况请参考Flume agent端event重复发送(数据暴增不一致)的问题

     

    展开全文
  • 这是Python数据可视化的系列短篇,针对初级和中级用户,将理论和示例代码相结合,使用matplotlib, seaborn, plotly等工具创建不同主题的图表。 本文主题是如何在图表中显示误差。 import os import warnings ...

    前言

    这是Python数据可视化的系列短篇,针对初级和中级用户,将理论和示例代码相结合,使用matplotlib, seaborn, plotly等工具创建不同主题的图表。

    本文主题是如何在图表中显示误差。

    import os
    
    import warnings
    import requests
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from statsmodels.tsa.arima_model import ARIMA
    
    %matplotlib inline
    plt.style.use("fivethirtyeight")
    
    warnings.filterwarnings("ignore")

    PS:如有需要Python学习资料的小伙伴可以加下方的群去找免费管理员领取

     

    可以免费领取源码项目实战视频PDF文件

     

    1. 显示测量误差

    科学测量往往存在误差,准确的报告误差跟报告测量结果同样重要。

    测量误差(也称为观察误差)是测量值和真实值之间的差异,包括随机误差(任何实验中都会自然发生的误差)和系统误差(由影响所有测量的错误校准的仪器引起)。

    举一个例子,假设您正在测量100个学生的体重,有的学生穿较多的衣服,导致重500克,有的学生可能脱水导致轻200克,这些都是测量误差。事实上所有收集的样本都会存在误差,大多数情况下它们不可避免。所以在数据可视化中,有效显示这些错误可以传达更完整的信息。

    在matplotlib中通过调用ax.errorbar()创建误差图(errorbar)。误差图由一个点和穿过这个点的线段组成,点对应测量结果,线段代表测量误差。

    # 设置随机数种子
    np.random.seed(123)
    
    # 观测值的数量
    n_observations = 30
    x = np.arange(n_observations)
    
    # 虚拟测量值
    y = np.sin(x) + np.random.randn(n_observations)
    
    # 测量误差,假设误差服从均匀分布
    errors = np.random.randint(1, 3, n_observations)
    
    # 调用ax.errorbar接口,提供3个数组,x, y, yerr
    # fmt控制点和线段的样式,跟ax.plot的fmt相同
    # color: 控制点的颜色
    # ecolor: 代表误差的线段的颜色
    # elinewidth: 代表误差的线段的大小
    fig, ax = plt.subplots(figsize=(10, 7))
    ax.errorbar(x, y, yerr=errors, fmt="o", color="black",
                ecolor="lightgray", elinewidth=3)

     

    2. 显示预测误差

    在机器学习领域,回归模型和时间序列模型用于预测,模型会同时生成预测误差(所谓置信区间),在可视化预测结果时,通常要求显示预测值和预测区间,这可以通过ax.plot()和ax.fill_between()实现。

    接下来使用一个真实的案例说明,先从蜂鸟数据获取黄金价格,然后用ARIMA(自回归整合移动平均)预测未来30天的价格,可视化预测结果。

    # 从蜂鸟数据下载黄金价格
    params = {
        "symbol": "XAUUSD",  # 现货黄金ID
        "start_date": "2010-01-01",
        "end_date": "2020-08-05",
        "apikey": os.getenv("TROCHIL_API")  # 在蜂鸟数据官网注册获取API密钥
    }
    resp = requests.get("https://api.trochil.cn/v1/forex/history", params)
    data = pd.DataFrame.from_records(resp.json()["data"])
    data["datetime"] = pd.to_datetime(data["datetime"])
    data.set_index("datetime", inplace=True)
    
    # 创建ARMIA模型,预测未来30天价格走势
    model = ARIMA(data.close, order=(1, 1, 1))
    results = model.fit()
    fc, errors, conf = results.forecast(steps=30, alpha=0.05)
    fc_df = pd.DataFrame({
        "forecast": fc,
        "lower": conf[:, 0],
        "upper": conf[:, 1]
    }, index=pd.date_range("2020-08-06", periods=30))
    
    # 可视化预测结果,包括点预测值和预测区间
    # 预测区间包括置信下限和上限,代表真实值可能落入的范围
    # 调用ax.plot显示点预测值,ax.fill_between显示预测区间
    data_since_2020 = data["2020":]
    fig, ax = plt.subplots(figsize=(12, 7))
    data_since_2020.close.plot(ax=ax, label="Historical Prices")
    ax.plot(fc_df.index, fc_df.forecast, label="Forecast Prices")
    ax.fill_between(fc_df.index, fc_df.lower, fc_df.upper, color="gray", alpha=0.3, label="Forecast Interval")
    ax.set_title("Plot Forecast Errors")
    ax.legend(loc="upper left")
    <matplotlib.legend.Legend at 0x7fbfa348d9a0>

     

    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

    作者:蜂鸟数据Trochil

    展开全文
  • 使用来自不同分布的数据进行误差分析、 数据分布匹配时的偏差与方差、处理数据不匹配问题
  • 估计误差和近似误差的区别

    千次阅读 2018-06-14 10:50:23
    近似误差:可以理解为对现有训练集的训练误差。 估计误差:可以理解为对测试集的测试误差。近似误差关注训练集,如果...估计误差关注测试集,估计误差小了说明对未知数据的预测能力好。模型本身最接近最佳模型。...
  • 最小觉察误差(JND)与图像压缩

    万次阅读 2019-01-02 15:26:38
    最小觉察误差(JND, Just Noticeable Distortion)用于表示人眼能察觉的最大图像失真,体现了人眼对图像改变的容忍度。在图像处理领域,JND 可以用来度量人眼对图像中不同区域失真的敏感性。目前已有多个 JND 模型...
  •  观测误差:测量数据与实际数据误差  方法误差:数学模型的精确解与数值方法得到的数值解之间的误差:例如  舍入误差:对数据进行四舍五入后产生的误差 2、减少误差的几种方法  现在,我们一般用计算机...
  • 基于图像的特征检测与匹配不可避免地带有误差。如果直接使用图像特征匹配的结果作为数据关联的结果,往往会带来很大误差,以至于定位系统发散。 2.2.1 固定区域匹配 这种方法假设特征点在前后两帧...
  • 【模式识别】最小平方误差判别 MSE

    万次阅读 多人点赞 2013-06-02 15:36:44
    在线性不可分的情况下,不等式组不可能同时满足。一种直观的想法就是,希望求一个a*使被错分的样本尽可能少。这种方法通过求解线性不等式组来最小化错分样本数目,通常采用搜索算法求解。 为了避免求解不等式组,...
  • 在实际数值计算过程中,由于不可避免地存在和不断产生各种误差,因此计算结果不是绝对精确的。如果误差使得计算结果和实际情况有较大差别或者出现错误的结果,则数值 计算便失去了价值和意义。因此,分析数值计算...
  • 过拟合与数据不平衡

    千次阅读 2017-10-04 17:55:24
    过拟合与数据不平衡 什么是过拟合? 过拟合就是学习器对训练样本数据的学习的过于彻底,将一些训练样本的噪声或者属于全体样本的一般特征也学习了,造成在训练样本上效果表现很好而在测试样本上表现效果非常...
  • 3.2.3 如何解决数据不匹配问题

    千次阅读 2018-05-05 15:03:34
    但有时候我们难以收集到足够的数据,可能一些其他数据要从其他办法来获得,这样就会容易出现不同数据的分布不同的情况。那么我们应该怎么办呢? 假设你在开发一个手机应用,用户会上传他们用手机拍摄的照片,你想...
  • 数据挖掘面试 150 道题(附答案)

    万次阅读 多人点赞 2019-09-21 13:50:38
    1. 某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 2. 以下两种描述分别对应哪两种对分类算法的评价标准...
  • 模型过拟合及模型泛化误差评估

    千次阅读 2018-11-26 11:14:22
    在建立一个分类模型的过程中我们暂时对检验数据集一无所知(也就是暂时得到真正泛化误差),那么此时我们是如何估计泛化误差的? 我们的目录: 目录 一、过拟合产生原因 二、过拟合与多重比较过程 三、泛化...
  • 矩阵计算误差分析(条件数和范数)

    千次阅读 2019-02-02 23:11:35
    误差问题是不可避免的,在大量的数据样本中,如果能去掉部分可能造成误差很大的样本,那么对于应用矩阵得到的结果的可靠性则大大加强。例如有999个员工的月收入为10410^4104元,马云的月收入为109{10^9}109元,现在...
  • 食,水饮,题必须刷 还不会C语言,和我一起打卡! 《光天化日学C语言》 LeetCode 太难?上简单题! 《C语言入门100例》 LeetCode 太简单?大神盘他! 《夜深人静写算法》 前言   所谓活到老,学到老,虽然我...
  • 数值分析:数据插值方法

    万次阅读 多人点赞 2017-03-15 16:53:22
    http://blog.csdn.net/pipisorry/article/details/62227459插值、拟合和逼近的区别据维基百科,科学和工程问题可以通过诸如采样、实验等方法获得若干离散的数据,根据这些数据,我们往往希望得到一个连续的函数(也...
  • VIO标定IMU随机误差:Allan方差法

    千次阅读 2019-07-16 16:59:15
    在IMU采集数据时,会产生两种误差:确定性误差和随机性误差,为获得精确的数据,需要对上述两种误差进行标定。 标定方法 确定性误差和随机误差的成因和标定方法各相同。 确定性误差 确定性误差主要包括bias(偏置)...
  • 数据挖掘报告

    万次阅读 热门讨论 2010-04-10 10:03:00
    研究方向前沿读书报告数据挖掘技术的算法与应用 目录第一章 数据仓库... 51.1 概论... 51.2 数据仓库体系结构... 61.3 数据仓库规划、设计与开发... 71.3.1 确定范围... 71.3.2 环境评估... 71.3.3 分析... 71.3.4 ...
  • 离均差的平方和 由于误差不可控性,因此只由两个数据来评判一组数据是不科学的。所以人们在要求更高的领域不使用极差来评判。其实,离散度就是数据偏离平均值的程度。因此将数据与均值之差(我们叫它离均差)加...
  • 数据挖掘训练题

    千次阅读 2015-12-15 09:28:03
    数据挖掘练习题,单选、多选和判断题三种类型!
  • SVM解释:四、线性不可分的情况

    万次阅读 多人点赞 2018-07-23 08:41:42
    但是我已经强调过多次,线性可分的情况有相当的局限,所以SVM的终极目标还是要解决数据线性不可分的情况。解决这种线性不可分的情况基本的思路有两种: 加入松弛变量和惩罚因子,找到“最好”超平面,这里的...
  • 抽样中误差的相关概念和种类

    千次阅读 2019-12-19 22:34:48
    总结下抽样技术中几个误差: 误差 = 测定值或估计值 - 真值 (测定值或估计值——观察值和样本统计量) ...前者通过调查人员培训、教育、宣传、检查,后者无法避免只能通过仪器改进或样本量增...
  • 课程笔记8--fMRI的数据预处理

    万次阅读 多人点赞 2017-01-09 09:38:39
    尽量减少因为数据采集(Data acquisition)和生理学特性(Physiological)导致的误差 我们想检验一下模型的统计假设,并且尽可能的做一些变换让数据符合这些假设 将不同个体的数据的脑区位置标准化(Standardize th
  • 数值分析(2)-误差

    千次阅读 2019-04-14 10:22:37
    文章目录2 误差 in 数值分析2.1 误差的来源和分类2.2 绝对误差、相对误差和...数学模型,即表示计算的公式或方程,本身就是近似的,就精确,这种情况导致的误差,就叫模型误差。 观测误差 对物理世界中的参...
  • 总结一句:对于标称型数据我们通常用信息熵或者基尼纯度来判定混乱程度,对于数值型问题则用方差作为判断标 准。 出处:http://blog.csdn.net/lingtianyulong/article/details/34522757 决策树是一种简单的...
  • 由于数据源在实际生活中千奇百怪,因此经任何处理就进入数据库的数据很可能违背数据质量三要素的要求。用这样的数据在进行后续的数据挖掘,其可靠性更加堪忧。虽然在数据挖掘中,均有过程用于处理缺失数据或异常值...
  • java关于计算精度误差问题

    千次阅读 2018-09-04 12:05:56
    案例:会员积分字段采用float类型,导致计算会员积分时,7位整数的数据计算结果出现误差。 原因:超出float精度范围,无法精确计算。 float和double的精度是由尾数的位数来决定的。浮点数在内...
  • 数据分析之数据预处理、分析建模、可视化

    万次阅读 多人点赞 2020-08-08 15:03:21
    数据预处理:数据清洗、数据集成、数据规约、数据变换; 数据分析模型:对比分析、漏斗分析、留存分析、A/B测试、用户行为路径分析、用户分群、用户画像分析等; 数据分析方法:描述统计、假设检验、信度分析、相关...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,967
精华内容 20,786
关键字:

不可避免的数据误差