數(shù)據(jù)分析:信用卡違約率分析拆融,利用GridSearchCV進行參數(shù)調優(yōu)蠢琳!

分類器:

隨機森林分類器(RandomForest):包含多個決策樹的分類器啊终,每一個子分類器都是一顆CART分類器。

RandomForestClassifier()
隨即森林參數(shù)含義.png
GridSearchTV工具對模型參數(shù)進行調優(yōu):

它是python的自動參數(shù)搜索模塊傲须,只要給它參數(shù)取值范圍孕索,它可以自動跑一邊所有的參數(shù),并且告訴我們最優(yōu)參數(shù)是什么躏碳。
代碼:

from sklearn.model_selection import GridSearchCV

參數(shù)含義.png
使用管道機制流水線線作業(yè):

當模型需要搞旭,數(shù)據(jù)規(guī)范化處理、PCA方法對數(shù)據(jù)進行數(shù)據(jù)降維菇绵,等步驟時肄渗,便可以穿件Pipeline流水線。

from sklearn.model_selection import GridSearchCV
pipeline = Pipeline([
        ('scaler', StandardScaler()),
        ('pca', PCA()),
        ('randomforestclassifier', RandomForestClassifier())
])

代碼步驟:

1咬最、數(shù)據(jù)導入與數(shù)據(jù)探索

2翎嫡、數(shù)據(jù)清洗、特征選擇永乌、訓練集與測試集選擇

3惑申、構造四個分類器、四個名稱翅雏、四個參數(shù)及取值范圍(字典或列表形式)圈驼,以列表的形式存在

4、函數(shù)望几,帶入自動篩選函數(shù)绩脆,參數(shù)為管道執(zhí)行順序,測試訓練值橄抹,以及變化參數(shù)

5靴迫、用for 循環(huán)解封分類器、參數(shù)……列表楼誓,并管道執(zhí)行數(shù)據(jù)標準化玉锌,分類器創(chuàng)建

# 查看信用卡違約率
import pandas as pd
from sklearn.model_selection import learning_curve,train_test_split,GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.metrics import accuracy_score
from sklearn.svm import SVC
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.neighbors import KNeighborsClassifier
import  matplotlib.pyplot as plt
import seaborn as sns
#1、數(shù)據(jù)探索
data=pd.read_csv('E:/數(shù)據(jù)學習網(wǎng)站/credit_default-master/UCI_Credit_Card.csv')
# print(data.head(5))
# print(data.describe())
# print(data.shape)
next_month=data['default.payment.next.month'].value_counts()#統(tǒng)計個數(shù)
# print(next_month)
df=pd.DataFrame({'default.payment.next.month':next_month.index,'values':next_month.values})#將統(tǒng)計數(shù)據(jù)設置成pandas格式
# print(df)

# 可視化
# plt.rcParams['font.sans-serif']=['SimHei']#用來正常顯示中文
# plt.figure(figsize=(6,6))#圖形大小
# plt.title('信用卡違約率客戶\n(違約:1疟羹,守約:0)')#圖形標題
# sns.set_color_codes('pastel')#圖形顏色
# sns.barplot(x='default.payment.next.month',y='values',data=df)
# locs,labels=plt.xticks()
# plt.show()

#2主守、數(shù)據(jù)清洗、特征選擇
data.drop(['ID'],inplace=True,axis=1)#除去沒用的ID
target=data['default.payment.next.month'].values#結果
columns=data.columns.tolist()
columns.remove('default.payment.next.month')#移除結果欄
features=data[columns].values
train_x,test_x,train_y,test_y=train_test_split(features,target,test_size=0.3,stratify=target,random_state=1)#一般來說0.3用來測試

# 3阁猜、構造各種分類器丸逸,四個分類器,以列表的形式存在
classifiers=[
    SVC(random_state=1,kernel='rbf'),
    DecisionTreeClassifier(random_state=1,criterion='gini'),
    RandomForestClassifier(random_state=1,criterion='gini'),
    KNeighborsClassifier(metric='minkowski')
]

# 4剃袍、分類器名稱
classifier_names=[
    'svc',
    'decisiontreeclassifier',
    'randomforestclassifier',
    'kneighborsclassifier'
]

# 5黄刚、分類器參數(shù)
classifier_param_grid = [
    {'svc__C': [1], 'svc__gamma': [0.01]},
    {'decisiontreeclassifier__max_depth': [6, 9, 11]},
    {'randomforestclassifier__n_estimators': [3, 5, 6]},
    {'kneighborsclassifier__n_neighbors': [4, 6, 8]},
]

#6、函數(shù)民效,帶入自動篩選函數(shù)憔维,參數(shù)為管道執(zhí)行順序涛救,測試訓練值,以及變化參數(shù)
def GridSearchCV_work(pipeline,train_x,train_y,test_x,test_y,param_grid,score='accuracy'):
    response={}
    gridsearch=GridSearchCV(estimator=pipeline,param_grid=param_grid,scoring=score)
    gridsearch.fit(train_x,train_y)
    print('最優(yōu)參數(shù)為:',gridsearch.best_params_)
    print('最優(yōu)分數(shù)為:',gridsearch.best_score_)
    predict_y=gridsearch.predict(test_x)
    print('準確率為:',accuracy_score(test_y,predict_y))
    response['predict_y']=predict_y
    response['accuracy_score']=accuracy_score(test_y,predict_y)
    return response

#7业扒、用for 循環(huán)解封分類器检吆、參數(shù)……列表,并管道執(zhí)行數(shù)據(jù)標準化程储,分類器創(chuàng)建
for model,model_name,model_param_grid in zip(classifiers,classifier_names,classifier_param_grid):
    pipeline=Pipeline([
        ('scaler',StandardScaler()),
        (model_name,model)
    ])
   result=GridSearchCV_work(pipeline,train_x,train_y,test_x,test_y,model_param_grid,score='accuracy')

結果:

最優(yōu)參數(shù)為: {'svc__C': 1, 'svc__gamma': 0.01}
最優(yōu)分數(shù)為: 0.8173809523809524
準確率為: 0.8172222222222222

最優(yōu)參數(shù)為: {'decisiontreeclassifier__max_depth': 6}
最優(yōu)分數(shù)為: 0.8186190476190476
準確率為: 0.8113333333333334

最優(yōu)參數(shù)為: {'randomforestclassifier__n_estimators': 6}
最優(yōu)分數(shù)為: 0.7998095238095239
準確率為: 0.7994444444444444

最優(yōu)參數(shù)為: {'kneighborsclassifier__n_neighbors': 8}
最優(yōu)分數(shù)為: 0.804047619047619
準確率為: 0.8035555555555556

可以看出蹭沛,各個分類器的最優(yōu)結果和最優(yōu)的參數(shù)。

數(shù)據(jù)來源:
我們現(xiàn)在來做一個信用卡違約率的項目章鲤,這個數(shù)據(jù)集你可以從 GitHub 上下載:https://github.com/cystanford/credit_default摊灭。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市败徊,隨后出現(xiàn)的幾起案子帚呼,更是在濱河造成了極大的恐慌,老刑警劉巖皱蹦,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件煤杀,死亡現(xiàn)場離奇詭異,居然都是意外死亡沪哺,警方通過查閱死者的電腦和手機沈自,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凤粗,“玉大人酥泛,你說我怎么就攤上這事∠蛹穑” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵呆躲,是天一觀的道長异逐。 經(jīng)常有香客問我,道長插掂,這世上最難降的妖魔是什么灰瞻? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮辅甥,結果婚禮上酝润,老公的妹妹穿的比我還像新娘。我一直安慰自己璃弄,他們只是感情好要销,可當我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著夏块,像睡著了一般疏咐。 火紅的嫁衣襯著肌膚如雪纤掸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天浑塞,我揣著相機與錄音借跪,去河邊找鬼。 笑死酌壕,一個胖子當著我的面吹牛掏愁,可吹牛的內容都是我干的。 我是一名探鬼主播卵牍,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼托猩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了辽慕?” 一聲冷哼從身側響起京腥,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎溅蛉,沒想到半個月后公浪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡船侧,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年欠气,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片镜撩。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡预柒,死狀恐怖,靈堂內的尸體忽然破棺而出袁梗,到底是詐尸還是另有隱情宜鸯,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布遮怜,位于F島的核電站淋袖,受9級特大地震影響,放射性物質發(fā)生泄漏锯梁。R本人自食惡果不足惜即碗,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望陌凳。 院中可真熱鬧剥懒,春花似錦、人聲如沸合敦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至壁却,卻和暖如春批狱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背展东。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工赔硫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人盐肃。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓爪膊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親砸王。 傳聞我的和親對象是個殘疾皇子推盛,可洞房花燭夜當晚...
    茶點故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內容