FI-RF计算特征重要性python,注意,我的目标是连续值
时间: 2024-02-11 19:39:13 浏览: 23
的回归问题。
可以使用随机森林回归模型来计算特征重要性。
首先,需要导入必要的库和数据集:
```python
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
data = pd.read_csv('dataset.csv') # 加载数据集
X = data.drop(['target'], axis=1) # 特征变量
y = data['target'] # 目标变量
```
然后,可以使用随机森林回归模型进行训练和预测,并计算特征重要性:
```python
rf = RandomForestRegressor(n_estimators=100, random_state=42) # 随机森林回归模型
rf.fit(X, y) # 训练模型
y_pred = rf.predict(X) # 预测目标变量
# 计算均方误差
mse = mean_squared_error(y, y_pred)
# 计算特征重要性
importances = rf.feature_importances_
```
最后,可以将特征重要性和对应的特征名称组合起来,并按重要性从高到低排序:
```python
# 将特征重要性和特征名称组合起来
feature_importances = pd.DataFrame({'feature': X.columns, 'importance': importances})
# 按重要性从高到低排序
feature_importances = feature_importances.sort_values('importance', ascending=False).reset_index(drop=True)
print(feature_importances)
```
输出结果类似于:
```
feature importance
0 var1 0.257689
1 var2 0.179678
2 var3 0.109517
3 var4 0.084239
4 var5 0.071943
5 var6 0.062956
6 var7 0.056391
7 var8 0.042761
8 var9 0.025765
9 var10 0.009779
10 var11 0.000902
```