Ⅰ 數據採集與分析的指標有哪些
講解幾個數據分析的常用指標
增長研究社
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時,代表模型的預測效果比隨機猜測還差;但只要將樣本正負例互換,結果就能優於隨機猜測。
Ⅱ 數據分析指標有那些
有下面幾個指標:
1. 常規數據指標的監測,不在話下。如用戶量,新用戶量,UGC量(社交產品),銷量,付費量,推廣期間的各種數據等等。這些是最基礎也是最基本,同時也是boss們最關注的指標。你接手這項工作的時候第一任務就是把這些數據梳理好。
2. 渠道分析,或者說流量分析。對於一個在上升期得APP來說,你們會花資源去引流量、去別的渠道拉用戶。 這時候就需要監測各個渠道的好壞,哪個效果好,哪個單價便宜,這都是需要渠道數據監測來完成。當然,你還需要跟蹤監測不同渠道用戶的後續表現,給每個渠道的用戶進行打分,讓BOSS知道哪個渠道值得投,哪個渠道是垃圾。 同時也可以監測iphone和Android用戶的質量區別,一般來說,iphone用戶質量要略高於android用戶。當然,有多餘精力的話還可以監測不同機型之間用戶的表現區別。 總之就是在不同的維度上監測不同用戶的表現。
3. 用戶的核心轉化率。想想你的APP的核心功能是什麼,然後去監測這個核心功能的轉化率。在游戲APP里可能叫付費率,在電商APP里可能叫購買率。不同的行業都有相應的不同轉化率,你可以將自己的產品和行業平均進行對比,看看自己的產品在行業中所處的地位。同時,通過長期的監測,你還可以更具這項數據評判APP不同版本的好壞。
4. 用戶使用時長的監測。 一方面,這是一個監測用戶活躍度的非常好的指標。用戶使用時間長就意味這活躍度高,反之亦然。另一方面,想一想你的APP在設計的時候,當初預計一個正常的用戶每天會用多少時間,上線後用戶真正用的時間是否和你的預計相同? 如果這裡面有很大的偏差,就說明用戶對APP的認知和你當時設想是有不同的。 這個時候你就需要想想如何來調整你的產品,去迎合用戶的認知。(這里說一個題外話,個人認為在對產品做修改的時候一定是想辦法去迎合用戶,而不是想辦法改變用戶讓用戶去適應產品。這里以微博作為例子,用戶一直把微博看做是一款傳媒產品,一款信息交流工具。而微博一直想把它打造成一個綜合社交平台,推出了微博會員,用戶推薦,各種私信評論規則等,後台事實證明這一切都沒有改變用戶對微博的認知,微博所作的一切都是無效的。所以當你苦惱於為什麼用戶沒有按照我的設想去用產品的時候,一定要想著我該怎樣變才能迎合用戶的需求,而不是去想我該怎樣變才能讓用戶認可產品的設計?)
5. 用戶流失情況。 一方面需要監測用戶的流失率,比如新用戶進來後,第一、三、七、三十天還在使用產品的有多少人。流失率的變化可以直觀的反應APP再朝好的方向發展還是不好的方向發展。行業中也有一些平均水平指標,你可以參考這些指標評判自己APP的好壞。另一方面需要找到用戶流失的地方,看看用戶在哪些地方流失了,然後有的放矢,進行相應的改動。如果有能力的話,建模將用戶流失的各種情況都刻畫出來,這樣在產品的後續改動中就更加游刃有餘了。
6. 活躍用戶動態。密切關注APP活躍用戶的動態,傾聽他們的聲音。一旦發現異常立馬組織人員商討對策。活躍用戶(或者說核心用戶)是APP最寶貴的資源,關注他們的一舉一動,這個重要性不需要多說了吧.
7. 用戶特徵描述。這點和指標關系不大,有點建模的意思了。 將用戶的各個指標特徵進行描述,越詳細越好。如性別,年齡,地域,手機型號,網路型號,職業收入,興趣愛好等等。這些數據平時沒什麼用,但對於產品人員來說,有時候會給他們很大的靈感。如果可能的話,還可以分以下維度:如活躍用戶的特徵是什麼樣的,較沉默的用戶的特徵是怎樣的,流失用戶的特徵是怎樣的。
8. 用戶生命周期的監測。這個是專門針對那些社交、游戲類的APP來說的。當你的APP上線一段時間後(6-12個月),你可以回頭看看一個正常的用戶,完整的體驗你的APP的流程是怎樣的,大概需要多少時間。根據這個數據再結合一些其它數據可以大致的估算下你的產品能夠到怎樣的規模,讓你的BOSS們知道這款產品最終能發展成什麼樣。 當然這個很難,產品的發展受到太多因素的影響,光靠你一個數據分析師來預測顯然是不那麼靠譜的。