Python 3.x 如何在Scikit Learn中获取GridSearchCV()的OneVsRestClassifier(LinearSVC())的估计器键引用?

Python 3.x 如何在Scikit Learn中获取GridSearchCV()的OneVsRestClassifier(LinearSVC())的估计器键引用?,python-3.x,machine-learning,scikit-learn,grid-search,Python 3.x,Machine Learning,Scikit Learn,Grid Search,我正在scikit学习中对GridSearchCV的超参数进行网格搜索 这就是我如何准备要搜索的ML算法及其相关参数的方法。LogisticRegression()和RandomForestClassifier()分别使用正确的估计器键LogisticRegression\uuu和RandomForestClassifier\uuu指定 ml_algo_param_dict = \ { 'LR_OVR': {'clf': LogisticRegression(

我正在scikit学习中对
GridSearchCV
的超参数进行网格搜索

这就是我如何准备要搜索的ML算法及其相关参数的方法。
LogisticRegression()
RandomForestClassifier()
分别使用正确的估计器键
LogisticRegression\uuu
RandomForestClassifier\uuu
指定

ml_algo_param_dict = \
                {   'LR_OVR': {'clf': LogisticRegression(),
                                'param': [{
                                    'logisticregression__solver': ['lbfgs', 'liblinear'],
                                    'logisticregression__penalty': ['l2'],
                                    'logisticregression__C': [0.1, 1, 10],
                                    'logisticregression__class_weight': [None],
                                    'logisticregression__multi_class': ['ovr'],
                                    'logisticregression__max_iter': [1000, 4000],
                                }, {
                                    'logisticregression__solver': ['newton-cg'],
                                    'logisticregression__penalty': ['l2'],
                                    'logisticregression__C': [0.1, 1, 10],
                                    'logisticregression__class_weight': [None],
                                    'logisticregression__multi_class': ['ovr'],
                                    'logisticregression__max_iter': [1000, 4000],
                                }]},
                    'RF_OVR': {'clf': RandomForestClassifier(),
                                'param': [{
                                    'randomforestclassifier__n_estimators': [100],
                                    'randomforestclassifier__max_depth': [150, 200],
                                    'randomforestclassifier__random_state': [888],
                                }]},
                    'SVC_OVR': {'clf': OneVsRestClassifier(LinearSVC()),
                                'param': [{
                                        'onevsrestclassifier_linearsvc__C': [100],
                                        'onevsrestclassifier_linearsvc__max_iter': [400, 6000],
                                }]},
但是关于
OneVsRestClassifier(LinearSVC())
呢?我尝试了很多方法(例如,
onevsrestclassifier\u linearsvc\uuuu
onevsrestclassifier\uuu
linearsvc\uu
),但不断得到错误
使用估计器检查可用参数列表。获取参数().keys()
。如何找到正确的估计键


添加以下代码以显示dict的使用方式

transformer_num = Pipeline(steps=[
    ('imputer', SimpleImputer(strategy='median')),
    ('scaler', StandardScaler())])

transformer_cat = Pipeline(steps=[
    ('imputer', SimpleImputer(strategy='constant', fill_value='')),
    ('onehotencoder', OneHotEncoder(handle_unknown='ignore'))])

preprocessor = ColumnTransformer(
    transformers=[
        ('num', transformer_num, feature_list_num),
        ('cat', transformer_cat, feature_list_cat),
        ])

for algo_key, algo_val in ml_algo_param_dict.items():
    f1 = make_scorer(f1_score , average='micro')
    pipe = make_pipeline(preprocessor, algo_val['clf'])
    grid = GridSearchCV(pipe, algo_val['param'], n_jobs=-1, cv=5, scoring=f1, refit=True)
    grid.fit(X_train, y_train)

我试过
'onevsrestclassifier\u linearsvc\uuu C','onevsrestclassifier\u linearsvc\uu C','onevsrestclassifier\uu linearsvc\uu C','onevsrestclassifier\uu linearsvc\uu C','onevsrestclassifier\u linearsvc\uu linearsvc','onevsrestclassifier\u linearsvc\uu估计器\uu C','estimator\uu C'
,但是所有人都给了我同样的错误
请使用“estimator.get_params().keys()”
检查可用参数列表以下是正常工作的引用命名:

'SVC_OVR': {'clf': OneVsRestClassifier(LinearSVC()),
            'param': [{
                'onevsrestclassifier__estimator__C': [1, 10],
                'onevsrestclassifier__estimator__max_iter': [10000],
                      }]},