掌握非线性数据:Scikit-Learn SplineTransformer 指南

忘记僵硬的线条和疯狂的多项式。了解为什么样条曲线是特征工程的“金发姑娘”,它使用 Scikit-Learn 的 SplineTransformer 为非线性数据提供了灵活性和纪律的完美平衡。掌握非线性数据:Scikit-Learn SplineTransformer 指南的帖子首先出现在《走向数据科学》上。

来源:走向数据科学

线性模型可能......嗯,僵化。您是否曾经看过散点图并意识到直线无法将其切割?我们都去过那里。

现实世界的数据总是充满挑战。大多数时候,感觉例外就是规则。您在工作中获得的数据与我们在学院培训期间使用的那些漂亮的线性数据集完全不同。

例如,您正在查看“能源需求与温度”之类的内容。这不是一条线;而是一条线。这是一条曲线。通常,我们的第一直觉是采用多项式回归。但这是一个陷阱!

如果您曾经见过模型曲线在图形边缘处变得疯狂,那么您就见证了“龙格现象”。高次多项式就像一个拿着蜡笔的幼儿,因为它们太灵活并且没有纪律。

这就是为什么我要向您展示这个称为样条线的选项。它们是一个巧妙的解决方案:比直线更灵活,但比多项式更严格。

样条曲线是由多项式定义的数学函数,用于平滑曲线。

您无需尝试将一个复杂的方程拟合到整个数据集,而是将数据在称为结的点处分成多个片段。每个部分都有自己的简单多项式,它们都无缝地缝合在一起,你甚至看不到接缝。

多项式问题

假设我们有一个非线性趋势,我们对其应用多项式 x2 或 x3。本地看起来没问题,但我们查看数据的边缘,发现曲线偏离得很远。根据龙格现象 [2],高次多项式存在这样的问题:一端的一个奇怪的数据点可能会使另一端的整条曲线变得不正常。

为什么样条线是“恰到好处”的选择

样条曲线并不试图用一个巨大的方程来拟合所有的东西。相反,他们使用称为“结”的点将数据划分为多个片段。使用结有一些优点。

  • 平滑度:他们使用“B 样条线”(基础样条线)来确保线段相交处的曲线完美平滑。
  • 参考文献