python连续计算一百次随机森林各特征重要性并保存在csv文件中
时间: 2024-02-11 08:11:50 浏览: 55
好的,可以使用`sklearn`中的`RandomForestRegressor`或者`RandomForestClassifier`进行随机森林的计算,同时使用`pandas`库进行CSV文件的保存。
以下是实现代码:
```python
import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestRegressor
# 定义特征数和随机森林数
n_features = 10
n_estimators = 100
# 随机生成特征数据
X = np.random.rand(1000, n_features)
# 随机生成目标数据
y = np.random.rand(1000)
# 定义特征名称
feature_names = [f'feature_{i}' for i in range(n_features)]
# 定义CSV文件名
csv_file = 'feature_importance.csv'
# 初始化CSV文件,写入表头
df = pd.DataFrame(columns=feature_names)
df.to_csv(csv_file, index=False)
# 循环计算随机森林的特征重要性
for i in range(n_estimators):
# 训练随机森林模型
model = RandomForestRegressor(n_estimators=1, max_depth=None)
model.fit(X, y)
# 获取特征重要性
feature_importance = model.feature_importances_
# 将特征重要性添加到DataFrame中
df = pd.DataFrame([feature_importance], columns=feature_names)
# 将DataFrame写入CSV文件中
df.to_csv(csv_file, index=False, mode='a', header=False)
print('特征重要性已保存至CSV文件中。')
```
执行后,会在当前目录下生成一个名为`feature_importance.csv`的CSV文件,其中每一行代表一个随机森林的特征重要性,共有100行,每行有10个特征重要性值。
阅读全文