这是我的代码的一部分:

def ml_pipeline(self):
    if self.control_panel['ml_pipeline_switch']:
        self.model = make_pipeline(self.preprocessor, self.control_panel['ml_algo'][1])
        self.model.fit(self.X_train, self.y_train)

def ml_pipeline_result(self, show_control_panel_switch=True): 
    if self.control_panel['ml_pipeline_switch']:
        print('Model score (training set): %.3f' % self.model.score(self.X_train, self.y_train))
        print('Model score (test set): %.3f' % self.model.score(self.X_test, self.y_test))

score()似乎可以提高准确性。 如何与其他性能指标(例如F1-macrorecall-macro交换准确性? 我在文件中找不到任何东西。

#1楼 票数:1

对这个问题的简短回答是“否”,除非您逐步破解并重新定义/覆盖scikit-learn函数。

当您使用pipe.score() ,它将从位于管道末尾的分类器中调用score方法。

现在,什么是引擎盖下发生的是,在所有分类scikit-learn是基于ClassifierMixin类,为此.score()是通过定义accuracy_score ,这是硬编码(见这里 )。

  ask by KubiK888 translate from so

未解决问题?本站智能推荐:

2回复

如何仅执行 scikit-learn 管道的特定部分?

以下是与问题相关的部分代码。 如果需要完整代码,这里有一个完整的可复制代码,也可以下载数据: https : //github.com/ageron/handson-ml2/blob/master/02_end_to_end_machine_learning_project.ipynb 我有一个管
2回复

如何访问管道中包含的模型中的最佳估计器参数?

我有以下 sklearn 管道: 里面有一个经过训练的模型,其中的参数是使用GridSearchCV优化的。 带有管道的模型被保存到泡菜中。 我正在使用pickle.load()来读回它,但现在我只是不知道如何访问GridSearchCV找到的最佳参数。 请有人指出我正确的方向吗? 如果无法
1回复

管道错误(ValueError:仅pandas DataFrames 支持使用字符串指定列)

该示例是完全可重现的。 这是完整的笔记本(也下载数据): https : //github.com/ageron/handson-ml2/blob/master/02_end_to_end_machine_learning_project.ipynb 在上面笔记本中的这一部分之后: 我正在尝试
1回复

如何在 scikit-learn 或 Neuraxle 中并行运行 2 个管道?

我想用neuraxle创建一个简单的管道(我知道我可以使用其他库,但我想使用neuraxle ),我想在其中清理数据、拆分数据、训练 2 个模型并进行比较。 我希望我的管道做这样的事情: p = Pipeline([ PreprocessData(), SplitData(),
3回复

如何在scikit-learn中对管道中的转换参数进行网格搜索

我的目标是使用一种模型选择最重要的变量,使用另一种模型使用这些变量进行预测。 在下面的示例中,我使用了两个RandomForestClassifiers,但是第二个模型可以是任何其他分类器。 RF具有带有阈值自变量的变换方法。 我想对不同的可能阈值参数进行网格搜索。 这是一个简化
2回复

在 CalibratedClassifierCV 中使用管道分类器

我正在尝试训练 XGBoost 分类器。 目标变量y是二进制的。 数据(找不到样本数据集来使其完全可重现。对此表示抱歉)。 X_train, X_validate, X_test (包含数值和分类数据) y_train, y_validate, y_test (值为二进制 1/0)。 预
1回复

带有混合类型功能的scikit学习分类器对测试数据的准确性为0%

我是机器学习和python的新手。 我想使用sklearn中的DecisionTreeClassifier。 由于我的特征既是数字特征又是类别特征,因此我需要对其进行转换,因为DecisionTreeClassifier仅接受数字特征作为输入。 为此,我使用了ColumnTransform
1回复

如何在Scikit-learn中使用不同的数据重新训练管道?

我使用流水线进行机器学习模型训练,使用Python和sklearn对所有历史数据的子集(省略测试集)进行了K折交叉验证,方法如下: 到目前为止,一切都很好。 但是,最后,我想在我的完整X和y上重新训练获胜的管道超参数组合,而无需任何交叉验证。 我怎么有这个? 再次简单地使用CV.fit(X, y