『壹』 數據質量的評價指標有哪些
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)。
保證數據的完整性:
用約束而非商務規則強制數據完整性
如果你按照商務規則來處理需求,那麼你應當檢查商務層次/用戶界面:如果商務規則以後發生變化,那麼只需要進行更新即可。
假如需求源於維護數據完整性的需要,那麼在資料庫層面上需要施加限制條件。
如果你在數據層確實採用了約束,你要保證有辦法把更新不能通過約束檢查的原因採用用戶理解的語言通知用戶界面。除非你的欄位命名很冗長,否則欄位名本身還不夠。 — 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. 使用查找
控制數據完整性的最佳方式就是限制用戶的選擇。只要有可能都應該提供給用戶一個清晰的價值列表供其選擇。這樣將減少鍵入代碼的錯誤和誤解同時提供數據的一致性。某些公共數據特別適合查找:國家代碼、狀態代碼等