資料建模 IV 特徵資訊度

2021-08-10 04:11:10 字數 1553 閱讀 9382

iv(information value), 衡量特徵包含**變數濃度的一種指標

特徵資訊度解構:

其中gi,bi表示箱i中好壞樣本佔全體好壞樣本的比例。

woe表示兩類樣本分佈的差異性。

(gi-bi):衡量差異的重要性。

特徵資訊度的作用

選擇變數:

非負指標

高iv表示該特徵和目標變數的關聯度高

目標變數只能是二分類

過高的iv,可能有潛在的風險

特徵分箱越細,iv越高

常用的閾值有:

<=0.02: 沒有**性,不可用

0.02 to 0.1: 弱**性

0.1 to 0.2: 有一定的**性

0.2 +: 高**性

注意上面說的iv是指乙個變數裡面所有箱的iv之和。

計算woe和iv**:

def

calcwoe

(df, col, target):

''' :param df: dataframe containing feature and target

:param col: 注意col這列已經經過分箱了,現在計算每箱的woe和總的iv。

:param target: good/bad indicator

:return: 返回每箱的woe(字典型別)和總的iv之和。

'''total = df.groupby([col])[target].count()

total = pd.dataframe()

bad = df.groupby([col])[target].sum()

bad = pd.dataframe()

regroup = total.merge(bad, left_index=true, right_index=true, how='left')

regroup.reset_index(level=0, inplace=true)

n = sum(regroup['total'])

b = sum(regroup['bad'])

regroup['good'] = regroup['total'] - regroup['bad']

g = n - b

regroup['bad_pcnt'] = regroup['bad'].map(lambda x: x*1.0/b)

regroup['good_pcnt'] = regroup['good'].map(lambda x: x * 1.0 / g)

woe_dict = regroup[[col,'woe']].set_index(col).to_dict(orient='index')

iv = sum(iv)

return

資料探勘建模 3 特徵工程

3.1數值型特徵 數值變換 非線性變換 編碼 3.2 無監督降維pca 3.3計算型變換 3.4特徵篩選 3.4 索引恢復 1.log變換 x min x max x min x 最大最小值受異常點影響,魯棒性差,比較適合傳統精確資料場景 from sklearn.preprocessing imp...

資料建模 機器學習之如何進行特徵工程(上)

1 特徵選擇 當資料預處理完成後,我們需要選擇有意義的特徵輸入機器學習的演算法和模型進行訓練。通常來說,從兩個方面考慮來選擇特徵 特徵是否發散 如果乙個特徵不發散,例如方差接近於0,也就是說樣本在這個特徵上基本上沒有差異,這個特徵對於樣本的區分並沒有什麼用。根據特徵選擇的形式又可以將特徵選擇方法分為...

做數學建模要學會的資料特徵分析方法 帕累託分析

帕累託分析聽起來非常高大上的樣子,其實就是指標貢獻度分析,帕累託法則即二八 20 80 定律.原因和結果 投入和產出,努力和報酬之間本來存在著無法解釋的不平衡,一般來說,投入和努力可以分為兩種不同的型別 多數,它們只能造成少許影響 少數,它們造成主要 重大的影響。比如乙個公司,百分之八十的利潤來自於...