《Python大规模机器学习》 —2.4.3其他基本变换
2.4.3其他基本变换
正如我们从数据存储中得出的示例,除了将分类特征转换为数字特征之外,还可以用另一种转换让学习算法提高其预测能力。可以通过函数(使用平方根、对数或其他转换函数)或通过
操作特征组,将转换应用于特征。
在下一章中,将给出有关多项式展开和随机kitchen-sink方法的详细示例。在本章中,我们将预测如何通过嵌套迭代创建二次特征。二次特征通常在创建多项式展开时创建,其目的是拦截预测特征之间的相互作用;这会以意想不到的方式影响目标变量中的响应。
为了直观地阐明为什么二次特征在对目标响应建模中很重要,让我们用两种药物对病人的影响为例进行说明。事实上,每种药物都可能或多或少对所治疗的疾病有作用。这两种药物是由不同成分组成的,当病人一起服用时,这两种药物的药效会相互抵消。在这种情况下,虽然两种药物都有效,但由于它们的负面作用,它们在一起并不起作用。
在这种意义上,不仅仅在医学中,在大量的各种特征中都会发现特征间的相互作用,而关键是要找出最重要的特征,以使我们的模型能更好地预测其目标。如果我们不知道问题的某些特征会相互作用,则唯一的选择是系统地测试它们,并使我们的模型保留那些更好的特征。
在下面的简单示例中,有一个名为v的向量作为我们假想的例子,它在内存中流化以便被学习,之后,转换为另一个向量vv,其中v的原始特征伴随着其乘积交互作用的结果(每个特征与其他所有特征相乘一次)。鉴于特征数量较多,学习算法使用vv向量代替原始v向量作为输入,以便更好地拟合数据:
随着示例数据流入学习算法,可以动态生成
类似的甚至更复杂的转换,由于成批数据很小(有时简化为单个示例),因此如此少量示例的特征数量很容易在内存中展开。下一章中,我们将探讨更多的这类转变示例,以及它们与学习流程的成功集成。
- 点赞
- 收藏
- 关注作者
评论(0)