我正在从这里学习机器学习,该课程使用“Scikit Learn”进行回归 - https://www.udemy.com/machinelearning/
我可以看到,对于一些训练回归算法,作者使用特征缩放,而对于一些他没有,因为一些“Scikit Learn”回归算法自己处理特征缩放。
如果我将特征缩放应用于内部已经具有特征缩放的算法,它会以任何方式影响吗?
无论我使用的算法是否在内部具有特征缩放系统,我都可以应用特征缩放吗?
我正在从这里学习机器学习,该课程使用“Scikit Learn”进行回归 - https://www.udemy.com/machinelearning/
我可以看到,对于一些训练回归算法,作者使用特征缩放,而对于一些他没有,因为一些“Scikit Learn”回归算法自己处理特征缩放。
如果我将特征缩放应用于内部已经具有特征缩放的算法,它会以任何方式影响吗?
无论我使用的算法是否在内部具有特征缩放系统,我都可以应用特征缩放吗?
简短的回答:如果您应用与算法相同的缩放方法,它不会改变任何东西。如果您选择不同的缩放方法,那么您最终将对原始数据执行两次转换,这可能不是一件坏事,具体取决于上下文。
这意味着您必须知道算法执行什么样的缩放。
作为外卖,最好自己预先缩放数据,以便确定输入算法的内容。缩放很少会武装您的模型结果。
作为说明(我知道这不是您的问题,但它可能会有所帮助),您必须了解为什么要扩展数据。以线性回归的简单案例为例,如果您的输入特征是房屋大小和房间数量,并说您想根据这些特征构建房价模型,则房间数量和大小的范围将非常不同。缩放将有助于:
我会说特征缩放不会显着影响模型的性能。我将关注的是您使用的缩放方法。标准缩放受异常值影响较小,但范围不同,归一化将数据范围压缩到 0-1,但受异常值影响更大,等等。某些算法取决于您使用的缩放方法,例如,神经网络通常期望输入在 0 之间-1。
再说一次,像 Scikit-Learn 这样的库是由了解模型内部工作原理的专家构建的,所以如果模型具有内部缩放,那么我就让它保持不变。