ML之PFI(eli5):基于mpg汽車油耗資料集利用RF随機森林算法和PFI置換特征重要性算法實作模型特征可解釋性排序
目錄
基于mpg資料集利用RF随機森林算法和PFI置換特征重要性算法實作模型特征可解釋性排序
# 1、定義資料集
# 2、資料集預處理
# 3、模型建立和訓練
# 3.1、資料集切分
# 4、對模型進行PFI可視化
# T1、基于模型本身的解釋—如随機森林樹模型,但模型可能會存在偏差
# T2、基于模型度量的解釋—PFI置換特征重要性并可視化
基于mpg汽車油耗資料集利用RF随機森林算法和PFI置換特征重要性算法實作模型特征可解釋性排序
# 1、定義資料集
mpg | cylinders | displacement | horsepower | weight | acceleration | model_year | origin | name |
18 | 8 | 307 | 130 | 3504 | 12 | 70 | usa | chevrolet chevelle malibu |
15 | 8 | 350 | 165 | 3693 | 11.5 | 70 | usa | buick skylark 320 |
18 | 8 | 318 | 150 | 3436 | 11 | 70 | usa | plymouth satellite |
16 | 8 | 304 | 150 | 3433 | 12 | 70 | usa | amc rebel sst |
17 | 8 | 302 | 140 | 3449 | 10.5 | 70 | usa | ford torino |
# 2、資料集預處理
before (398, 9)
mpg cylinders displacement ... model_year origin name
0 18.0 8 307.0 ... 70 usa chevrolet chevelle malibu
1 15.0 8 350.0 ... 70 usa buick skylark 320
2 18.0 8 318.0 ... 70 usa plymouth satellite
3 16.0 8 304.0 ... 70 usa amc rebel sst
4 17.0 8 302.0 ... 70 usa ford torino
[5 rows x 9 columns]
after dropna and drop (392, 8)
mpg cylinders displacement ... acceleration model_year origin
0 18.0 8 307.0 ... 12.0 70 usa
1 15.0 8 350.0 ... 11.5 70 usa
2 18.0 8 318.0 ... 11.0 70 usa
3 16.0 8 304.0 ... 12.0 70 usa
4 17.0 8 302.0 ... 10.5 70 usa
# 3、模型建立和訓練
# 3.1、資料集切分
X_feature_ns: ['mpg', 'cylinders', 'displacement', 'horsepower', 'weight', 'acceleration', 'model_year']
# 4、對模型進行PFI可視化
# T1、基于模型本身的解釋—如随機森林樹模型,但模型可能會存在偏差
<style>
table.eli5-weights tr:hover {
filter: brightness(85%);
}
</style>
<table class="eli5-weights eli5-feature-importances" style="border-collapse: collapse; border: none; margin-top: 0em; table-layout: auto;">
<thead>
<tr style="border: none;">
<th style="padding: 0 1em 0 0.5em; text-align: right; border: none;">Weight</th>
<th style="padding: 0 0.5em 0 0.5em; text-align: left; border: none;">Feature</th>
</tr>
</thead>
<tbody>
<tr style="background-color: hsl(120, 100.00%, 80.00%); border: none;">
<td style="padding: 0 1em 0 0.5em; text-align: right; border: none;">
0.2846
± 0.2878
</td>
<td style="padding: 0 0.5em 0 0.5em; text-align: left; border: none;">
displacement
</td>
</tr>
<tr style="background-color: hsl(120, 100.00%, 85.66%); border: none;">
<td style="padding: 0 1em 0 0.5em; text-align: right; border: none;">
0.1770
± 0.2423
</td>
<td style="padding: 0 0.5em 0 0.5em; text-align: left; border: none;">
weight
</td>
</tr>
<tr style="background-color: hsl(120, 100.00%, 86.61%); border: none;">
<td style="padding: 0 1em 0 0.5em; text-align: right; border: none;">
0.1604
± 0.1535
</td>
<td style="padding: 0 0.5em 0 0.5em; text-align: left; border: none;">
horsepower
</td>
</tr>
<tr style="background-color: hsl(120, 100.00%, 87.85%); border: none;">
<td style="padding: 0 1em 0 0.5em; text-align: right; border: none;">
0.1397
± 0.1684
</td>
<td style="padding: 0 0.5em 0 0.5em; text-align: left; border: none;">
mpg
</td>
</tr>
<tr style="background-color: hsl(120, 100.00%, 89.82%); border: none;">
<td style="padding: 0 1em 0 0.5em; text-align: right; border: none;">
0.1085
± 0.0800
</td>
<td style="padding: 0 0.5em 0 0.5em; text-align: left; border: none;">
acceleration
</td>
</tr>
<tr style="background-color: hsl(120, 100.00%, 92.40%); border: none;">
<td style="padding: 0 1em 0 0.5em; text-align: right; border: none;">
0.0715
± 0.0545
</td>
<td style="padding: 0 0.5em 0 0.5em; text-align: left; border: none;">
model_year
</td>
</tr>
<tr style="background-color: hsl(120, 100.00%, 93.41%); border: none;">
<td style="padding: 0 1em 0 0.5em; text-align: right; border: none;">
0.0583
± 0.1736
</td>
<td style="padding: 0 0.5em 0 0.5em; text-align: left; border: none;">
cylinders
</td>
</tr>
</tbody>
</table>