Answers:
“通过回归通过回归来解决分类问题。”我假设您的意思是线性回归,并且我将将此方法与拟合逻辑回归模型的“分类”方法进行比较。
在此之前,弄清回归模型和分类模型之间的区别很重要。回归模型预测连续变量,例如降雨量或日照强度。他们还可以预测概率,例如图像包含猫的概率。通过强加决策规则,可以将概率预测回归模型用作分类器的一部分-例如,如果概率为50%或更高,则将其确定为猫。
Logistic回归可预测概率,因此是一种回归算法。但是,它通常被描述为机器学习文献中的一种分类方法,因为它可以(并且经常)用于制作分类器。还有“真正的”分类算法,例如SVM,它们只能预测结果而不提供概率。我们将不在这里讨论这种算法。
就像Andrew Ng解释的那样,通过线性回归,您可以通过数据拟合多项式-例如,像下面的示例一样,我们通过{肿瘤大小,肿瘤类型}样本集拟合直线:
以上,恶性肿瘤为,非恶性肿瘤为,绿线是我们的假设。为了做出预测,我们可以说对于任何给定的肿瘤大小,如果大于我们就可以预测恶性肿瘤,否则我们就可以预测良性。
看起来我们可以正确地预测每个训练集样本,但是现在让我们稍微更改一下任务。
直观上看,所有大于某个阈值的肿瘤都是恶性的。因此,让我们添加另一个具有巨大肿瘤大小的样本,然后再次运行线性回归:
现在我们的不再起作用。为了保持正确的预测,我们需要将其更改为或类似的值-但这不是算法的工作原理。
每当新样本到达时,我们就无法更改假设。相反,我们应该从训练集数据中学习它,然后(使用我们学习的假设)对我们之前从未见过的数据做出正确的预测。
希望这可以解释为什么线性回归不是最适合分类问题的原因!另外,您可能想观看VI。逻辑回归。ml-class.org上的分类视频,详细介绍了该想法。
编辑
概率逻辑问一个好的分类器会做什么。在这个特定的例子中,您可能会使用逻辑回归来学习这样的假设(我只是在做这个):
请注意,线性回归和逻辑回归都为您提供一条直线(或一个高阶多项式),但是这些线的含义不同:
因此,底线是,在分类的场景中,我们使用一个完全不同的推理和一个完全不同的算法比回归方案。
我想不出分类实际上是最终目标的例子。几乎总是真正的目标是做出准确的预测,例如概率。本着这种精神,(逻辑)回归是您的朋友。
为什么不看一些证据呢?尽管许多人认为线性回归不适用于分类,但它可能仍然有效。为了获得一些直觉,我在scikit-learn的分类器比较中包括了线性回归(用作分类器)。这是发生了什么:
决策边界比其他分类器窄,但准确性相同。与线性支持向量分类器非常相似,回归模型为您提供了一个在特征空间中分隔类的超平面。
如我们所见,使用线性回归作为分类器是可行的,但与往常一样,我将交叉验证这些预测。
作为记录,这是我的分类器代码的样子:
class LinearRegressionClassifier():
def __init__(self):
self.reg = LinearRegression()
def fit(self, X, y):
self.reg.fit(X, y)
def predict(self, X):
return np.clip(self.reg.predict(X),0,1)
def decision_function(self, X):
return np.clip(self.reg.predict(X),0,1)
def score(self, X, y):
return accuracy_score(y,np.round(self.predict(X)))