00:01
4.3,交互特征与多项式特征想要丰富特征表示,特别是对于线性模型而言。另一种方法是添加原始数据的交互特征interaction feature和多项式特征polynomial feature,这种特征工程通常用于统计建模。但也常用于许多实际的机器学习应用中。作为第一个例子。我们再一次看到这样一幅图。线性模型对位数据集中的每个箱子都学到了一个常数值,但我们知道,线性模型不仅可以学习偏移,还可以学习斜率。想要向分箱数据上的线性模型添加斜率,一种方法是重新加入原始特征图中的X轴,这样会得到11位的数据集。
04:06
在这个例子中,模型在每个箱子中都学到一个偏移,还学到一个斜率,学习到的斜率是相下的,并且在所有箱子中都相同,只有一个X轴特征,也就只有一个斜率。因为斜率在所有箱子中是相同的,所以它似乎不是很有用。我们更希望每个箱子都有一个不同的斜率。为了实现这一点,我们可以添加交互特征或沉积特征,用来表示数据点所在的箱子以及数据点在X轴上的位置。这个特征是相似指示符。与原始特征的一个乘积,我们来创建数据集。
05:23
这个数据集现在有20个特征数据点所在的箱子指示符与原始特征和箱子指示符的乘积。你可以将乘积特征看作每个箱子X轴特征的单独副本,它在箱子内等于原始特征,在其他位置等于零。下面给出线性模型在这种新表示上的结果。
08:27
如你所见,现在这个模型中,每个箱子都有自己的偏移和斜率。使用分箱是扩展连续特征的一种方法,另一种方法是使用原始特征的多项式和no。对于给定特征X,我们可以考虑X平方、X立方、X四次方等等,就在pre processing模块的po normal中实现。
10:23
多项式的次数为十。因此生成了十个特征。我们比较X poly和X的元素。
11:35
你可以通过调用get names get better names的方法来获取特征的语义,给出每个特征的指数。
12:28
你可以看到X poy的第一行与X完全对应。而其他列则是第一列的幂。有趣的是,你可以发现有些值非常大。第二行有大于2万的元素。数量及与其他行都不相同。将多项式特征与线性回归模型一起使用,可以得到经典的多项式回归poms模型。
13:18
嗯。嗯。
14:52
如你所见,多项式特征在这个一维数据上得到了非常平滑的拟合,但高次多项式在边界上或数据很少的区域。
15:05
可能有极端的表现。作为对比。下面是在原始数据上学到的,和SDM模型没有做任何的变化。
17:03
使用更加复杂的模型及和FVM,我们能够学到一个与多项式回归的复杂度类似的预测结果。而且不需要显示的特征变换。我们再次观察波士顿房价数据集,作为对交互特征和多项式特征更加实际的应用,我们在第二章已经在这个数据集上使用过多项式特征了。现在来看一下这些特征的构造方式。以及多项式特征的帮助有多大?首先加载数据,然后利用mini k将其缩放到零和一之间。
19:45
下面我们提取多项式特征和交互特征,次数最高为二。
21:20
原始数据有13个特征,现在被扩展到105个交互特征。这些新特征表示两个不同的原始特征之间所有可能交互项,以及每个原始特征的平方。这里degree等于二的意思是我们需要由最多两个原始特征的乘积组成的所有特征。利用get better names方法可以得到输入特征和输出特征之间的确切的对应关系。
22:09
第一个特征是常数特征。这里的名称是一,接下来的13个特征是原始特征。名称从X01直到X12。然后是第一个特征平方。以及它与其他特征的线性组合。准确来说不是线性组合,以及它与其他特征的乘积组合。我们对瑞正在有交互特征的数据上和没有交互特征的数据上的性能做一下对比。
24:45
显然,在使用rage时,交互特征和多项式特征对性能有很大的提升。但如果使用更加复杂的模型。比如随地森林,情况会稍有不同。
26:22
你可以看到,即使没有额外的特征,随机森林的性能也要优于零回归瑞,添加交互特征和多项式特征实际上会略微降低其性能。
我来说两句