
作者:amitvkulkarni
CDA數據分析師編譯
對于任何評估來說,最難的是保持簡單易操作,在數據科學中也是如此。在任何數據科學項目中,細化數據、微調模型、部署它們的迭代過程都是一個持續的過程。隨著工具、算法的進步,以及隨著 MLOps 的出現,事情變得容易了很多,而且未來也會繼續發展——技術會優化自己。
業務方面呢?說服客戶相信使用先進工具和技術構建的復雜模型的預測能力有多容易?客戶是否愿意為項目提供資金并信任我們模型的建議?好吧,不妨試著解釋模型的 ROC 曲線,試著用特異性和敏感性指標來說服客戶——你會看到的只是眼球在滾動。
但是,如果我們能夠在沒有復雜指標和技術術語的情況下回答業務問題呢?那么,我們就可能有機會從業務部門那里獲得支持。在本文中,我們將看到一個用例,在該用例中,我們仍將構建我們的模型,但以不同的方式對其進行解釋——業務方式。
使用 ML 模型提取商業價值的方法
在這篇博客中,我們將探索十分位數的使用,了解各種評估圖,如累積增益圖和提升圖等,以評估 ML 模型的商業價值。該方法將幫助我們解釋 ML 模型的預測能力,并使解釋模型結果變得很簡單。這些圖表和指標將使企業能夠更有信心地做出明智的決策。
我們將在本文中探索以下主題。
我們將使用來自 UCI 機器學習存儲庫的公開可用的銀行數據 集, zip 文件中有四個數據集,但我們感興趣的是*bank-additional-full.csv。*所有的屬性信息都可以在上面的 URL 中找到。數據來自直接營銷電話聯系客戶,以評估客戶是否有興趣訂閱銀行定期存款。如果訂閱,則為 Yes,否則為 No。本文討論的是如何評估 ML 模型的商業價值。
讓我們加載數據并查看一下以便更好的理解數據。
import wget import zipfile import pandas as pd import numpy as np
url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank-additional.zip' wget.download(url)
zf = zipfile.ZipFile('bank-additional.zip')
df= pd.read_csv(zf.open('bank-additional/bank-additional-full.csv'), sep=';')
我們可以進行完整的EDA/特征工程/選擇重要變量然后構建模型,但為了簡單起見,我們將選擇很少的變量進行模型構建。
df= df[['y', 'duration', 'campaign', 'pdays', 'previous', 'euribor3m']]
此外,還需要更進一步地探索數據,將目標變量轉換為分類變量并對其進行編碼。
df.y[df.y == 'yes'] = 'term deposit' df.y = pd.Categorical(df.y)
df['y'] = df.y.cat.codes
df.info()
RangeIndex: 41188 entries, 0 to 41187 Data columns (total 6 columns): # Column Non-Null Count Dtype — —— ————– —– 0 y 41188 non-null int8 1 duration 41188 non-null int64 2 campaign 41188 non-null int64 3 pdays 41188 non-null int64 4 previous 41188 non-null int64 5 euribor3m 41188 non-null float64 dtypes: float64(1), int64(4), int8(1) memory usage: 1.6 MB
df.head() y duration campaign pdays previous euribor3m 0 261 1 999 0 4.857 0 149 1 999 0 4.857 0 226 1 999 0 4.857 0 151 1 999 0 4.857 0 307 1 999 0 4.857
df.describe() y duration campaign pdays previous euribor3m count 41188.000000 41188.000000 41188.000000 41188.000000 41188.000000 41188.000000 mean 0.112654 258.285010 2.567593 962.475454 0.172963 3.621291 std 0.316173 259.279249 2.770014 186.910907 0.494901 1.734447 min 0.000000 0.000000 1.000000 0.000000 0.000000 0.634000 25% 0.000000 102.000000 1.000000 999.000000 0.000000 1.344000 50% 0.000000 180.000000 2.000000 999.000000 0.000000 4.857000 75% 0.000000 319.000000 3.000000 999.000000 0.000000 4.961000 max 1.000000 4918.000000 56.000000 999.000000 7.000000 5.045000
模型構建以提取商業價值
Step1:定義自變量和目標變量
y = df.y X = df.drop('y', axis = 1)
Step2:將數據集拆分為訓練集和測試集,其中測試大小為整個數據集的 20%
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2, random_state = 2021)
Step3:建立邏輯回歸模型
from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression # Logistic regression model clf_glm = LogisticRegression(multi_class = 'multinomial', solver = 'newton-cg').fit(X_train, y_train)
prob_glm = clf_glm.predict_proba(X_test)
max_prob_glm = round(pd.DataFrame(np.amax(prob_glm, axis=1), columns = ['prob_glm']),2)
至此,我們已經建立了模型,并在測試數據上對其進行了評分(預測),這為我們提供了每個觀察結果的預測概率。
生成十分位數
簡單地說,十分位數把數據進行分箱。所以,我們將所有預測的概率分成十組,并對它們進行排名,這意味著最高的預測概率將在十分之一,最低的設置將在十分之一。我們將使用pandas的 cut() 函數拆分數據。
下面的代碼行創建一個名為Decile_rank_glm的新列, 它保存每個預測記錄的排名。
max_prob_glm['Decile_rank_glm'] = pd.cut(max_prob_glm['prob_glm'], 10, labels = np.arange(10,0, -1))
prob_glm Decile_rank_glm 0 0.99 1 1 0.59 9 2 0.96 1 3 0.83 4 4 0.85 4 ... ... ... 8233 0.98 1 8234 0.98 1 8235 0.99 1 8236 0.99 1 8237 0.93 2
注: 0.99 的概率為 1,0.93 為 2,0.85 為 4,0.59 為 9。我們將在后面的部分中看到此結果的可視化。
模型評估以提取商業價值
我們構建的任何模型都必須與基線模型進行比較,以評估模型的性能。讓我們在下面進一步探討這一點。
我們將在累積增益圖中可視化上述模型。展現邏輯回歸的性能。
kds.metrics.plot_cumulative_gain(y_test.to_numpy(), prob_glm[:,1])
累積增益圖 | 商業價值機器學習模型
到目前為止看起來不錯,圖在預期線上,邏輯回歸模型介于我們討論的兩個極端模型之間。
累積增益圖的見解:
到目前為止,我們已經討論了模型、十分位數及其性能比較。讓我們在十分位數級別上進一步探討這一點,以更清楚地了解發生了什么以及我們如何更好地解釋這個過程。我們將在視覺效果的幫助下進行分析,這使它變得更加容易。kds 包有一個非常好的功能,可以在一行代碼中生成所有指標報告。
kds.metrics.report(y_test, prob_glm[:,1])
metrics report | Business value ML model
讓我們了解這些情節中的每一個。需要注意的是,所有圖的 x 軸都是十分位數。
讓我們用隨機森林再構建一個模型,看看結果如何。
clf_rf = RandomForestClassifier().fit(X_train, y_train)
prob_rf = clf_rf.predict_proba(X_test)
max_prob_rf = pd.DataFrame(np.amax(prob_rf, axis=1), columns = ['prob_rf'])
max_prob_rf['Decile_rank_rf'] = pd.cut(max_prob_rf['prob_rf'], 10, labels = np.arange(10,0, -1))
kds.metrics.plot_cumulative_gain(y_test.to_numpy(), prob_rf[:,1])
kds.metrics.report(y_test, prob_rf[:,1])
img
觀察:
業務場景
建議控制:在某些情況下,客戶有業務需求,即應始終生成最少 X 條建議。在這種情況下,我們可以通過考慮前 3 個十分位數而不是 2 個十分位數來獲得更大的建議,并且還可以對其他記錄進行精細控制。
衡量市場反應:推薦后分析和市場反應很容易衡量。例如,從前一點,我們可以單獨跟蹤來自十分位數 3 的所有額外推薦的表現。來自十分位數 3 的額外推送是否產生了任何影響(正面或負面)?
優化營銷支出:通過關注前 20-30% 的人群,企業可以節省時間、資源和金錢。以避免這些時間、資源和金錢會花費在無響應者或定位錯誤客戶上。
結語
技術有其一席之地,企業也有發言權。歸根結底,這一切都與技術帶來的商業價值有關。當這些收益用商業術語來解釋時,它總是會更有效。它不僅有助于從業務中獲得信心,而且還開辟了新的探索機會。
請注意,我們構建了兩個分類模型,但沒有研究我們通常為此類模型所做的 ROC 曲線、混淆矩陣、精度、召回率和其他標準指標。強烈建議跟蹤和測量這些指標以評估模型的性能,然后遵循此文中的十分位數方法。根據目標受眾和目標,使用最適合目標的方法。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25