导航:首页 > 数据分析 > 数据精确性包括哪些指标

数据精确性包括哪些指标

发布时间:2023-08-07 08:07:07

『壹』 数据质量的评价指标有哪些

1、对于高速数据,主要看眼形图。
2、对于普通信号,主要看失真度、延迟时间、上升时间、下降时间、超调量、稳定性等。

数据是组织最具价值的资产之一。企业的数据质量与业务绩效之间存在着直接联系,高质量的数据可以使公司保持竞争力并在经济动荡时期立于不败之地。有了普遍深入的数据质量,企业在任何时候都可以信任满足所有需求的所有数据。

『贰』 数据采集与分析的指标有哪些

讲解几个数据分析的常用指标

增长研究社
08-04 · 优质科技领域创作者
评价指标是评判数据表现的衡量标准,它是数据分析中非常重要的部分,也是产品经理必须掌握的重点内容。不同的数分任务采用不同的评价指标,对于同一种任务在不同场景下也会采用不同的评价指标。

例如在检测垃圾邮件这个场景中,这是一个典型的二分类问题,所以可以用精确率和AUC曲线这两个指标判断模型的效果;在人脸识别场景中,使用误识率、拒识率和ROC曲线这三个指标评判模型的效果。

不同指标的着重点不一样,一个指标在不同场景下适用性可能不一样,产品经理需要学习不同指标的特性,在项目中根据实际需要选择不同的评价指标。下文中我们重点讲解一些产品经理常用的评价指标。

01 混淆矩阵

混淆矩阵(Confusion Matrix)是评价模型精度的一种标准格式,用一个N行N列的矩阵形式来表示。矩阵每一列代表预测值,每一行代表实际值。

从混淆矩阵的名字不难看出来,它的作用是表明多个类别之间是否有混淆,也就是模型到底判断对了多少个结果,有多少个结果判断错了。同时混淆矩阵能够帮助我们理解准确率、精确率和召回率的区别。

面对一个二分类问题时,通常我们会将结果表示为正类与负类,两者可以随意指定。在上述区分猫狗图片的例子中,我们假定猫为正类、狗为负类。那么在实际进行预测的时候就会出现四种情况,如下图所示:

混淆矩阵

如果这张图片是猫,机器预测出来的结果也是猫,这种情况称为真正类(True Positive,以下简称TP);

如果这张图片是狗,机器预测出来的结果也是狗,这种情况称为真负类(True Negative,以下简称TN);

如果这张图片是猫,机器预测出来的结果是狗,这种情况称为假负类(False Negative,以下简称FN);

如果这张图片是狗,机器预测的结果是猫,则为假正类(False Positive,以下简称FP)。

02 准确率

准确率(Accuracy)是指预测正确的样本占总样本的比例,即模型找到的真正类与真负类与整体预测样本的比例。用公式表示为:

Accuracy=(TP+TN)/(TP+TN+FP+FN)
准确率的取值范围为[0,1],一般情况下取值越大,代表模型预测能力越好。

假设上述猫狗图片分类的例子中,猫狗图片各有500张。最后模型预测的结果中真正类有318个,真负类有415个,假正类有75个,假负类有182个。根据准确率的定义可以算出来目前模型的准确率为:(318+415)/(1000)=0.73。

准确率是评价模型效果最通用的指标之一,描述模型找到“真”类别的能力。也就是说模型准确识别出猫和狗的概率为0.73。但是在使用的时候有两点需要我们注意。首先是准确率没有针对不同类别进行区分,最后求得的准确率对每个类别而言是平等对待的,这种评价方式在很多场景下是有欠缺的。

在本例中,虽然可以看到模型的整体准确率是73.30%,但是从结果中明显可以看出来,模型对于猫的识别效果远不如对狗的识别效果。如果我们模型的目的是为了把猫的图片挑出来,那么这个准确率就有些虚高。

在实际的病患诊断中,计算机诊断出某患者患有癌症,实际上却未患癌症与计算机诊断出某患者未患有癌症,而实际上却患有癌症这两种情况的重要性不一样,不能一概而论。我们需要明确后续是降低误诊率还是提高确诊率,才能让后续模型优化更有针对性。

另外在正负样本极不平衡的情况下,准确率这个指标存在很大的缺陷。例如在银行的全量客户中,要寻找适合推荐信托产品的超高净值客户是非常难的。因为这部分人群要求存款较多、收入较高,比较稀少,往往只有万分之一的概率。

如果一个预测客户适不适合信托产品的模型用准确率去评判,哪怕模型把全部客户预测成负类,即全部都是不适合的情况,那么这个模型的精度也有 99% 以上。

但这个指标就失去了原有的意义,因为无法找到任何高净值的人群。所以我们一再强调,没有万能的指标,根据场景选择合适的指标非常重要。

03 精确率与召回率

精确率(Precision)和召回率(Recall)是一对好兄弟,虽然是两个不同的评价指标,但它们互相影响,通常一起出现。在很多书上又把精确率称为查准率,把召回率称为查全率。

召回率是针对原始样本而言的指标,它表示原始样本中的正例有多少被预测正确。

原始样本中的正例有两种情况,一种是把原来的正类预测成正类(TP),另一种就是把原来的正类预测为负类(FN),这两种情况组成了原始样本所有的正例。计算公式为:

Recall=TP/(TP+FN)
上述模型中识别猫类图片的召回率为:

318/(318+182)=0.63
从这个角度可以看出来总共500张猫的图片,模型只找对了318张,相比准确率而言,召回率更真实地反应了模型的效果。

而精确率是针对预测结果而言的指标,它表示预测为正类的样本中有多少是对的。预测结果为正例有两种情况,一种就是把正类预测为正类(TP),另一种就是把负类预测为正类(FP)。所以精确率的计算公式为:

Precision=TP/(TP+FP)
即上述模型中识别猫类图片的精确率为:

318/(318+75)=0.81
从这个指标可以看出来模型总共把393张图片预测为猫,其中只有318张图片预测正确。所以模型可能存在欠拟合的情况,将部分狗的照片判断成猫,判断为正类的条件太宽松。下一步优化的时候可以选择适当降低条件以此提高模型效果。如下图所示可以看出精确率与召回率的区别:

精确率与召回率

在理想情况下,我们希望精确率和召回率两者都越高越好。

然而事实上这两者在很多情况下是互相矛盾的。当召回率变高时意味着需要尽可能找到原始样本的正例,因此模型覆盖的数量会变多,模型就更高的几率犯错,将原本不属于该分类的样本也加进来,这就导致精确率下降。

如果我们希望模型尽可能多得找出猫的图片,我们会想办法提高召回率;如果我们希望模型找到的图片少一点但找出来的都是猫的图片,我们会想办法提高精确率。

有两个很典型的场景可以说明这两个指标实际运用的区别,一个是对于地震的预测,我们希望尽可能预测到所有的地震,哪怕这些预测到的地震中只有少数真正发生了地震,在这个时候我们就可以牺牲精确率。

宁愿发出100次警报,但是把10次真实的地震都预测对了,也不希望预测了10次但是只有8次真实的地震被预测出来了,因为只要有1次地震没被发现都会造成巨大的损失。因此这是一个“宁可抓错,不可放过”的场景。

还有一种是垃圾邮件分类的场景,我们希望模型能够尽可能找到所有垃圾邮件,但是我们更不希望把自己正常的邮件被分到垃圾邮件中,哪怕是一封正常的邮件,这会对用户造成很严重的后果。对于少数没有被识别出来的垃圾邮件,其实用户是可以容忍的。

这时候我们宁可少分类成垃圾邮件,但必须确保分的都是对的,这就是一个“宁可放过,不可抓错”的场景。因此在不同的场合中,需要产品经理根据实际情况,自己判断希望是精确率比较高或是召回率比较高。

另外精确率和准确率是比较容易混淆的两个评估指标,两者的核心区别在于:精确率是一个二分类指标,只适用于二分类任务,而准确率能应用于多分类任务。

04 ROC曲线

在逻辑回归的分类模型里,对于正负例的界定,通常会设一个阈值。大于阈值的样本判定为正类,小于阈值的样本为负类。如果我们减小这个阈值,会让更多的样本被识别为正类,从而提高了正类的识别率,但同时也会使得更多的负类被错误识别为正类。

直接调整阈值可以提升或降低模型的精确率和召回率,也就是说使用精确率和召回率这对指标进行评价时会使得模型多了“阈值”这样一个超参数,并且这个超参数会直接影响模型的泛化能力。在数学上正好存在ROC曲线能够帮助我们形象化地展示这个变化过程。

ROC曲线是一个画在二维平面上的曲线,平面的横坐标是假正类率(FalsePositive Rate,简称FPR),计算公式为:

FPR=FP/(FP+TN)
纵坐标是真正类率(True Positive Rate,简称TPR),计算公式为:

TPR=TP/(TP+FN)
对于一个分类器而言,每一个阈值下都会有一个FPR和TPR,这个分类器就可以映射成ROC平面上的一个点。当我们调整这个分类器分类时使用的阈值,就可以得到一个经过(0,0),(1, 1)的曲线,这条曲线就是这个分类器的ROC曲线,如下图所示。

ROC曲线

从图中可以看到,所有算法的ROC曲线都在y=x这条线的上方,因为y=x表示了随机的猜测的概率。所有二分类问题随便猜正确或不正确都是50%的准确率。

一般情况下不存在比随机猜测的准确率更糟糕的算法,因为我们总是可以将错误率转换为正确率。如果一个分类器的准确率是40%,那么将两类的标签互换,准确率就变为了60%。

从图中可以看出来,最理想的分类器是到达(0,1)点的折线,代表模型的准确率达到100%,但是这种情况在现实中是不存在的。如果我们说一个分类器A比分类器B好,实际上我们指的是A的ROC曲线能够完全覆盖B的ROC曲线。如果有交点,只能说明A在某个场合优于B,如下图所示。

分类器A与分类器B的ROC曲线

ROC曲线通常搭配着它对应的比率图一起使用,我们继续用猫狗图片分类的例子说明这两个图怎么看。原本我们猫狗的图片各有500张,如所示图形的X轴代表预测的概率值,Y轴代表观察的数量。

假设我们用一个新的分类器对图片进行分类,分类结果用黑色线代表狗图片的分布,用灰色代表猫图片的分布。模型给出的分值越高代表模型判断这张图片是猫的把握越大,反之模型的给出的分值越低代表模型判断这张图片不是猫的把握越大,也就是说这张图片更有可能是狗。

从下图中可以看出来这个分类器的分类效果还是挺好的,基本上基本把两个物群的分布分开,ROC曲线也非常靠近(0,1)这个点。

某分类器下的ROC曲线

如上图所示,如果将阈值设为0.3,左边划线部分的面积代表模型判断为狗的图片数量有300张左右,并且从图中可以看出来这300张图片全部分类正确。

如果将阈值设为0.5,则左边划线部分的面积代表模型判断为狗的图片有530张左右,从图中重叠部分可以看出来大约有40个分类结果是包含错误分类的,这些错误分类包括实际是狗的图片被分成猫的情况以及实际是猫的图片被分类成狗的情况。

0.3阈值与0.5阈值下的分类结果

这时候我们用另外一个分类器再进行分类,结果如图3-16所示。可以看到整个分类结果向右偏移,同时模型的效果变差,因为两个分类结果重叠的部分变大,无论我们把阈值设在哪里都会比上一个分类器产生更多的错误分类。

假如这时我们采用“宁可抓错,不可放过”的原则把阈值设置为0.8,则右边划线部分只有200个左右不会被分类为狗的图片,其余800个结果全部会被判定为狗的图片,尽管这里面有350个分类结果是错误的结果。

新的分类器下的ROC曲线

从上述例子中看出来,ROC曲线可以帮助我们从图像的角度分辨两个分类结果的分布情况以及选择模型合适的阈值。因此也是很多产品经理比较喜爱的指标之一。

这时很多读者可能会有疑问,既然已经有那么多评价标准,为什么还要使用ROC呢?

原因在于ROC曲线有个很好的特性:当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现样本类不平衡,即正负样本比例差距较大,而且测试数据中的正负样本也可能随着时间变化,使用ROC曲线不管是数据集怎么变换,都有直观的展示效果。

05 AUC值

ROC曲线一定程度上可以反映分类器的分类效果,但始终是以图像的形式,不能告诉我们直接的结果。我们希望有一个指标,这个指标越大代表模型的效果越好,越小代表模型的效果越差。于是引入了AUC值(Area Under Curve)的概念。

AUC是数据分析中最常用的模型评价指标之一,实际上AUC代表的含义就是ROC曲线下的面积,如下图所示,它直观地反映了ROC曲线表达的分类能力。AUC值通常大于0.5小于1,AUC(面积)越大的分类器,性能越好。

AUC值的图形展示

AUC值的定义是:从所有正类样本中随机选取一个样本,再从所有负类样本中随机选取一个样本,然后分类器对这两个随机样本进行预测,把正类样本预测为正类的概率为p1,把负类样本预测为正类的概率为p0,p1>p0的概率就等于AUC值。

即AUC值是指随机给定一个正样本和一个负样本,分类器输出该正样本为正的概率值比分类器输出该负样本为正的那个概率值要大的可能性,AUC值越高代表模型的排序能力越强。理论上,如果模型把所有正样本排在负样本之前,此时AUC的取值为1,代表模型完全分类正确,但这种情况在实际中不可能出现。

总结AUC值的四种取值结果有:

AUC=1时,代表采用这个预测模型,不管设定什么阈值都能得出完美预测,模型能够将所有的正样本都排在负样本前面。但是在现实中不存在完美的分类器。

0.5<AUC<1时,代表模型的效果比随机猜测的准确率高,也就是说模型能够将大部分的正样本排在负样本前面,模型有一定的预测价值。

AUC=0.5时,代表模型的预测效果与随机猜测一样,只有50%的准确率。也就是说模型完全不能区分哪些是正样本哪些是负样本,没有预测价值。

AUC<0.5时,代表模型的预测效果比随机猜测还差;但只要将样本正负例互换,结果就能优于随机猜测。

『叁』 数据怎么最精准准

随着大数据逐渐开始落地应用,大数据技术的各种指标也逐渐开始引起更多的关注,尤其是对于传统行业来说,如何有效利用大数据技术来辅助创新和提升运营效率也是必须要思考的问题。

在实际的生产环境下,要想有效利用大数据首先要对大数据技术的各项技术指标有一个整体的认知能力,其中就涉及到如何来界定准、细、全、稳和快,这些指标对于大数据实现数据价值化也有比较直接的意义。

所谓的“准”在大数据中涉及到多个元素,涉及到数据的关联性描述、数据纬度、语义分析、算法设计等多个内容。简单的说,数据量越大、数据纬度越高、问题描述越清晰则准确率也会更高,当然大数据是否“准”与算法设计也有非常直接的关系。

“细”和“全”分别代表大数据的深度和广度,“细”主要体现在对数据挖掘的深度上能否满足应用的需求,能否通过数据挖掘发现新的价值,深度学习目前在“细”的方面正在不断向前推进,“细”对于算力的要求是比较高的。要想做到“全”,首先应该重点从数据采集入手,而采集数据与物联网建设也有比较直接的关系。

“稳”和“快”是衡量大数据可用性的重要指标,“稳”不仅代表稳定的系统运行能力,更代表了结果的一致性表现,而“快”的定义对于整个系统的运行效率有较为直接的影响。要想做到稳,首先要做到不同类型数据的不同处理方式,而要想做到快则涉及到计算方式,比如在大数据平台的采用方面,Spark在很多情况下要明显快于Hadoop。

最后,大数据系统能否实现准、细、全、稳和快,与多方面因素都有关系,判断的具体方式除了采用数据集进行验证之外,另一个办法就是进行落地应用实践,这个过程也能够不断完善大数据平台的设计。

『肆』 如何确保数据,信息的准确性,完整性,可靠性,及时性,安全性和保密性

数据完整性(Data Integrity)是

指数据的精确性(Accuracy) 和可靠性(Reliability)。它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。数据完整性分为四类:实体完整性(Entity Integrity)、域完整

性(Domain Integrity)、参照完整性(Referential Integrity)、用户定义的完整性(User-definedIntegrity)。


保证数据的完整性:

  1. 用约束而非商务规则强制数据完整性

如果你按照商务规则来处理需求,那么你应当检查商务层次/用户界面:如果商务规则以后发生变化,那么只需要进行更新即可。


假如需求源于维护数据完整性的需要,那么在数据库层面上需要施加限制条件。


如果你在数据层确实采用了约束,你要保证有办法把更新不能通过约束检查的原因采用用户理解的语言通知用户界面。除非你的字段命名很冗长,否则字段名本身还不够。 — Lamont Adams


只要有可能,请采用数据库系统实现数据的完整性。这不但包括通过标准化实现的完整性而且还包括数据的功能性。在写数据的时候还可以增加触发器来保证数据的正确性。不要依赖于商务层保证数据完整性;它不能保证表之间(外键)的完整性所以不能强加于其他完整性规则之上。


— Peter Ritchie


2. 分布式数据系统


对分布式系统而言,在你决定是否在各个站点复制所有数据还是把数据保存在一个地方之前应该估计一下未来5 年或者10 年的数据量。当你把数据传送到其他站点的时候,最好在数据库字段中设置一些标记。在目的站点收到你的数据之后更新你的标记。为了进行这种数据传输,请写下你自己的批处理或者调度程序以特定时间间隔运行而不要让用户在每天的工作后传输数据。本地拷贝你的维护数据,比如计算常数和利息率等,设置版本号保证数据在每个站点都完全一致。


— Suhair TechRepublic


3. 强制指示完整性


没有好办法能在有害数据进入数据库之后消除它,所以你应该在它进入数据库之前将其剔除。激活数据库系统的指示完整性特性。这样可以保持数据的清洁而能迫使开发人员投入更多的时间处理错误条件。


— kol


4. 关系


如果两个实体之间存在多对一关系,而且还有可能转化为多对多关系,那么你最好一开始就设置成多对多关系。从现有的多对一关系转变为多对多关系比一开始就是多对多关系要难得多。


— CS Data Architect


5. 采用视图


为了在你的数据库和你的应用程序代码之间提供另一层抽象,你可以为你的应用程序建立专门的视图而不必非要应用程序直接访问数据表。这样做还等于在处理数据库变更时给你提供了更多的自由。


— Gay Howe


6. 给数据保有和恢复制定计划


考虑数据保有策略并包含在设计过程中,预先设计你的数据恢复过程。采用可以发布给用户/开发人员的数据字典实现方便的数据识别同时保证对数据源文档化。编写在线更新来“更新查询”供以后万一数据丢失可以重新处理更新。


— kol


7. 用存储过程让系统做重活


解决了许多麻烦来产生一个具有高度完整性的数据库解决方案之后,我所在的团队决定封装一些关联表的功能组,提供一整套常规的存储过程来访问各组以便加快速度和简化客户程序代码的开发。在此期间,我们发现3GL 编码器设置了所有可能的错误条件,比如以下所示:


SELECT Cnt = COUNT (*)


FROM [<Table>]


WHERE [<primary key column>] = <new value>


IF Cnt = 0


BEGIN


INSERT INTO [<Table>]


( [< primary key column>] )


VALUES ( <New value> )



ELSE


BEGIN


<indicate plication error>



而一个非3GL 编码器是这样做的:


INSERT INTO [<Table>]


( [< primary key column>] )


VALUES


( <New value> )


IF @@ERROR = 2627 -- Literal error code for Primary Key Constraint


BEGIN


<indicate plication error>



第2 个程序简单多了,而且事实上,利用了我们给数据库的功能。虽然我个人不喜欢使用嵌入文字(2627)。但是那样可以很方便地用一点预先处理来代替。数据库不只是一个存放数据的地方,它也是简化编码之地。


— a-smith


8. 使用查找


控制数据完整性的最佳方式就是限制用户的选择。只要有可能都应该提供给用户一个清晰的价值列表供其选择。这样将减少键入代码的错误和误解同时提供数据的一致性。某些公共数据特别适合查找:国家代码、状态代码等

阅读全文

与数据精确性包括哪些指标相关的资料

热点内容
怎样将扫描文件插入word文件中 浏览:347
iphone的序列号可以作假吗 浏览:217
qq空间权限漏洞2017 浏览:878
win7共享权限工具 浏览:895
怎么关闭浏览器pdf文件在哪里 浏览:330
微信号和密码都忘了 浏览:689
文件主文件名是什么 浏览:596
慈溪市大数据发展中心在哪里 浏览:350
明华二代u盾驱动程序 浏览:478
axis2java2wsdl命令 浏览:528
怎么创建图标文件 浏览:301
jsp页面截取字符串 浏览:668
压缩文件传电脑打不开 浏览:34
如何弄个自己的app 浏览:361
如何在银行app中改密码 浏览:316
什么app拍视频又瘦又高 浏览:979
编程语言foo是什么意思 浏览:826
如何不用APP连接斐讯手环 浏览:698
王菲版本的无地自容 浏览:489
编程如何调用tkinter 浏览:512

友情链接