首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从改进线性回归中提取特征的重要性

从改进线性回归中提取特征的重要性
EN

Stack Overflow用户
提问于 2022-06-26 10:22:33
回答 2查看 30关注 0票数 0

我有以下代码:

代码语言:javascript
复制
modelClf = AdaBoostRegressor(base_estimator=LinearRegression(), learning_rate=2, n_estimators=427, random_state=42)

modelClf.fit(X_train, y_train)

当我试图解释和改进结果时,我想看到特性的重要性,但是我发现一个错误,就是线性回归并不能真正做到这一点。

好的,听起来很合理,所以我试着使用.coef_,因为它应该适用于线性回归,但它在适当的地方,结果与adaboost回归不兼容。

是否有任何方法可以找到特征的重要性,或者当它被用于线性回归时是不可能的?

EN

回答 2

Stack Overflow用户

发布于 2022-06-30 13:50:35

Issue12137建议使用coefs_添加对此的支持,尽管需要选择如何对负系数进行规范化。还有关于何时系数是非常重要的代表的问题是 (您至少应该首先缩放您的数据)。然后是关于什么时候自适应助推有助于线性模型的问题是

快速完成此操作的一种方法是修改LinearRegression类:

代码语言:javascript
复制
class MyLinReg(LinearRegression):
    @property
    def feature_importances_(self):
        return self.coef_  # assuming one output

modelClf = AdaBoostRegressor(base_estimator=MyLinReg(), ...)
票数 0
EN

Stack Overflow用户

发布于 2022-06-30 12:48:22

使用下面的代码检查,有一个特性重要性的属性:

代码语言:javascript
复制
import pandas as pd
import random 
from sklearn.ensemble import AdaBoostRegressor

df = pd.DataFrame({'x1':random.choices(range(0, 100), k=10), 'x2':random.choices(range(0, 100), k=10)})

df['y'] = df['x2'] * .5

X = df[['x1','x2']].values
y = df['y'].values

regr = AdaBoostRegressor(random_state=0, n_estimators=100)
regr.fit(X, y)

regr.feature_importances_

输出:您可以看到功能2更重要,因为Y只是其中的一半(因为数据是以这种方式创建的)。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72760721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档