【问题标题】:How can the output of a model be displayed?如何显示模型的输出?
【发布时间】:2016-01-20 19:05:15
【问题描述】:

我正在执行一项机器学习任务,其中我使用逻辑回归进行主题分类。

如果这是我的代码:

model= LogisticRegression()
model= model.fit(mat_tmp, label_tmp)

y_train_pred = model.predict(mat_tmp_test)

print(metrics.accuracy_score(label_tmp_test, y_train_pred))

有没有一种方法可以输出模型内部到底发生了什么。就像我的模型正在做什么的一个工作示例一样?比如可能显示 2-3 个文档以及它们是如何分类的?

【问题讨论】:

  • 您可以使用predict 方法获得预测,但是2-3 个数据点的分类示例与“模型内部发生的确切情况”有很大不同。您不知道模型对您选择的 2-3 个文档的行为是否能代表其一般行为。
  • 你需要更具体地说明你想要什么:描述它并举一三个例子。 “我的模型在做什么”并不具体。您需要什么级别的详细信息?您是否要求对内部流程进行某种跟踪?在我看来,您想要的输出打破了模型的“黑盒”范式。另请注意,此操作根据实现的算法而有所不同。

标签: python machine-learning scikit-learn logistic-regression


【解决方案1】:

为了充分了解模型中发生的情况,您必须首先花一些时间研究逻辑回归算法(例如,从讲义或Wikipedia)。与其他监督技术一样,逻辑回归具有超参数和参数。超参数基本上指定了您的算法如何运行,您必须在初始化时提供(即在它看到任何数据之前)。例如,您可能有关于类分布的先验信息,这将是一个超参数。参数是从您的数据中“学习”的。

一旦您了解了算法,有趣的问题将是您的模型的参数是什么(回想一下,这些参数是从数据中检索出来的)。通过访问documentation,您可以在属性部分发现该分类器有3个参数,您可以通过它们的字段名称访问它们。

如果您对这些细节不感兴趣,而只想评估分类器的准确性,那么一个有用的技术是交叉验证。您将标记数据分成 k 个大小相等的子集,并使用其中的 k-1 个子集训练分类器。然后,您在剩余的 1 个子集上评估经过训练的分类器并计算准确度(即可以正确预测的数据比例)。这种方法有其缺点,但总体上证明非常有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 1970-01-01
    相关资源
    最近更新 更多