国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

這篇具有很好參考價值的文章主要介紹了機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

系列文章目錄

作者:i阿極

作者簡介:數據分析領域優(yōu)質創(chuàng)作者、多項比賽獲獎者:博主個人首頁

??????如果覺得文章不錯或能幫助到你學習,可以點贊??收藏??評論??+關注哦!??????

??????如果有小伙伴需要數據集和學習交流,文章下方有交流學習區(qū)!一起學習進步!??


大家好,我i阿極。喜歡本專欄的小伙伴,請多多支持

專欄案例:機器學習案例
機器學習(一):線性回歸之最小二乘法
機器學習(二):線性回歸之梯度下降法
機器學習(三):基于線性回歸對波士頓房價預測
機器學習(四):基于KNN算法對鳶尾花類別進行分類預測
機器學習(五):基于KNN模型對高爐發(fā)電量進行回歸預測分析
機器學習(六):基于高斯貝葉斯對面部皮膚進行預測分析
機器學習(七):基于多項式貝葉斯對蘑菇毒性分類預測分析
機器學習(八):基于PCA對人臉識別數據降維并建立KNN模型檢驗
機器學習(十四):基于邏輯回歸對超市銷售活動預測分析
機器學習(十五):基于神經網絡對用戶評論情感分析預測
機器學習(十六):線性回歸分析女性身高與體重之間的關系
機器學習(十七):基于支持向量機(SVM)進行人臉識別預測
機器學習(十八):基于邏輯回歸對優(yōu)惠券使用情況預測分析
機器學習(十九):基于邏輯回歸對某銀行客戶違約預測分析
機器學習(二十):LightGBM算法原理(附案例實戰(zhàn))
機器學習(二十一):基于樸素貝葉斯對花瓣花萼的寬度和長度分類預測
機器學習(二十二):基于邏輯回歸(Logistic Regression)對股票客戶流失預測分析


1、AdaBoost基本原理

AdaBoost是一種通過改變訓練樣本權重來學習多個弱分類器并線性組合成強分類器的Boosting算法。一般來說,Boosting方法要解答兩個關鍵問題:

  • 一是在訓練過程中如何改變訓練樣本的權重或者概率分布
  • 二是如何將多個弱分類器組合成一個強分類器。

針對這兩個問題,AdaBoost的做法非常樸素:

  • 一是提高前一輪被弱分類器分類錯誤的樣本的權重,而降低分類正確的樣本的權重
  • 二是對多個弱分類器進行線性組合,提高分類效果好的弱分類器的權重,降低分類誤差率高的弱分類器的權重。

給定訓練集
機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別
其中
機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別
AdaBoost訓練算法如下:
(1) 初始化訓練數據樣本的權重分布,即為每個訓練樣本分配一個初始權重:
機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別
(2) 對于t = 1,2,3,…,T,分別執(zhí)行以下步驟:
(a) 對包含權重分布 D t D_t Dt?的訓練集進行訓練并得到弱分類器 G t ( x ) G_t(x) Gt?(x)?!?br> (b) 計算 G t ( x ) G_t(x) Gt?(x)在當前加權訓練集上的分類誤差率:

? t = P ( G t ( x i ) ≠ y i ) = ∑ i = 1 N w t i I ( G t ( x i ) ≠ y i ) \epsilon_t=P\left(G_t\left(x_i\right) \neq y_i\right)=\sum_{i=1}^N w_{t i} I\left(G_t\left(x_i\right) \neq y_i\right) ?t?=P(Gt?(xi?)=yi?)=i=1N?wti?I(Gt?(xi?)=yi?)

(c )根據分類誤差率計算當前弱分類器的權重系數 α t \alpha_t αt?

α t = 1 2 log ? 1 ? ? t ? t \alpha_t=\frac{1}{2} \log \frac{1-\epsilon_t}{\epsilon_t} αt?=21?log?t?1??t??

(d) 調整訓練集的權重分布:
機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

其中 Z t Z_t Zt?為歸一化因子, Z t = ∑ i = 1 N w i exp ? ( ? α t y i G t ( x i ) ) Z_t=\sum_{i=1}^N w_i \exp \left(-\alpha_t y_i G_t\left(x_i\right)\right) Zt?=i=1N?wi?exp(?αt?yi?Gt?(xi?))

(3) 最后構建 T T T個弱分類器的線性組合:
機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別
最終的強分類器可以寫為:
機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

根據 α t = 1 2 log ? 1 ? ? t ? t \alpha_t=\frac{1}{2} \log \frac{1-\epsilon_t}{\epsilon_t} αt?=21?log?t?1??t??的弱分類器權重系數計算過程中,當弱分類器的分類誤差率 ? t ? 1 2 \epsilon_t \leqslant \frac{1}{2} ?t??21?時, 0 ? α t 0 \leqslant\alpha_t 0?αt?,且 α t \alpha_t αt?隨著 ? t \epsilon_t ?t?的減小而變大,這也正是弱分類器權重系數計算公式的設計思想,它能夠使得分類誤差率較低的分類器有較大的權重系數。

根據
機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別
訓練樣本權重分布可以寫為:
機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別
當樣本被弱分類器正確分類時,它的權重變??;當樣本被弱分類器錯誤分類時,它的權重變大。相比之外,錯誤分類樣本的權重增大了 e 2 α t \mathrm{e}^{2 \alpha_t} e2αt?倍,這就使得在下一輪訓練中,算法將更加關注這些誤分類的樣本。

以上就是AdaBoost算法的基本原理??梢钥吹?,算法步驟非常直觀易懂,巧妙的算法設計能夠非常好地回答B(yǎng)oosting方法的兩個關鍵問題。上述關于AdaBoost的理解可以視為該模型的經典版本。

2、實驗環(huán)境

Python 3.9

Anaconda

Jupyter Notebook

3、AdaBoost函數語法

AdaBoostClassifier分類器

AdaBoostClassifier(base_estimator=None, n_estimators=50, 
                       learning_rate=1.0, algorithm='SAMME.R', random_state=None)

AdaBoostClassifier回歸器

AdaBoostRegressor(base_estimator=None, n_estimators=50, 
                  learning_rate=1.0, loss='linear', random_state=None)
  • base_estimator:用于指定提升算法所應用的基礎分類器,默認為分類決策樹(CART),也可以是其他基礎分類器,但分類器必須支持帶樣本權重的學習,如神經網絡。
  • n_estimators:用于指定基礎分類器的數量,默認為50個,當模型在訓練數據集中得到完美的擬合后,可以提前結束算法,不一定非得構建完指定個數的基礎分類器。
  • learning_rate:用于指定模型迭代的學習率或步長,即對應的提升模型F(x)可以表示為F(x)=F_m?1(x)+υα_mf_m(x),其中的υ就是該參數的指定值,默認值為1;對于較小的學習率υ而言,則需要迭代更多次的基礎分類器,通常情況下需要利用交叉驗證法確定合理的基礎分類器個數和學習率。
  • algorithm:用于指定AdaBoostClassifier分類器的算法,默認為’SAMME.R’,也可以使用’SAMME’;使用’SAMME.R’時,基礎模型必須能夠計算類別的概率值;一般而言,'SAMME.R’算法相比于’SAMME’算法,收斂更快、誤差更小、迭代數量更少。
  • loss:用于指定AdaBoostRegressor回歸提升樹的損失函數,可以是’linear’,表示使用線性損失函數;也可以是’square’,表示使用平方損失函數;還可以是’exponential’,表示使用指數損失函數;該參數的默認值為’linear’。
  • random_state:用于指定隨機數生成器的種子。

4、案例實戰(zhàn)——信用卡是否違約的識別

4.1導入數據

# 導入第三方包
import pandas as pd
import matplotlib.pyplot as plt

# 讀入數據
default = pd.read_excel(r'D:\CSDN\machine learning\default of credit card.xls')

4.2繪制餅圖查看是否違約的客戶比例

plt.axes(aspect = 'equal')
# 中文亂碼和坐標軸負號的處理
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
# 統計客戶是否違約的頻數
counts = default.y.value_counts()
# 繪制餅圖
plt.pie(x = counts, # 繪圖數據
        labels=pd.Series(counts.index).map({0:'不違約',1:'違約'}), # 添加文字標簽
        autopct='%.1f%%' # 設置百分比的格式,這里保留一位小數
       )
# 顯示圖形
plt.show()

機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

4.3拆分為訓練集和測試集

# 導入第三方包
from sklearn import model_selection
from sklearn import ensemble
from sklearn import metrics

# 排除數據集中的ID變量和因變量,剩余的數據用作自變量X
X = default.drop(['ID','y'], axis = 1)
y = default.y
# 數據拆分
X_train,X_test,y_train,y_test = model_selection.train_test_split(X,y,test_size = 0.25, random_state = 1234)

使用train_test_split函數將數據集拆分為訓練集和測試集。其中,參數X和y分別表示自變量和因變量,test_size表示測試集的比例(此處設置為0.25,即25%),random_state用于控制數據集的隨機拆分,確保結果可重復。

4.4構建Adaboost模型并預測

# 構建AdaBoost算法的類
AdaBoost1 = ensemble.AdaBoostClassifier()
# 算法在訓練數據集上的擬合
AdaBoost1.fit(X_train,y_train)
# 算法在測試數據集上的預測
pred1 = AdaBoost1.predict(X_test)

4.5返回模型的預測結果

# 返回模型的預測效果
print('模型的準確率為:\n',metrics.accuracy_score(y_test, pred1))
print('模型的評估報告:\n',metrics.classification_report(y_test, pred1))

機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

4.6計算客戶違約的概率值,用于生成ROC曲線的數據

y_score = AdaBoost1.predict_proba(X_test)[:,1]
fpr,tpr,threshold = metrics.roc_curve(y_test, y_score)
# 計算AUC的值
roc_auc = metrics.auc(fpr,tpr)

# 繪制面積圖
plt.stackplot(fpr, tpr, color='steelblue', alpha = 0.5, edgecolor = 'black')
# 添加邊際線
plt.plot(fpr, tpr, color='black', lw = 1)
# 添加對角線
plt.plot([0,1],[0,1], color = 'red', linestyle = '--')
# 添加文本信息
plt.text(0.5,0.3,'ROC curve (area = %0.2f)' % roc_auc)
# 添加x軸與y軸標簽
plt.xlabel('1-Specificity')
plt.ylabel('Sensitivity')
# 顯示圖形
plt.show()

機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

4.7查看自變量的重要性排序

importance = pd.Series(AdaBoost1.feature_importances_, index = X.columns)
importance.sort_values().plot(kind = 'barh')
plt.show()

機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

4.8取出重要性比較高的自變量建模

predictors = list(importance[importance>0.02].index)
predictors

# 通過網格搜索法選擇基礎模型所對應的合理參數組合
# 導入第三方包
from sklearn.model_selection import GridSearchCV
from sklearn.tree import DecisionTreeClassifier

max_depth = [3,4,5,6]
params1 = {'base_estimator__max_depth':max_depth}
base_model = GridSearchCV(estimator = ensemble.AdaBoostClassifier(base_estimator = DecisionTreeClassifier()),
                          param_grid= params1, scoring = 'roc_auc', cv = 5, n_jobs = 4, verbose = 1)
base_model.fit(X_train[predictors],y_train)
# 返回參數的最佳組合和對應AUC值
base_model.best_params_, base_model.best_score_

機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

4.9通過網格搜索法選擇提升樹的合理參數組合

# 導入第三方包
from sklearn.model_selection import GridSearchCV

n_estimators = [100,200,300]
learning_rate = [0.01,0.05,0.1,0.2]
params2 = {'n_estimators':n_estimators,'learning_rate':learning_rate}
adaboost = GridSearchCV(estimator = ensemble.AdaBoostClassifier(base_estimator = DecisionTreeClassifier(max_depth = 3)),
                        param_grid= params2, scoring = 'roc_auc', cv = 5, n_jobs = 4, verbose = 1)
adaboost.fit(X_train[predictors] ,y_train)
# 返回參數的最佳組合和對應AUC值
adaboost.best_params_, adaboost.best_score_

機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

4.10使用最佳的參數組合構建AdaBoost模型

AdaBoost2 = ensemble.AdaBoostClassifier(base_estimator = DecisionTreeClassifier(max_depth = 3),
                                       n_estimators = 300, learning_rate = 0.01)
# 算法在訓練數據集上的擬合
AdaBoost2.fit(X_train[predictors],y_train)
# 算法在測試數據集上的預測
pred2 = AdaBoost2.predict(X_test[predictors])

# 返回模型的預測效果
print('模型的準確率為:\n',metrics.accuracy_score(y_test, pred2))
print('模型的評估報告:\n',metrics.classification_report(y_test, pred2))

機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別

4.11計算正例的預測概率,用于生成ROC曲線的數據

y_score = AdaBoost2.predict_proba(X_test[predictors])[:,1]
fpr,tpr,threshold = metrics.roc_curve(y_test, y_score)
# 計算AUC的值
roc_auc = metrics.auc(fpr,tpr)

# 繪制面積圖
plt.stackplot(fpr, tpr, color='steelblue', alpha = 0.5, edgecolor = 'black')
# 添加邊際線
plt.plot(fpr, tpr, color='black', lw = 1)
# 添加對角線
plt.plot([0,1],[0,1], color = 'red', linestyle = '--')
# 添加文本信息
plt.text(0.5,0.3,'ROC curve (area = %0.2f)' % roc_auc)
# 添加x軸與y軸標簽
plt.xlabel('1-Specificity')
plt.ylabel('Sensitivity')
# 顯示圖形
plt.show()

機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別


??文章下方有交流學習區(qū)!一起學習進步!??????
??首發(fā)CSDN博客,創(chuàng)作不易,如果覺得文章不錯,可以點贊??收藏??評論??
??你的支持和鼓勵是我創(chuàng)作的動力???文章來源地址http://www.zghlxwxcb.cn/news/detail-480991.html

到了這里,關于機器學習:基于AdaBoost算法模型對信用卡是否違約進行識別的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 深度學習圖像處理基礎工具——opencv 實戰(zhàn)信用卡數字識別

    深度學習圖像處理基礎工具——opencv 實戰(zhàn)信用卡數字識別

    任務 信用卡數字識別 穿插之前學的知識點? 形態(tài)學操作 模板匹配 等 總體流程與方法 1.有一個模板 2 用輪廓檢測把模板中數字拿出來 外接矩形(模板和輸入圖像的大小要一致 )3 一系列預處理操作 問題的解決思路 1.分析準備:準備模板,讀取文件——轉化為灰度圖——轉化

    2024年04月15日
    瀏覽(95)
  • 機器學習算法: AdaBoost 詳解

    機器學習算法: AdaBoost 詳解

    1.1. 定義 集成學習(Ensemble learning)就是將若干個弱分類器通過一定的策略組合之后產生一個強分類器。 弱分類器(Weak Classifier)指的就是那些分類準確率只比隨機猜測略好一點的分類器,而強分類器( Strong Classifier)的分類準確率會高很多。這里的\\\"強\\\"\\\"弱\\\"是相對的。某些書

    2024年02月03日
    瀏覽(18)
  • 傳統機器學習(六)集成算法(2)—Adaboost算法原理

    傳統機器學習(六)集成算法(2)—Adaboost算法原理

    Adaboost(Adaptive Boosting)是一種自適應增強算法,它集成多個弱決策器進行決策。 Adaboost解決二分類問題 ,且二分類的標簽為{-1,1}。 注:一定是{-1,1},不能是{0,1} 它的訓練過程是通過不斷添加新的弱決策器,使損失函數繼續(xù)下降,直到添加決策器已無效,最終將所有決策器集成

    2024年02月05日
    瀏覽(25)
  • 機器學習神經網絡——Adaboost分離器算法

    機器學習神經網絡——Adaboost分離器算法

    ?機器學習之SVM分類器介紹——核函數、SVM分類器的使用 ?機器學習的一些常見算法介紹【線性回歸,嶺回歸,套索回歸,彈性網絡】 機器學習相關概念思維導圖 文章目錄 系列文章目錄 前言 Adaboost算法的簡單介紹 Adaboost算法相關函數簡介 案例介紹 1、簡單的Adaboost回歸的示

    2024年02月06日
    瀏覽(36)
  • 信用卡 3D 認證是怎么回事

    信用卡分為: 3D 和非 3D。 3D(3D: 3 domain)信用卡(10%, 集中在東南亞地區(qū))); 非 3D(90%, 集中在歐美地區(qū)) 1.1.1. 什么是 3D 信用卡 卡組織為了保證交易的安全性為信用卡添加了密碼驗證。不同的卡組織為這服務的叫法都不相同: Visa: verified by visa service(VBV)。在 Mastercard: MasterCard secure cod

    2023年04月19日
    瀏覽(94)
  • OpenCV之信用卡識別實戰(zhàn)

    OpenCV之信用卡識別實戰(zhàn)

    鏈接: https://pan.baidu.com/s/1KjdiqkyYGfHk97wwgF-j3g?pwd=hhkf 提取碼: hhkf 鏈接: https://pan.baidu.com/s/1PZ6w5NcSOuKusBTNa3Ng2g?pwd=79wr 提取碼: 79wr

    2024年02月14日
    瀏覽(92)
  • 刪除AWS綁定的信用卡賬戶

    刪除AWS綁定的信用卡賬戶

    前言 想使用aws的免費一年的ec2服務,所以必須先綁定信用卡,試了綁定儲蓄卡還不行。綁定信用卡的時候只需要寫卡號,卡片到期日期以及戶頭名即可。買上面的服務都不需要輸入密碼就可以購買。如果你用的免費服務,如果到期1年之后有其他費用,會悄無聲息的扣款你的

    2024年02月12日
    瀏覽(87)
  • 數據挖掘實戰(zhàn)(2):信用卡詐騙分析

    ??????????歡迎來到我的博客?????????? ??作者: 秋無之地 ??簡介:CSDN爬蟲、后端、大數據領域創(chuàng)作者。目前從事python爬蟲、后端和大數據等相關工作,主要擅長領域有:爬蟲、后端、大數據開發(fā)、數據分析等。 ??歡迎小伙伴們 點贊????、收藏

    2024年02月07日
    瀏覽(153)
  • MATLAB樸素貝葉斯(德國信用卡案例)

    MATLAB樸素貝葉斯(德國信用卡案例)

    我們matlab建模課的案例 數據以及代碼 鏈接:https://pan.baidu.com/s/18qpV2qsHzwbnOgZBMBHdGQ?pwd=r8g2? 提取碼:r8g2 參考書:MATLAB數學建模方法與實踐(第三版)p63-p66 導入數據及分類 計算數據的x和y 例: 數據大小為1000x25 x = 1000 y =? 25 最后一列為是否失約 原數據1代表失約 2代表未失約 例

    2024年02月06日
    瀏覽(577)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包