日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从0到1建立一张评分卡之可视化分析

發布時間:2025/3/21 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从0到1建立一张评分卡之可视化分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? 上一篇文章介紹了如何進行數據預處理,接下來介紹如何進行探索性數據分析。探索性數據分析又叫EDA,即Exploratory Data Analysis。其實數據預處理也屬于EDA的一部分,EDA的目標就是快速描述一份數據集,以及對數據進行處理并可視化數據分布。只有了解數據之后,才能分析數據。今天主要介紹可視化數據分布的內容。

? 首先將變量分為數值型變量和類別型變量,分別進行可視化分析。

num_features = ['int_rate_clean', 'emp_length_clean', 'annual_inc', 'dti', 'delinq_2yrs', 'earliest_cr_to_app','inq_last_6mths', \'mths_since_last_record_clean', 'mths_since_last_delinq_clean', 'open_acc', 'pub_rec', 'total_acc','limit_income', 'earliest_cr_to_app']cat_features = ['home_ownership', 'verification_status', 'desc_clean', 'purpose', 'zip_code', 'addr_state'] feature_list=num_features+cat_features

? 一共有14個數值變量和6個類別變量。先看一下類別型變量的分布圖。

# 類別型變量的分布 def plot_cate_var(df,col_list,hspace=0.4,wspace=0.4,plt_size=None,plt_num=None,x=None,y=None):plt.figure(figsize=plt_size)plt.subplots_adjust(hspace=hspace,wspace=wspace)plt.rcParams['font.sans-serif']=['Microsoft YaHei']plt.rcParams['axes.unicode_minus'] = Falsefor i,col in zip(range(1,plt_num+1,1),col_list):plt.subplot(x,y,i)plt.title(col)sns.countplot(data=df,y=col)plt.ylabel('')return plt.show()

? 從上圖可以看到每個類別型變量的大致分布情況。其中purpose、zip_code和addr_state這三個類別型變量的取值過多。對這類變量一般有這些處理辦法:

  • 降基處理。即將占比較小的類別進行合并。
  • 用bad_rate編碼后劃入數值型變量,進行分箱。

? 對于purpose變量,由于類別數不是很多,可以嘗試進行降基;對于zip_code和addr_state,由于變量過多,所以進行bad_rate編碼。

? 再看一下數值型變量的分布情況。

def plot_num_col(df,col_list,hspace=0.4,wspace=0.4,plt_type=None,plt_size=None,plt_num=None,x=None,y=None):plt.figure(figsize=plt_size)plt.subplots_adjust(hspace=hspace,wspace=wspace)if plt_type=='hist':for i,col in zip(range(1,plt_num+1,1),col_list):plt.subplot(x,y,i)plt.title(col)sns.distplot(df[col].dropna())plt.xlabel('')return plt.show()

? 數值型變量的分布用到了seaborn中的distplot畫圖,對應的還有一個kedplot畫圖方法??梢灾庇^地看出每個變量的分布狀態。
然后結合違約率,再對變量進行一下可視化分析。先對類別型變量進行可視化分析。

# 類別型變量的違約率分析 def plot_default_cate(df,col_list,target,hspace=0.4,wspace=0.4,plt_size=None,plt_num=None,x=None,y=None):all_bad = df[target].sum()total = df[target].count()all_default_rate = all_bad*1.0/totalplt.figure(figsize=plt_size)plt.subplots_adjust(hspace=hspace,wspace=wspace)plt.rcParams['font.sans-serif']=['Microsoft YaHei']plt.rcParams['axes.unicode_minus'] = Falsefor i,col in zip(range(1,plt_num+1,1),col_list):d1 = df.groupby(col)d2 = pd.DataFrame()d2['total'] = d1[target].count()d2['bad'] = d1[target].sum()d2['default_rate'] = d2['bad']/d2['total']d2 = d2.reset_index()plt.subplot(x,y,i)plt.title(col)plt.axvline(x=all_default_rate)sns.barplot(data=d2,y=col,x='default_rate')plt.ylabel('')return plt.show()

? 這張圖將每個變量取值的違約率和該變量的違約率畫在一張圖上進行對比,可以直觀地看出哪些變量的取值違約率較高。比如homeownership變量的other取值、purpose變量的small_business取值。
? 同樣看下數值型變量的違約率分布圖。需要對數值型變量進行等深分箱。

# 數值型變量的違約率分析 def plot_default_num(df,col_list,target,hspace=0.4,wspace=0.4,q=None,plt_size=None,plt_num=None,x=None,y=None):all_bad = df[target].sum()total = df[target].count()all_default_rate = all_bad*1.0/total plt.figure(figsize=plt_size)plt.subplots_adjust(hspace=hspace,wspace=wspace)for i,col in zip(range(1,plt_num+1,1),col_list):bucket = pd.qcut(df[col],q=q,duplicates='drop')d1 = df.groupby(bucket)d2 = pd.DataFrame()d2['total'] = d1[target].count()d2['bad'] = d1[target].sum()d2['default_rate'] = d2['bad']/d2['total']d2 = d2.reset_index()plt.subplot(x,y,i)plt.title(col)plt.axhline(y=all_default_rate)sns.pointplot(data=d2,x=col,y='default_rate',color='hotpink')plt.xticks(rotation=60)plt.xlabel('')return plt.show()

? 對數值型變量進行等頻分箱,觀察每一箱的違約率占比以及單個變量的違約率占比情況。可以看到delinq_2yrs、pub_rec只有一箱。結合數值型變量的分布圖發現這些變量都有一個取值的數量極多,導致在進行等頻分箱的時候由于頻數過大所以只有一箱。此外,大部分變量在進行等頻分箱后的壞樣本率是呈現單調趨勢的。
總結:可視化分析有助于讓數據分析更清晰明了,可以幫助理解數據,并且以清晰、簡潔的圖標展示出分析結果,這是非常重要的。

【作者】:Labryant
【原創公眾號】:風控獵人
【簡介】:某創業公司策略分析師,積極上進,努力提升。乾坤未定,你我都是黑馬。
【轉載說明】:轉載請說明出處,謝謝合作!~

總結

以上是生活随笔為你收集整理的从0到1建立一张评分卡之可视化分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。