当我使用管道预处理、训练和测试线性 svc 时,如何获得最重要的特征系数?

How to get most important feature coefficients when i used pipeline to preprocess, train and test the linear svc?

我正在使用 LinearSVC,我使用列转换器对数字和分类数据进行了预处理,然后使用了管道。我使用 GridSearchCV 为模型获取最佳参数,如您所见,我稍后将其放入管道中。 我也适合,测试并获得了分数,但我想知道最重要的特征系数。

到目前为止,我已经尝试了“clf.coef_”,因为分类器步骤在管道中被命名为 clf,但我收到一条消息说 clf 未定义。 我也试过 gridf.coef_,pipefinal.steps[1].coef_ 但没有任何效果。 因此,我们将不胜感激在这方面的任何帮助。谢谢

preprocessing=ColumnTransformer([('hot',OneHotEncoder(),categ),('scale',StandardScaler(),num)],n_jobs=-1)
pipefinal=Pipeline([('pre',preprocessing),('clf',LinearSVC(max_iter=100000,C=0.1))])
gridf=GridSearchCV(pipefinal,param_grid={},cv=10)
gridf.fit(X_train,y_train)
gridf.score(X_val,y_val)

GridSearchCV 将在您调用 fit() 方法后通过其 best_estimator_ 属性提供最佳估计器。由于您的估算器是一个 Pipeline 对象,因此您必须进一步下标它才能访问分类器。然后,您可以访问其 coef_ 属性。在你的情况下,那将是:

gridf.best_estimator_['clf'].coef_