【发布时间】:2023-03-25 03:31:01
【问题描述】:
我一直在尝试对时间序列执行 Huber Regressor (sklearn.linear_model)。 我遇到了一个奇怪的现象:有时它返回一个非常小的负系数,有时返回正值,尽管数字不断向上变化。
例如:
HuberRegressor(epsilon=1.35,max_iter=10000).fit(X=np.arange(12).reshape(-1,1),y=pd.Series([0,0,0,0,0,0,0,0,0,0,0,1])).coef_
数组([3.1380359e-08])
HuberRegressor(epsilon=1.35,max_iter=10000).fit(X=np.arange(12).reshape(-1,1),y=pd.Series([0,0,0,0,0,0,0,0,0,0,0,2])).coef_
数组([-2.20536164e-10])
HuberRegressor(epsilon=1.35,max_iter=10000000).fit(X=np.arange(12).reshape(-1,1),y=pd.Series([0,0,0,0,0,0,0,0,0,0,0,5])).coef_
数组([7.63157014e-07])
HuberRegressor(epsilon=1.35,max_iter=10000).fit(X=np.arange(12).reshape(-1,1),y=pd.Series([0,0,0,0,0,0,0,0,0,0,0,248])).coef_
数组([-4.49809127e-07])
所以,我所做的只是提高最后一个观察值 (1,2,5,248),但系数的符号发生了变化。 由于这是 Huber 回归,因此 1,3,5,248 都被识别为异常值,因为所有其他都是零。我应该在模型中找出不同的东西吗?
【问题讨论】:
标签: python regression robust