也许一个更简单的案例会让事情变得更清楚。假设我们选择 1x2 像素样本而不是 100x100。
从图像中采样像素
+----+----+
| x1 | x2 |
+----+----+
想象一下,在绘制我们的训练集时,我们注意到它不能用线性模型轻易分离,因此我们选择添加多项式项以更好地拟合数据。
比方说,我们决定通过包含所有像素强度以及可以从它们形成的所有可能的倍数来构造我们的多项式。
由于我们的矩阵很小,让我们枚举它们:
x1, x2, x21, x22, x1×x2, x2×x1
解读上面的特征序列可以看出是有规律的。前两项,即第 1 组,是仅由其像素强度组成的特征。之后的以下两项,即第 2 组,是由其强度平方组成的特征。最后两项,第 3 组,是所有成对(两个)像素强度组合的乘积。
第 1 组:$x_1,\x_2$x1, x2
第 2 组:$x_1^2,\x_2^2$x21, x22
第 3 组:$x_1 \times x_2,\ x_2 \times x_1$x1×x2, x2×x1
但是等等,有一个问题。如果您查看序列中的第 3 组项($ x_1 \times x_2$ 和 $x_2 \times x_1$),您会注意到它们是相等的。记住我们的住房例子。想象一下,对于同一个房子有两个特征 x1 = 平方英尺和 x2 = 平方英尺......这没有任何意义!好的,所以我们需要摆脱重复的特征,让我们任意说 $x_2 \times x_1$。现在我们可以将第三组特征的列表重写为:x1×x2 and x2×x1) you'll notice that they are equal. Remember our housing example. Imagine having two features x1 = square footage, and x2 = square footage, for the same house... That doesn't make any sense! Ok, so we need to get rid of the duplicate feature, lets say arbitrarily x2×x1. Now we can rewrite the list of group three features as:
第 3 组:$x_1 \times x_2$x1×x2
我们计算所有三组中的特征并得到 5。
但这是一个玩具示例。让我们推导出一个计算特征数量的通用公式。让我们使用我们最初的特征组作为起点。
sizegroup1+sizegroup2+sizegroup3=m×n+m×n+m×n=3×m×n
啊! 但是我们必须去掉第 3 组中的重复产品。
因此,为了正确计算第 3 组的特征,我们需要一种方法来计算矩阵中所有唯一的成对产品。这可以通过二项式系数来完成,这是一种从大小为 n 的相等或更大的组中计算所有可能的大小为 k 的唯一子组的方法。因此,要正确计算第 3 组中的特征,请计算 $C(m \times n, 2)$。C(m×n,2).
所以我们的通用公式是:
m×n+m×n+C(m×n,2)=2m×n+C(m×n,2)
让我们用它来计算我们玩具示例中的特征数量:
2×1×2+C(1×2,2)=4+1=5
就是这样!