x1_train,x1_test,y1_train,y1_test=model_selection.train_test_split(df2[predictors], df2['睡眠质量'],test_size=0.2, random_state=1234) x1_train=x1_train[['年龄','睡眠时长','身体活动水平','压力水平','心率','每日步数','occupation_会计师','occupation_律师','occupation_科学家','occupation_老师','occupation_营业员','occupation_销售代表','BMI_超重','睡眠障碍_失眠']] x1_test=x1_test[['年龄','睡眠时长','身体活动水平','压力水平','心率','每日步数','occupation_会计师','occupation_律师','occupation_科学家','occupation_老师','occupation_营业员','occupation_销售代表','BMI_超重','睡眠障碍_失眠']] regressor = RandomForestRegressor(n_estimators=100, max_depth=5) regressor.fit(x1_train, y1_train) y1_pred = regressor.predict(x1_test) print('Mean squared error:', mean_squared_error(y1_test, y1_pred)) print('R-squared:', r2_score(y1_test, y1_pred)) df2.head()怎么求各变量的系数和对因变量的影响程度
时间: 2023-08-16 21:09:41 浏览: 82
在随机森林回归模型中,由于每个决策树的结构和特征选择都是随机的,因此不会直接得到每个特征对目标变量的系数,以及每个特征对目标变量的影响程度。
不过,在随机森林模型中,可以通过特征重要性(Feature Importance)来评估每个特征对模型的贡献程度,从而间接地了解每个特征对目标变量的影响。特征重要性可以通过模型的feature_importances_属性获取,该属性返回一个数组,其中每个元素表示对应特征的重要性得分。在sklearn库中,可以使用以下代码获取特征重要性:
```python
importance = regressor.feature_importances_
```
其中,regressor为随机森林回归模型,importance为特征重要性数组。
可以将特征重要性得分进行排序,从而得到每个特征对目标变量的影响程度。具体来说,对于每个特征,重要性得分越高,说明该特征对目标变量的影响越大。以下是一个示例代码,用于获取每个特征的重要性得分并进行排序:
```python
feat_importances = pd.Series(regressor.feature_importances_, index=x1_train.columns)
feat_importances = feat_importances.sort_values(ascending=False)
print(feat_importances)
```
其中,feat_importances为一个Series类型的对象,包含每个特征的重要性得分。在这个示例中,我们将特征重要性得分按降序排列,并打印输出。
阅读全文