![499c4808ebda953832bfee9a70f0568a.png](https://img-blog.csdnimg.cn/img_convert/499c4808ebda953832bfee9a70f0568a.png)
为了处理两个或多个类的分类问题,大多数机器学习(ML)算法的工作方式是相同的。
通常,它们对输入数据应用某种类型的转换,其效果是将原始输入维度减少到更小的数字。目标是将数据投影到一个新的空间中。然后,一旦投影,该算法试图通过寻找线性分离来对这些点进行分类。
对于输入维度较小的问题,任务稍微容易一些。以下面的机器学习数据集为例。
![939e2f779ac73f3e5ad07e52b455a32d.png](https://img-blog.csdnimg.cn/img_convert/939e2f779ac73f3e5ad07e52b455a32d.png)
假设我们想要正确地分类红色和蓝色圆圈。
很明显,一个简单的线性模型我们不会得到一个好的结果。没有将输入和权重映射到正确类的线性组合。但是如果我们可以转换数据以便我们可以画一条线将这两个类分开呢?
如果我们对两个输入特征向量进行平方,就会发生这种情况。现在,线性模型可以很容易地对蓝色和红色的点进行分类。
![eb711db725ebf63a883a6dbe1aaf81f9.png](https://img-blog.csdnimg.cn/img_convert/eb711db725ebf63a883a6dbe1aaf81f9.png)
然而,有时我们不知道应该使用哪种转换。实际上,找到最好的表示不是一个简单的问题。我们可以对数据应用许多转换。同样,它们中的每一个都可能导致不同的分类器(就性能而言)。
解决这个问题的一个方法是学习正确的转换。这被称为表示学习(representation learning),它正是深度学习算法所做的。
神奇的是,我们不需要“猜测”哪种转换会导致数据的最佳表示。该算法将弄明白。
但是,请记住,无论表示学习还是手工制作的转换,模式都是相同的。我们需要以某种方式更改数据,以便它可以轻松分离。
让我们回过头来考虑一个更简单的问题。
我们将探讨Fisher线性判别(FLD)如何设法将多维数据分类为多个类。
Fisher线性判别
首先,考虑二元分类问题(K = 2)的情况。R²中的蓝色和红色点。通常,我们可以采用任何D维输入向量并将其投影到D'维。这里,D表示原始输入尺寸,而D'是投影空间尺寸。在本文中,考虑D'小于D。
在投影到一维(数字线)的情况下,即D'= 1,我们可以选择阈值t来分隔新空间中的类。给定输入向量x:
- 如果预测值y> = t那么,x属于C1类(class 1)。
- 否则,它被归类为C2(class 2)。
注意,向量y (predictions) 等于所述线性组合O输入X和weights W → y=Wᵀx。
以下面的数据集作为示例。我们希望将原始数据维度从D = 2减少到D'= 1。换句话说,我们想要一个转换T,它将2D中的向量映射到1D - T(v)=ℝ² →ℝ¹。