均值、方差、最小值、最大值、1%分位數、5%分位數、 10%分位數、25%分位數、 50%分位數、75%分位數、90%分位數、 95%分位數、 99%分位數。
一般要將資料排序後才能求得分位數。
1.1 對每個model(seg_a、seg_b、seg_c、all),計算score向量的統計量
1.2 對seg_a、seg_b、seg_c、all,計算每signal向量的統計量
其公式為:
其中: 0.8-1.0
極強相關
0.6-0.8
強相關0.4-0.6
中等程度相關
0.2-0.4
弱相關0.0-0.2
極弱相關或無相關
2.1 對每個model(只有seg_a),計算signal與tag的相關係數。
2.2對
seg_a、seg_b、s
eg_c、all,計算每兩個signal向量之間的相關係數。
psi(population stability index)是衡量模型的**值與實際值偏差大小的指標。psi 小於 0.25 意味偏差在可以接受的範圍裡。
3.1對每個model(seg_a、seg_b、seg_c),計算score向量的psi
(1). 將基準score劃分為10個區間,將**score按照相同的邊界值劃分為10個區間
(2). 分別統計各個分割槽基準score的個數c1、**score的個數c2
(3). 分別統計各個分割槽基準score的個數比例p1、**score的個數比例p2
(4). 計算 psi = sum ( ( p1[i] - p2[i] ) / ( log p1[i] - log p2[i] ) )
3.2對seg_a、seg_b、seg_c、all,計算signal的psi
(1). 將基準signal劃分為10個區間,將**signal按照相同的邊界值劃分為10個區間
(2). 分別統計各個分割槽基準score的個數c1、**score的個數c2
(3). 分別統計各個分割槽基準score的個數比例p1、**score的個數比例p2
(4). 計算 psi = sum ( ( p1[i] - p2[i] ) / ( log p1[i] - log p2[i] ) )
群體穩定性指標(population stability index),
公式: psi = sum((實際佔比-預期佔比)*ln(實際佔比/預期佔比))
舉個例子解釋下,比如訓練乙個logistic回歸模型,**時候會有個概率輸出p。你測試集上的輸出設定為p1吧,將它從小到大排序後10等分,如0-0.1,0.1-0.2,......。
現在你用這個模型去對新的樣本進行**,**結果叫p2,按p1的區間也劃分為10等分。
實際佔比就是p2上在各區間的使用者佔比,預期佔比就是p1上各區間的使用者佔比。
意義就是如果模型跟穩定,那麼p1和p2上各區間的使用者應該是相近的,佔比不會變動很大,也就是**出來的概率不會差距很大。
一般認為psi小於0.1時候模型穩定性很高,0.1-0.25一般,大於0.25模型穩定性差,建議重做。
方差膨脹因子(variance inflation factor,vif):容忍度的倒數,vif越大,顯示共線性越嚴重。經驗判斷方法表明:當0<vif<10,不存在多重共線性;當10≤vif<100,存在較強的多重共線性;當vif≥100,存在嚴重多重共線性。
計算方法: 對自變數作中心標準化,則x'x 為自變數的相關陣,定義
則矩陣c的主對角線元素 vif(i) 為自變數x(i) 的方差擴大因子vif。 若x(i) 與其餘自變數的復決定係數為r(i)^2,vif 與 復決定係數關係為:
4.1 對每個model的seg_a、seg_b、seg_c、all,計算每個signal的vif:
(1). signal的全矩陣為x
(2). 從x取得一列signal y,從x中刪除y得x'
(3). 對x',y作線性回歸建模,得到模型lr
(4). 使用lr,輸入x,得到y的**值y_pred
(5). 求得y的vif= sum((y- y_mean)^2)/sum((y- y_pred)^2)
(6).從第二步開始重複,計算每個signal的vif
受試者工作特徵曲線 (receiver operating characteristic curve,簡稱roc曲線): 是反映敏感性和特異性連續變數的綜合指標,是用構圖法揭示敏感性和特異性的相互關係,它通過將連續變數設定出多個不同的臨界值,從而計算出一系列敏感性和特異性,再以敏感性為縱座標、(1-特異性)為橫座標繪製成曲線,曲線下面積越大,診斷準確性越高。在roc曲線上,最靠近座標圖左上方的點為敏感性和特異性均較高的臨界值。
5.1. 對每個model(只有seg_a),計算score與tag的roc曲線:
(1). 將score 降序排列
(2). score劃分為10等份(每份個數相同)
(3). 計算每乙份tag的總和即命中個數,score的最大、最小值
(4). 計算每乙份的未命中個數 = 個數- 命中個數
(5). 轉化為累加矩陣,計算累加命中率、累加未命中率
(6). 計算 ks = max ( abs (累加命中率[i] - 累加未命中率[i]) )
(7). 計算 auroc = sum ( (累加命中率[i] + 累加命中率[i-1])*( 累加未命中率[i] - 累加未命中率[i-1]) )/2 , 即求積分
(8). 計算累加前每層實際命中率、累加前每層**命中率、每層累加率
(9). roc 曲線:x軸為累加未命中率[i]),y軸為累加命中率[i]。
area under the roc curve,roc 曲線下的面積,auc 值在0.5 到1 之間。
6.1 對每個model(只有seg_a),計算score與tag的auroc見5.1:
auroc = sum ( (累加命中率[i] + 累加命中率[i-1])*( 累加未命中率[i] - 累加未命中率[i-1]) )/2 ,求積分
6.1 對每個model(只有seg_a),計算score與tag的auc見6.1:
ks = max ( abs (累加命中率 - 累加未命中率) )
condition index 條件指數:用於診斷多重共線性。
ci > 100
強 多重共線性
ci > 30
中等多重共線性
ci > 10
弱多重共線性
condition index 條件指數 計算方法:計算矩陣x『x 的特徵值,則條件數k和條件指數ci分別為:
8.1. 對每個model(seg_a、seg_b、seg_c),計算signal的ci:
(1). 求出回歸矩陣s『s
(2).求出矩陣s『s
的特徵值lam1、lam2........lamn
(3). 求最大特徵值/最小特徵值 的平方根
9.1. 對每個model(只有seg_a),計算signal與tag的logit關係:
(1). 若signal 是標籤型別,則計算其值分別為0、1時候,對應的tag的數量、均值
(2). 若signal 是數值型別,則將signal劃分為最多10個區間,計算各個區間對應的tag的數量、均值
10.1 對每個model(只有seg_a),計算score與tag 之間的線性關係:
(1). 按照score降序排列
(2). 劃分為10個等份,求出每乙份的score和tag的均值
(3). 使用score均值和tag均值進行線性回歸建立模型lr
(4). 按照模型lr,使用score均值作為變數,帶入模型lr中,計算出**的tag均值
工作中用到的模型診斷指數
均值 方差 最小值 最大值 1 分位數 5 分位數 10 分位數 25 分位數 50 分位數 75 分位數 90 分位數 95 分位數 99 分位數。一般要將資料排序後才能求得分位數。1.1 對每個model seg a seg b seg c all 計算score向量的統計量 1.2 對seg ...
工作中用到的命令
svn checkout username password 點評 1 將檔案checkout到本地目錄 svn checkout path path是伺服器上的目錄 例如 svn checkout svn 簡寫 svn co 2 往版本庫中新增新的檔案 svn add file 例如 svn ad...
工作中用到的Linux
1.top命令檢視cpu使用率 備註 在自己機器上不斷提供cpu使用率以獲取health alert命令 for i in seq 1 cat proc cpuinfo grep physical id wc l do while true do true done done2.scp命令跨伺服器遠...