精华内容
下载资源
问答
  • kappa一致性检验

    千次阅读 2019-09-16 06:56:29
    Kappa检测用于测量两次判断的一致性,即两个判断的结果是否相似。 具体如下图(图片取自http://blog.sina.com.cn/s/blog_4aa4593d0100rwjd.html) 表格类似于一个混淆矩阵,第一行第一个数‘4’表示R1和R2都判断为...

    Kappa检测用于测量两次判断的一致性,即两个判断的结果是否相似。

    具体如下图(图片取自http://blog.sina.com.cn/s/blog_4aa4593d0100rwjd.html

    表格类似于一个混淆矩阵,第一行第一个数‘4’表示R1R2都判断为1的个数,

    第一行第二个数表示"R1判断为1R2判断为2"的个数,其他类似。最后的计算方法下图也有表示

    155213_pCCZ_2734535.png

    对于用Kappa值判断一致性的建议参考标准为:
    Kappa =+1,说明两次判断的结果完全一致;
    Kappa =-1,说明两次判断的结果完全不一致;
    Kappa =0,说明两次判断的结果是机遇造成;
    Kappa<0,说明一致程度比机遇造成的还差,两次检查结果很不一致,但在实际应用中无意义;
    Kappa>0,此时说明有意义,Kappa愈大,说明一致性愈好;
    Kappa≥0.75,说明已经取得相当满意的一致程度;
    Kappa<0.4,说明一致程度不够理想;

     

    最后贴段python代码,比较简单,预测类型必须为0~n

    import numpy as np
    class Kappa: 
                      
        def metrics(self,pre1,pre2,classN=2):
            k1=np.zeros([classN,])
            k2=np.zeros([classN,])
            kx=np.zeros([classN,])
            n=np.size(pre1)
            for i in range(n):
                p1=pre1[i]
                p2=pre2[i]
                k1[p1]=k1[p1]+1
                k2[p2]=k2[p2]+1
                if p1==p2:
                    kx[p1]= kx[p1]+1
            
            pe=np.sum(k1*k2)/n/n
            pa=np.sum(kx)/n
            kappa=(pa-pe)/(1-pe)
            
            return kappa

     

    转载于:https://my.oschina.net/weekn/blog/679941

    展开全文
  • SPSS新手教程—kappa一致性检验

    千次阅读 2021-05-27 16:02:06
    IBM SPSS Statistics中的kappa一致性检验一般用于双向有序分类资料,所谓双向有序分类资料其实是一个用于等级评定的二维列表。比如下图中的将一个考生的答案与标准答案进行对比的二维列表。 图1:双向有序分类...

    IBM SPSS Statistics中的kappa一致性检验一般用于双向有序分类资料,所谓双向有序分类资料其实是一个用于等级评定的二维列表。比如下图中的将一个考生的答案与标准答案进行对比的二维列表。

    图1:双向有序分类资料示例

    检验得出的kappa值是有其具体含义的,当kappa值等于“1”时,说明两个结果完全一致(可以理解形象理解为考试成绩为100分);kappa值等于“-1”时说明结果完全不一致;kappa值为“0”时说明结果一致性具有随机性;kappa值在0.75到1之间说明一致性较好;kappa值在0.4到0.75之间说明一致性中等;kappa值在0到0.4说明一致性很差;kappa值小于0说明结果很不一致实际意义很小。接下来我将在SPSS用几个简单的步骤,来演示kappa一致性的检验。

    1、数据展示

    下图是甲乙两位专家对200名肿瘤患者的病理切片的分析评定结果,我将用kappa一致性检验来分析两位专家的评定结果是否一致。

    图2:数据展示

    我们将数据导入到SPSS中,或者在SPSS中创建数据。

    5ba27d6d5cbf2a049e7834cbf40b554

    图3:数据导入

    然后对变量x1和变量x2中的值打上标签,将值“1”、“2”、“3”分别打上“低度分化”、“中度分化”、“高度分化”的标签。

    b3054457760c868e445e846f63cd1fd

    图4:打标签

    2、对人数进行加权

    我们首先点击菜单中的“数据”按钮,接着点击“个案加权”按钮。

    82a52b6e646d5542ada324294aef631

    图5:个案加权的菜单位置

    将人数添加到频率变量中,然后点击确定进行人数加权。

    62e0bb918ab65e8ef02d3b28b5ae553

    图6:个案加权

    3、菜单位置

    kappa一致性检验是分属交叉表下的一个功能,所以我们首先点击菜单中的“分析”按钮,接着点击“描述统计”按钮,最后点击“交叉表”按钮。

    7f759f587bd3d124bb0cceffd990268

    图7:菜单位置

    4、编辑行列

    如图所示,我们将“甲专家”添加到行中,将“乙专家”添加到列中。

    5ee8e7164738106be648baa79da5e4f

    图8:编辑行列

    我们点击图中的“统计”按钮,接着我们选择“kappa”选项。

    2313c10054d1820a1d09ad146d53e20

    图9:选择统计量

    5、结果展示

    从图中可以看到有效百分比为100%,代表所有的个案都被处理了。

    52004e553f1d9263e6db99e08403240

    图10:结果展示

    在下图中,交叉表也被成功建立了。

    b80525d867ecd8e1899b091a52ddd87

    图11:结果展示

    从图中可以看到kappa值是0.471,根据上文中所说kappa值在0.4到0.75的时候一致性中等,表明这两个专家的检验结果的一致性中等。

    b8a411758b013386577f895112384b8

    图12:结果展示

    kappa一致性检验是我们常用的功能,各个领域都能用到,主要在判定某个结果和理想结果是否具有一致性的时候使用。我们需要注意kappa值是可以有负值的,并不是kappa值为0时一致性是最差的。如果想要学习交叉表的其他内容可以去SPSS中文官网阅读相关文档学习。

    展开全文
  • python 一致性检测 最小惊喜原则是设计用户界面时的准则 。 它说,当用户执行某项操作时,程序应执行会使用户感到最少的事情。 出于同样的原因,孩子们喜欢一遍又一遍地读同一本书:给人的安慰就是预测和使这些...

    python 一致性检测

    最小惊喜原则是设计用户界面时的准则 。 它说,当用户执行某项操作时,程序应执行会使用户感到最少的事情。 出于同样的原因,孩子们喜欢一遍又一遍地读同一本书:给人的安慰就是预测和使这些梦想成真的能力。

    Python的灵感来自ABC语言开发的一个关键见解是编程语言是用户界面,需要使用与UI设计人员相同的工具进行设计。 值得庆幸的是,从那时起,更多的语言已经从UI设计中采用了可承受性和人体工程学的概念,即使它们应用得不太严格。

    这将我们带入Python Zen中的下三个原则。

    面对模棱两可的想法,拒绝猜测的诱惑。

    1 +“ 1”是? “ 11”2都是有效的猜测。 这种表达是模棱两可的 :没有任何一件事情可以做,这至少对某些人来说并不奇怪。

    一些语言选择猜测。 在JavaScript中,结果为“ 11” 。 在Perl中,结果为2 。 在C语言中,结果自然是空字符串。 面对歧义,JavaScript,Perl和C都在猜测。

    在Python中,这会引发TypeError :一个非静默的错误。 捕获TypeError是非典型的:通常会终止程序或至少终止当前任务(例如,在大多数Web框架中,它将终止对当前请求的处理)。

    Python拒绝猜测1 +“ 1”的含义。 程序员被迫以明确的意图编写代码: 1 + int(“ 1”) ,将为2 ; 或str(1)+“ 1” ,将是“ 11” ; 或“ 1” [1:] ,这将是一个空字符串。 通过拒绝猜测,Python使程序更具可预测性。

    应该有一种(最好只有一种)明显的方式来做到这一点。

    预测也相反。 给定任务,您可以预测要实现该任务的代码吗? 当然,不可能完美地预测。 毕竟,编程是一项创造性的任务。

    但是,没有理由故意提供多种冗余方式来实现同一目标。 从某种意义上说,某些解决方案“更好”或“更Pythonic”。

    对Python美学的欣赏部分是因为可以就哪种解决方案更好进行健康辩论。 甚至可以不同意并继续编程。 为了和谐起见,不同意甚至是可以的。 但在这一切之下,必须有一种感觉,最终,正确的解决方案将会浮出水面。 我们必须希望,通过商定实现目标的最佳方法,我们最终可以真正和谐地生活。

    尽管起初这种方式可能并不明显(除非您是荷兰人)。

    这是一个重要的警告:首先,通常不清楚什么是完成任务的最佳方法。 观念在不断发展。 Python正在发展。 逐块读取文件的最佳方法可能是等到Python 3.8并使用walrus运算符

    这项逐项读取文件的常见任务在Python已有近30年的历史中并没有“唯一的最佳方式”。

    当我从1998年开始在Python 1.5.2中使用Python时,没有一种最佳的逐行读取文件的方法。 多年来,了解字典是否具有键的最佳方法是使用.haskey ,直到in运算符成为最佳方法。

    仅通过欣赏,有时找到一种(唯一的)实现目标的方法可能需要30年的时间来尝试Python可以继续寻找这些方法的替代方法。 这种历史观点认为,接受30年是可以接受的时间,但对于美国人民来说,这已经存在了200多年了,但这种感觉常常对美国人来说是陌生的。

    根据Python Zen的这一部分,无论是Python的创建者Guido van Rossum还是著名的计算机科学家Edsger W. Dijkstra ,荷兰人都有不同的世界观。 欧洲一定要赞赏时间,这是至关重要的。

    翻译自: https://opensource.com/article/19/12/zen-python-consistency

    python 一致性检测

    展开全文
  • 随着业务规模的扩张,企业系统变得...因此如何持续保障系统的业务稳定性对于企业来说是一个很重要的课题,本文旨在介绍一些常见业务应用场景下的业务数据一致性保障最佳实践。 离线or在线,事前or事后 应对业务数据...

    随着业务规模的扩张,企业系统变得越来越复杂,在这种复杂的分布式系统架构下,难免会出现远程调用失败,消息发送失败,并发 bug 等等问题,这些问题最终会导致系统间的数据不一致,导致用户体验受损,用户利益受损,对平台来说就是产生资损。因此如何持续保障系统的业务稳定性对于企业来说是一个很重要的课题,本文旨在介绍一些常见业务应用场景下的业务数据一致性保障最佳实践。

    离线or在线,事前or事后

    应对业务数据不一致问题的常规操作是,配置定时任务,在每个固定时间点去拉取历史一段时间的数据出来进行比对,判断是否有数据故障出现,比如利用hadoop做一些批处理MapReduce作业,这种离线计算的方式时效性比较差,对于电商系统或者对于实时性要求较高的系统来说,问题发现的越晚损失也就越大,所以我们需要一种在线的校验模式来实时发现数据不一致问题。

    在线的校验模式指的是每出现一笔数据就进行一次比对,这种比对方式还可以分为事前和事后比对。

    • 事前比对是一种业务强耦合的校验方式,我们在业务系统代码中进行类似 AOP 的操作,横插一段校验代码,如果校验发现问题,则阻断这次业务操作,这种模式虽然时效性很高,能够保证每一笔数据的正确性,但是因为和业务耦合的太重,很容易出现一些灾难性的问题,比如校验代码的性能差或者异常处理不正确,会直接导致业务操作受阻,影响正常业务活动。
    • 事后校验严格上来说不能算是实时校验,因为校验的时间点滞后于真实的业务动作发生时间点,这算是一种准实时校验,这种校验的好处在于,可以和业务解耦,不阻断业务的正常进行,还能较为"实时"的发现数据不一致问题,并且在一些特殊场景下(比如异步业务,下面会介绍)只能使用事后校验,缺点也很明显,就是时效性相比于事前校验来说会比较差。

    这里在啰嗦一句,可能读到这里,有些人会问,既然是业务动作发生之后再进行校验,它的意义还有多大呢?的确相比于事前校验来说,他并不能保证每一笔数据都正确,但是在实际操作中,像电商这种场景下,我们进行业务功能迭代,会经过日常环境 -> 预发环境 -> Beta测试 -> 线上环境的流程,尤其是在预发环境和 Beta 测试的情况下,一般会进行一些线上引流或者模拟数据测试,特点是量小,即使发生问题也只是局部不会引起灾难,那在这种场景下,事后校验的意义就显得很大,可以提前验证功能和数据的正确性,又不会对线上造成强耦合的影响;在功能完全上线后,事后校验的作用在于及时发现数据不一致问题,避免问题的进一步扩散。

    综上所述,对于业务数据校验时效性不是那么高的场景下,离线校验是一种比较合适的方式,开发接入成本都较低,对于业务数据校验时效性有一些要求的场景下,事后校验是一种比较适合的方式,对于业务校验时效性要求非常严格,并且能够投入较多资源的情况下,事前校验比较适合。

    数据一致性检测实践案例

    案例一:会员系统

    某店铺会员入会业务,需要结合店铺系统、打标系统、会员系统进行入会退会操作,如下图所示:

    在这个业务场景中,买家在店铺会员页发起入会申请,入会成功对外发送会员入会metaq消息,下游业务系统根据这个metaq消息,为该用户打上一个标签,用户在下单的时候就根据这个标签判断是否有优先购买的权利。既然有入会就有退会,退会同样发起metaq消息给用户进行去标操作。所以不管入会还是退会,业务上要求店铺系统的会员状态(入会还是退会)必须和用户系统的标签状态一致(有或者没有),一旦发现数据不一致,一个已经退会的用户如果还有用户会员标签,该用户就可以购买这个限购商品,这样就会造成商家资损。因此必须有对账业务对数据一致性进行强保证,一旦发现数据不一致,必须要通知相关人员进行数据核对,如有问题则进行数据订正。

    这个案例在对账系统的选择上有如下几个要求:

    1. 实时:必须当天尽快处理。
    2. 可以报警
    3. 必须支持不同领域模型。
    4. 接口调用需要有一定的延迟,以便下游系统处理完所有流程之后再校验。
    5. 由于入会、退会metaq可能会有丢失或者乱序的情况,因此不可以根据该消息进行对账。

    在这个业务场景下,我们可以看到,业务是异步的,会员系统发起入会操作后,并不是立刻就能在用户系统打标的,所以实时的事前校验并不适合这个场景,因为在会员系统发起入会操作的时候在用户系统中还查不到这个打标状态,需要延迟一段时间去查,所以只能用事后校验来做。

    我们在这个场景的做法是:拉取店铺会员数据库的实时binlog日志数据,给到校验系统,校验系统解析日志数据拿到要打标的会员id,并且延时一段时间后去会员系统查询这个会员的入会状态,和日志中的状态进行一致性比对,发现不一致则进行告警。

    案例二:新老库迁移

    当新老系统需要进行更替的时候,经常会涉及到数据迁移,由于数据量非常大,而且不允许停机,所以迁移一定是一个循序渐进的过程,整个过程会分成两个部分,第一个部分是双写,保证新增数据两边同步。第二步是开始做存量数据迁移,通过后台任务慢慢跑。在这个过程中可能会出现部分字段没有同步,更新数据顺序错乱导致数据内容不一致的问题,所以需要对迁移进行数据的一致性检查,及时发现数据问题进行订正或者bug修复。

    由于我们的目的是将数据迁移到新系统,所以数据校验触发条件就是新系统有数据写入,这里可能有人会问如果老系统同步失败呢,那么新系统就不会有数据写入,就触发不了校验。这里就存在校验边界的问题,即我们假设同步系统是一定会同步成功的,如果同步失败的话不允许跳过会一直尝试重试同步,所以这里如果发生同步失败,同步会暂停并且打印出同步错误日志,这个就不是校验系统的问题了,我们会通过同步的进度或者同步日志来观察到这个现象。

    所以我们在这个场景的做法是:接收新库的数据库变更binlog日志数据,解析日志内容,通过这条数据id去查询旧库的对应数据,进行数据内容的比对。由于双写的存在,一条数据可能会变更多次,这里就要求我们的校验必须是较为实时的进行,否则就会出现拿到的日志数据内容是旧的(这条数据又发生了更新),导致查询老库的数据出现不一致的问题,其实算是一种误报。

    推荐工具&产品

    • AHAS —— 阿里云应用高可用服务,提供企业级的流量控制、故障评测等高可用能力
    • APDS —— 阿里云应用发现服务,支持自动资产盘点,帮助企业实现快速上云搬站

    作者信息:高超,花名龙多,高可用架构技术专家,集团业务检验平台负责人,参与了4次双十一大促系统保障工作,多年业务数据对账和资损防控相关经验。

     

    本文作者:高超

    原文链接

    本文为云栖社区原创内容,未经允许不得转载。

    展开全文
  • 分布式系统的一致性问题(汇总)

    万次阅读 多人点赞 2019-09-02 15:32:19
    保证分布式系统数据一致性的6种方案 问题的起源 在电商等业务中,系统一般由多个独立的服务组成,如何解决分布式调用时候数据的一致性? 具体业务场景如下,比如一个业务操作,如果同时调用服务 A、B、C,需要...
  • 一致性Hash(Consistent Hashing)原理剖析及Java实现

    万次阅读 多人点赞 2018-08-10 18:04:09
    一、一致性Hash(Consistent Hashing)原理剖析 二、一致性hash算法的Java实现 一、一致性Hash(Consistent Hashing)原理剖析 引入 一致性哈希算法是分布式系统中常用的算法。一致性哈希算法解决了普通余数Hash算法...
  • 颜色一致性

    千次阅读 2018-04-04 14:17:15
    photo-consistency, 这是立体重建过程中的一个术语,看到部分参考资料翻译为颜色一致性项。那么,(1)什么是颜色一致性项 (2)它是如何计算的?这是怎么来的? (3)它代表了什么意义?(1)什么是颜色一致性项 ...
  • 一致性算法分析

    万次阅读 2018-01-18 14:25:47
    目的 :一致性算法的出现是为了解决一致性问题,一致性问题是指对于一组服务器(集群),给定一组操作,需要使用一种协议使得它们的结果最终达成一致,看起来好像是一台服务器一样。 作用 :一致性算法在构建可信赖...
  • 浅谈事务与一致性问题 原文地址 https://www.jianshu.com/p/f0a1b00a6002 在高并发场景下,分布式储存和处理已经是常用手段。但分布式的结构势必会带来“不一致”的麻烦问题,而事务正是解决这一问题而引入的一种...
  • 一致性检验、修正和权值排序作为一个整体处理,属于全局分析方法.采用遗传算法优化建立的一致性指标系数函数,引入小生境技术以保证在待优化参数较多时仍能找到最优解.分析...
  • 并发程序正确地执行,必须要保证原子、可见以及有序。只要有一个没有被保证,就有可能会导致程序运行不正确。 原子:一个操作或多个操作要么全部执行完成且执行过程不被中断,要么就不执行。 可见:当多...
  • PCL中采样一致性算法

    千次阅读 2021-10-08 02:14:01
    PCL中采样一致性算法1 随机采样一致性相关概念及算法1.1 RANSAC随机采样一致性算法简介   在计算机视觉领域广泛应用各种不同的采样一致性参数估计算法,用于排除错误的样本,样本不同,对应的应用则不同,例如别除...
  • 本文分享了MySQL复制数据一致性校验和修复的详细步骤及其自动化实现思路和方法,对MySQL复制架构运维中该项工作的实施及其自动化具有较好的借鉴意义
  • 分布式一致性协议Raft & Paxos 简单 v.s. 完美
  • 三种妙法搞定冗余表数据一致性

    千次阅读 2016-05-30 22:36:52
    假设正常情况下,msg1和msg2的接收时间应该在3s以内,如果检测服务在收到msg1后没有收到msg2,就尝试检测数据的一致性,不一致时进行补偿修复。 优点: 效率高,每个数据只扫一次 实时性高,消息的通知很...
  • 一致性协议总览

    千次阅读 2018-03-23 20:36:09
    一致性模型 一致性模型本质上是进程与数据存储的约定,主要是用于解决分布式系统中数据复制时保持一致性的问题 一致性协议 一致性模型就像是接口,而一致性协议就像是接口的具体实现
  • 细说分布式下的数据一致性

    万次阅读 2018-08-29 11:21:47
    细说分布式下的数据一致性 名词解释 强一致性 最终一致性 XA事物 JDBC事物、JTA事物 TCC 产生场景 单一数据库、单一系统无法支撑业务和数据的增长而出现拆分化的演进,数据存储于不同的事物管理单元但又要...
  • Redis集群:一致性哈希

    千次阅读 2019-01-04 17:32:44
    一般的,在一致性哈希算法中,如果一台服务器不可用,则受影响的数据仅仅是此服务器到其环空间中前一台服务器(即顺着逆时针方向行走遇到的第一台服务器)之间数据,其它不会受到影响。 下面考虑另外一种情况,...
  • 数据库中原子性,隔离性,一致性如何实现
  • CPU缓存一致性协议MESI

    千次阅读 2018-09-05 21:46:09
    缓存的一致性消息传递是要时间的,这就使其切换时会产生延迟。当一个缓存被切换状态时其他缓存收到消息完成各自的切换并且发出回应消息这么一长串的时间中CPU都会等待所有缓存响应完成。可能出现的阻塞都会导致各种...
  • KAPPA一致性

    千次阅读 2017-03-14 10:05:07
    Kappa检测用于测量两次判断的一致性,即两个判断的结果是否相似。 具体如下图(图片取自http://blog.sina.com.cn/s/blog_4aa4593d0100rwjd.html) 表格类似于一个混淆矩阵,第一行第一个数‘4’表示R1和R2都判断为...
  • 应用程序编程接口(application programming ...根据实验结果,该方法的检测结果能达到71.5%的准确率以及85.9%的召回率,能够较为准确地识别API文档对程序异常描述不一致的问题,对API文档的编写和维护具有指导性意义
  • 分布式系统一致性研究

    千次阅读 2014-09-22 19:50:23
    本文希望对分布式系统的一致性问题做一个综合性介绍,奈何笔轻心重,语无伦次。感谢eric的敦促,感谢shuai的感召,我尝试总结一下。这个草稿堆积了一段时间了,大家提点意见,我再更新。谢谢!
  • 一致性: 1.强一致性 这种一致性级别是最符合用户直觉的,它要求系统写入什么,读出来的也会是什么,用户体验好,但实现起来往往对系统的性能影响大 2.弱一致性 这种一致性级别约束了系统在写入成功后,不承诺立即...
  • 《Paxos到Zookeeper 分布式一致性原理与实践》从分布式一致性的理论出发,向读者简要介绍几种典型的分布式一致性协议,以及解决分布式一致性问题的思路,其中重点讲解了Paxos和ZAB协议。同时,本书深入介绍了分布式...
  • 本文是秒杀系统的第四篇,我们来讨论秒杀系统中缓存热点数据的问题,进一步延伸到数据库和缓存的双写一致性问题,并且给出了实现代码。 前文回顾和文章规划 零基础上手秒杀系统(一):防止超卖 零基础上手秒杀系统...
  • Raft 一致性算法论文

    万次阅读 2019-05-17 09:52:13
    本篇博客为著名的 RAFT 一致性算法论文的中文翻译,论文名为《In search of an Understandable Consensus Algorithm (Extended Version)》(寻找一种易于理解的一致性算法)。 Raft 是一种用来管理日志复制的一致性...
  • 怎么保持缓存与数据库一致性

    千次阅读 2019-02-26 07:59:28
    一、不一致原因分析 将不一致分为三种情况: 1. 数据库有数据,缓存没有数据; 2. 数据库有数据,缓存也有数据,数据不相等; 3. 数据库没有数据,缓存有数据。 在讨论这三种情况之前,先说明一下我使用缓存的策略...
  • 多转录因子组合调控与其表达一致性研究,徐孟昂,张丽杰,转录因子组合调控机制对基因功能研究是功能基因组学中十分有意义的工作,DNA基因芯片检测技术可同时检测成千上万个基因表达量,为
  • 如何理解数据库事务中的一致性的概念? 数据库事务,4个属性,ACID,C就是Consistency,一致性,但是教科书式的定义说明,让人有点不清楚。谁能摆事实,讲道理,解释一下何为事务一致… 显示全部 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 120,446
精华内容 48,178
关键字:

一致性检验的意义