Python 如何访问GridSearchCV的SGDClassizer参数?

Python 如何访问GridSearchCV的SGDClassizer参数?,python,python-3.x,scikit-learn,Python,Python 3.x,Scikit Learn,我有这个函数来预测LinearSVM的分数: def predict(self, train_file: str, test_file: str, lower_case: bool) -> pd.DataFrame: "Train model using sklearn pipeline" from sklearn.model_selection import GridSearchCV from sklearn.svm import SV

我有这个函数来预测LinearSVM的分数:

    def predict(self, train_file: str, test_file: str, lower_case: bool) -> pd.DataFrame:
    "Train model using sklearn pipeline"
    from sklearn.model_selection import GridSearchCV
    from sklearn.svm import SVC
    from sklearn import svm
    from sklearn import preprocessing
    from sklearn.preprocessing import LabelEncoder, OneHotEncoder
    from sklearn.feature_extraction.text import TfidfVectorizer
    from sklearn.svm import LinearSVC
    train_df = self.read_data(train_file, lower_case)

    test_df = self.read_data(test_file, lower_case)
    parameters = {
        'vect__ngram_range': [(1, 1), (1, 2)],
        'tfidf__use_idf': (True, False),
        'clf__alpha': [0.0001, 0.001, 0.01, 1, 10, 100],

    }
    lr = SGDClassifier()
    print(lr.get_params().keys())
    gs_clf = GridSearchCV(self.pipeline, parameters, cv=5, n_jobs=-1)
    gs_clf = gs_clf.fit(train_df['text'], train_df['truth'])
    print(gs_clf.best_score_)
    for param_name in sorted(parameters.keys()):

        print("%s: %r" % (param_name, gs_clf.best_params_[param_name]))

    #estimator_svm.best_score_
    learner = self.pipeline.fit(train_df['text'], train_df['truth'])
    # Fit the learner to the test data
    test_df = self.read_data(test_file, lower_case)

    test_df['pred'] = learner.predict(test_df['text'])
    return test_df

但是当我打印它以获取密钥时,在这里,
print(lr.get_params().keys())
,它输出名称没有被定义。我想知道如何命名其他参数,以便测试它们。

假设您的错误消息为

NameError: name 'SGDClassifier' is not defined
在代码中,您必须为SGDClassizer添加缺少的导入:

from sklearn.linear_model import SGDClassifier
然后,
打印(lr.get_params().keys())
应该工作并返回以下输出:

dict_keys(['alpha', 'average', 'class_weight', 'early_stopping', 'epsilon', 'eta0', 'fit_intercept', 'l1_ratio', 'learning_rate', 'loss', 'max_iter', 'n_iter_no_change', 'n_jobs', 'penalty', 'power_t', 'random_state', 'shuffle', 'tol', 'validation_fraction', 'verbose', 'warm_start'])

假设您的错误消息是

NameError: name 'SGDClassifier' is not defined
在代码中,您必须为SGDClassizer添加缺少的导入:

from sklearn.linear_model import SGDClassifier
然后,
打印(lr.get_params().keys())
应该工作并返回以下输出:

dict_keys(['alpha', 'average', 'class_weight', 'early_stopping', 'epsilon', 'eta0', 'fit_intercept', 'l1_ratio', 'learning_rate', 'loss', 'max_iter', 'n_iter_no_change', 'n_jobs', 'penalty', 'power_t', 'random_state', 'shuffle', 'tol', 'validation_fraction', 'verbose', 'warm_start'])

为什么有些参数没有列出但我仍然可以使用?你的意思是什么?为什么有些参数没有列出但我仍然可以使用?你的意思是什么?