pipeline
来源:10-9 多分类问题中的混淆矩阵
慕先生6474118
2018-06-13
老师,对于使用Pipeline构造多项式逻辑回归,有办法可以看到各个特征对应的系数coef吗?
4回答
-
liuyubobobo
2018-06-14
如果你不使用GridSearchCV,直接使用Pipeline进行训练的话,可以在创建 Pipeline 的外面创建LogisticRegression的对象log_reg。将这个log_reg传给Pipeline之后,在Pipeline训练以后,直接取log_reg的coef_即可。完整的代码示意如下图(省略模拟数据的创建过程):
但是如果你使用GridSearchCV进行网格搜索,则不一样。因为GridSearchCV内部要尝试不同的参数组合,所以会创建多个LogisticRegression的实例对象,而不会把最终结果存在你传的log_reg的实例中。所以对于GridSearchCV,在训练以后,应该调用best_estimator_(存放搜索后参数最优的那个Pipeline对象)中的named_steps数组(存放Pipeline中每一步的实例对象)相应log_reg那个名字的coef_。具体代码示例如下:
其实,named_steps数组是Pipeline的参数(此时,grid_search.best_estimator_)是Pipeline的一个对象。所以,其实在我说的第一种情况,不使用GridSearchCV进行网格搜索的时候,要想获得log_reg的coef_,也并不需要一定在Pipeline的外面创建LogisticRegression的实例对象,而同样可以使用named_steps的方式获得,有兴趣可以试试看,加深一下对Pipeline这个类的理解:)
加油!:)
112018-06-14 -
慕粉4186965
2019-07-08
但是对于name_steps得到的系数,差距有点大
012019-07-10 -
慕先生6474118
提问者
2018-06-13
或者 还是说一般逻辑回归对于线性的决策边界是白盒子;但是对于非线性的决策边界,即使是degree=3的简单情况,对于十几维的特征空间,引入多项式后维数也达到了很大的一个级别,这时是不是不方便看每个特征对应的系数,查看对结果的影响因子了?就也成黑盒子了;
00 -
慕先生6474118
提问者
2018-06-13
会报错
00
相似问题