即使只有一个class,有没有办法建立逻辑回归模型?

Is there a way to build a logistic regression model even if there is only one class?

有没有办法为 1 class 建立一个 scikit-learn 逻辑回归模型?显然,无论输入数据如何,该模型每次都会预测相同的 class。我的模型目前使用 liblinear 作为解算器,我不确定是否有其他解算器可以这样做?

我意识到这对 ML 来说是一个非常奇怪的问题,但我正在构建许多分层模型,在我的情况下,即使它每次都预测相同的 class,也更容易为每种情况建立一个模型。

背景:我有一个分层预测任务,我试图预测一个 9 位代码的三个部分(例如代码 = 001010424,第 1 部分 = 001,第 2 部分 = 01,第 3 部分 = 0424) .为此,我正在构建分层模型。我们首先使用输入数据预测第 1 部分,然后使用第 1 部分的最高置信度决策,我们在特定于第 1 部分代码的第 2 部分的模型中再次使用输入数据。因此,例如,如果我 运行 第 1 部分模型并得到第 1 部分 = 001 的预测,然后我转到第 2 部分模型 001 然后(训练并)预测第 2 部分给定第 1 部分 = 001 . 第 3 部分重复了这种分层行为。

Scitkit learn 需要至少两个 类.

的样本
  import numpy as np
  from sklearn.linear_model import LogisticRegression

  x = np.random.rand(5,2)
  y = np.ones(5).astype(int)
  model = LogisticRegression().fit(x, y)

这会产生错误:

  ValueError: This solver needs samples of at least 2 classes in the data, but the data contains only one class: 1

你最好让你的训练算法检查是否只有一个 y 标签,如果有,就让你的代码记住它。这样的实现似乎很容易实现,并且对于以后查看代码的任何人来说都更容易理解。