所有线性分类器的预测算法是否完全相同?

数据挖掘 神经网络 线性回归 支持向量机 朴素贝叶斯分类器 感知器
2021-10-14 01:19:04

所有线性分类器和线性回归算法的预测算法是否完全相同?

众所周知,任何线性分类器都可以描述为: y = w1*x1 + w2*x2 + ... + c

在此处输入图像描述

确定线性分类器参数的方法有两大类(生成式和判别式): https ://en.wikipedia.org/wiki/Linear_classifier

  1. 线性判别分析(或Fisher线性判别),朴素贝叶斯分类器
  2. 逻辑回归、感知器、支持向量机

问题:线性分类器是否真的只在学习算法上有所不同,但在预测期间y = w1*x1 + w2*x2 + ... + c它们是否相同

  • 如果我使用一种方法进行训练(例如具有线性核函数的 SVM),那么我是否可以使用其他方法进行预测(例如感知器)具有相同的输出结果?

  • 我可以这样做吗,如果我使用 SVR(具有线性核函数的支持向量回归)进行训练,那么我可以使用感知器作为预测值的线性回归方法吗?

4个回答

线性分类器是否真的只在学习算法上有所不同,但在预测 y = w1*x1 + w2*x2 + ... + c 期间它们是否相同?

是的,所有参数线性分类器都试图预测同一方程的权重y=w1x1+w2x2+...+c并且他们尝试优化成本函数的方式不同。

如果我使用一种方法进行训练(例如具有线性核函数的 SVM),那么我是否可以使用其他方法进行预测(例如感知器)具有相同的输出结果?

您将无法使用标准库来实现这一点。但是,如果您从头开始编写模型并在训练后从一个模型中提取权重,并使用这些权重对不同的模型进行预测,您将得到足够接近的答案。这是因为一旦你学会了权重(w1,w2,....,wn),您知道数据的性质,并且可以使用方程预测目标变量y=w1x1+w2x2+...+c. 请注意,这仅在参数线性模型的情况下才是正确的,因为只有上述等式才适用。

我可以这样做吗,如果我使用 SVR(具有线性核函数的支持向量回归)进行训练,那么我可以使用感知器作为预测值的线性回归方法吗?好吧,是的,同样的限制与上述相同。这是因为您将获得一个决策边界作为取决于数据的输出。请注意,由于不同模型的误差不同,输出会有细微的变化。

此外,输出中的任何其他差异将归因于学习算法的差异以及它对数据的操作方式。您可以通过在相同数据上训练两个模型并在训练后提取权重来验证这一点。如果权重足够接近(这意味着您已经学习了正确的底层模式),您可以使用测试数据上的两个模型中的任何一个进行预测,您将获得相似的值。

如果我理解得很好,您是在问是否所有线性分类器算法都是等价的。答案是否定的否则,如果所有算法都能让您预测相同的事情,那么拥有不同算法的意义何在。如果您想说服自己,请尝试使用 scikit learn

在一般情况下,这是不正确的。线性方程参数估计取决于分类器的数学模型和对数据所做的假设(实际上,取决于用于解决学习问题的优化算法)。以下函数

f(ixiwi+c),
对线性方程的参数有很大的影响。例如,在感知器中使用 sigmoid 函数可能会导致模型参数接近逻辑回归参数。但是另一个激活函数会导致得到与那些不同的线性方程参数估计。

不,我将在已经说过的内容上再补充一点,并详细说明我的回答。

算法不一样,因为:

  1. 调节参数不同。scikit-learn对象模型中,我们有使用的alpha和使用的C越高,计算alpha模型就越简单。对于,恰恰相反:越低,计算模型就越简单。CC
  2. 岭回归使用与线性回归相同的公式( scikit-learn 中的普通最小二乘法),但添加了一个约束:全部w必须是最低的。意思是最接近 0。即使 Lasso 使用相同的公式,甚至遵循与 Ridge 相同的约束。但它承认一些w由于称为 L1 的特定正则化,将恰好为 0。

因此,即使是如上所示的紧密建模,也有不同的算法。而且我没有考虑使用相同的数据集进行计算的不同执行时间。

它们的共同点首先是模型的模式:y=w1x1+w2x2+...+c 变量之间的线性关系,以及它们在一个库中的方法:例如fit()predict()可用于所有scikit-learn对象模型。