在 R 中, smooth.spline 函数允许在粗糙度(由第二个导数的积分平方定义)和拟合点(由残差的平方和定义)之间进行权衡。这种权衡是通过 spar 或 df 参数实现的。在一个极端处,你得到最小二乘线,而在另一个极端处,你得到非常弯曲的曲线,该曲线与所有数据点相交(或平均值,如果你有具有不同y值的重复 x 值)。
我查看了Python中的scipy.interpolate.UnivariateSpline和其他样条变体,然而它们似乎只通过增加结点数并设置阈值(称为s)来权衡。与此相反,在R中的smooth.spline允许在所有x值上都有结点,而不一定要有一个弯曲的曲线使其穿过所有点 - 惩罚来自于第二个导数。
Python是否有类似的样条拟合机制?允许所有节点但对第二个导数进行惩罚?
我查看了Python中的scipy.interpolate.UnivariateSpline和其他样条变体,然而它们似乎只通过增加结点数并设置阈值(称为s)来权衡。与此相反,在R中的smooth.spline允许在所有x值上都有结点,而不一定要有一个弯曲的曲线使其穿过所有点 - 惩罚来自于第二个导数。
Python是否有类似的样条拟合机制?允许所有节点但对第二个导数进行惩罚?