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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > ChatGpt >内容正文

ChatGpt

【机器学习】关于机器学习模型可解释(XAI),再分享一招!

發(fā)布時(shí)間:2025/3/12 ChatGpt 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】关于机器学习模型可解释(XAI),再分享一招! 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

隨著時(shí)間的推移,學(xué)習(xí)模型變得越來(lái)越復(fù)雜,很難直觀地分析它們。人們經(jīng)常聽說(shuō)機(jī)器學(xué)習(xí)模型是"黑匣子",從某種意義上說(shuō),它們可以做出很好的預(yù)測(cè),但我們無(wú)法理解這些預(yù)測(cè)背后的邏輯。這種說(shuō)法是正確的,因?yàn)榇蠖鄶?shù)數(shù)據(jù)科學(xué)家發(fā)現(xiàn)很難從模型中提取見(jiàn)解。然而,我們可以使用一些工具從復(fù)雜的機(jī)器學(xué)習(xí)模型中提取見(jiàn)解。

上一篇文章中我已分享了一篇文章:再見(jiàn)"黑匣子模型"!SHAP 可解釋 AI (XAI)實(shí)用指南來(lái)了!該篇文章主要介紹了關(guān)于回歸問(wèn)題的模型可解釋性。

本文是關(guān)于如何使用sklearn.tree.plot_tree ,來(lái)獲得模型可解釋性的方法說(shuō)明。決策樹本身就是一種可解釋的機(jī)器學(xué)習(xí)算法,廣泛應(yīng)用于線性和非線性模型的特征重要性。它是一個(gè)相對(duì)簡(jiǎn)單的模型,通過(guò)可視化樹很容易解釋。

import?numpy?as?np from?sklearn?import?tree from?sklearn.tree?import?DecisionTreeClassifier import?matplotlib.pylab?as?plt from?sklearn?import?datasets,?ensemble,?model_selection from?sklearn.ensemble?import?RandomForestClassifier

在此示例中,我們將使用來(lái)自 sklearn 數(shù)據(jù)集的乳腺癌示例。這是一個(gè)簡(jiǎn)單的二進(jìn)制(惡性,良性)分類問(wèn)題,從乳腺腫塊的細(xì)針抽吸(FNA)的數(shù)字化圖像計(jì)算特征,它們描述了圖像中細(xì)胞核的特征。

#?import?data?and?split cancer?=?datasets.load_breast_cancer() X_train,?X_test,?y_train,?y_test?=?model_selection.train_test_split(cancer.data,?cancer.target,?random_state=0)

拆分?jǐn)?shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)試后,使用tree.DecisionTreeClassifier() 建立分類模型。

#?model?and?fit cls_t?=?tree.DecisionTreeClassifier() cls_t.fit(X_train,?y_train);

現(xiàn)在,為了對(duì)模型有一個(gè)基本的印象,我建議可視化特性的重要性。特征重要性的計(jì)算方法是通過(guò)節(jié)點(diǎn)到達(dá)該節(jié)點(diǎn)的概率加權(quán)節(jié)點(diǎn)雜質(zhì)的減少量。節(jié)點(diǎn)概率可以通過(guò)到達(dá)節(jié)點(diǎn)的樣本數(shù)除以樣本總數(shù)來(lái)計(jì)算。值越高,特征越重要。最重要的特征將在樹中更高。單個(gè)特征可以用于樹的不同分支,特征重要性則是其在減少雜質(zhì)方面的總貢獻(xiàn)。

importances?=?cls_t.feature_importances_ indices?=?np.argsort(importances) features?=?cancer.feature_names plt.title('Feature?Importances') j?=?11#?top?j?importance plt.barh(range(j),?importances[indices][len(indices)-j:],?color='g',?align='center') plt.yticks(range(j),?[features[i]?for?i?in?indices[len(indices)-j:]]) plt.xlabel('Relative?Importance') plt.show() cls_t.feature_importances_

在這種情況下,僅使用前 13 個(gè)特征,未使用其他特征,表明它們的重要性是零。

讓我們將決策樹的前三層進(jìn)行可視化,max_depth=3。

#?visualization fig?=?plt.figure(figsize=(16,?8)) vis?=?tree.plot_tree(cls_t,?feature_names?=?cancer.feature_names,?class_names?=?['Benign',?'Malignant'],?max_depth=3,?fontsize=9,?proportion=True,?filled=True,?rounded=True) 決策樹可視化:max_depth+3
關(guān)于模型我們能了解到什么?

首先,我們可以看到每個(gè)決策級(jí)別使用的特性的名稱和條件的拆分值。如果一個(gè)樣本滿足條件,那么它將轉(zhuǎn)到左分支,否則它將轉(zhuǎn)到右分支。

每個(gè)節(jié)點(diǎn)中的samples行顯示當(dāng)前節(jié)點(diǎn)中正在檢查的樣本數(shù)。如果proporty=True,則samples行中的數(shù)字以總數(shù)據(jù)集的%為單位。

每個(gè)節(jié)點(diǎn)中的值行告訴我們?cè)摴?jié)點(diǎn)中有多少個(gè)樣本屬于每個(gè)類,順序是當(dāng)比例=False時(shí),樣本的比例=True時(shí)。這就是為什么在每個(gè)節(jié)點(diǎn)中,value中的數(shù)字加起來(lái)等于value中顯示的數(shù)字,表示proportion=False,1表示proportion=True。

max_depth=8 的決策樹可視化

在類行中我們可以看到節(jié)點(diǎn)的分類結(jié)果。

基尼分?jǐn)?shù)是量化節(jié)點(diǎn)純度的度量,類似于熵。基尼系數(shù)大于零意味著該節(jié)點(diǎn)中包含的樣本屬于不同的類。在上圖中,葉子的基尼分?jǐn)?shù)為零,這意味著每個(gè)葉子中的樣本屬于一個(gè)類。請(qǐng)注意,當(dāng)純度較高時(shí),節(jié)點(diǎn)/葉子的顏色較深。

決策樹代理模型

一種解釋“黑匣子”模型全局行為的流行方法是應(yīng)用全局代理模型。全局代理模型是一種可解釋的模型,經(jīng)過(guò)訓(xùn)練以近似黑盒模型的預(yù)測(cè)。我們可以通過(guò)解釋代理模型來(lái)得出關(guān)于黑盒模型的結(jié)論。通過(guò)使用更多機(jī)器學(xué)習(xí)解決機(jī)器學(xué)習(xí)可解釋性問(wèn)題!

訓(xùn)練代理模型是一種與模型無(wú)關(guān)的方法,因?yàn)樗恍枰P(guān)于黑盒模型內(nèi)部工作的任何信息,只需要訪問(wèn)數(shù)據(jù)和預(yù)測(cè)函數(shù)。這個(gè)想法是我們采用我們的“黑匣子”模型并使用它創(chuàng)建預(yù)測(cè)。然后我們根據(jù)“黑盒”模型和原始特征產(chǎn)生的預(yù)測(cè)訓(xùn)練一個(gè)透明模型。請(qǐng)注意,我們需要跟蹤代理模型與“黑盒”模型的近似程度,但這通常不容易確定。

隨機(jī)森林分類器是一種常用的模型,用于解決決策樹模型往往存在的過(guò)擬合問(wèn)題。結(jié)果在測(cè)試集上具有更好的準(zhǔn)確性,但它是

clf?=?RandomForestClassifier(random_state=42,?n_estimators=50,?n_jobs=-1) clf.fit(X_train,?y_train);

使用模型創(chuàng)建預(yù)測(cè)(在本例中為 RandomForestClassifier)

predictions?=?clf.predict(X_train)

然后使用預(yù)測(cè)將數(shù)據(jù)擬合到?jīng)Q策樹分類器。

cls_t?=?tree.DecisionTreeClassifier() cls_t.fit(X_train,?predictions);

可視化

#?visualization fig?=?plt.figure(figsize=(16,?8)) vis?=?tree.plot_tree(cls_t,?feature_names?=?cancer.feature_names,?class_names?=?['Benign',?'Malignant'],?max_depth=3,?fontsize=9,?proportion=True,?filled=True,?rounded=True)

就是這樣!即使我們無(wú)法輕易理解森林中數(shù)百棵樹的外觀,我們也可以構(gòu)建一個(gè)淺層決策樹,并希望了解森林的工作原理。

最后,測(cè)量代理模型復(fù)制黑盒模型預(yù)測(cè)的程度。衡量代理復(fù)制黑盒模型的好壞的一種方法是R平方度量。

cls_t.score(X_train,?predictions)
提示

如果你使用 pycharm 創(chuàng)建模型,則可以使用 pickle 將其導(dǎo)出到j(luò)upyter notebook。

模型輸出:

import?pickle #?dump?information?to?that?file with?open('model','wb')?as?outfile:pickle.dump(cls_t,?outfile)

模型導(dǎo)入:

import?pickle #?load?information?from?that?file with?open('model','rb')?as?inputfile:modell?=?pickle.load(inputfile)

概括

解釋“黑匣子”機(jī)器學(xué)習(xí)模型對(duì)于它們成功適用于許多現(xiàn)實(shí)世界問(wèn)題非常重要。sklearn.tree.plot_tree 是一個(gè)可視化工具,可以幫助我們理解模型。或者換句話說(shuō),機(jī)器(模型)從這些特征中學(xué)到了什么?它符合我們的期望嗎?我們能否通過(guò)使用有關(guān)問(wèn)題的領(lǐng)域知識(shí)添加更復(fù)雜的特征來(lái)幫助機(jī)器學(xué)習(xí)?使用決策樹可視化可以幫助我們直觀地評(píng)估模型的正確性,甚至可能對(duì)其進(jìn)行改進(jìn)。

往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯溫州大學(xué)《機(jī)器學(xué)習(xí)課程》視頻 本站qq群851320808,加入微信群請(qǐng)掃碼:

總結(jié)

以上是生活随笔為你收集整理的【机器学习】关于机器学习模型可解释(XAI),再分享一招!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。