卡尔曼滤波器与 pykalman 2d 过度拟合

问题描述

我使用卡尔曼平滑器根据 GPS 点估计人的路径。不久前我有一个问题,这里回答得很好:kalman filter 2d with pykalman。但是现在我遇到了问题,即卡尔曼滤波器对这些点严重过度拟合。平均而言,到测量点的平均距离变化为 0.00016 m。 所以我的问题是,如何防止卡尔曼滤波器过度拟合?

我的代码

#the inputgdf.geometry looks like this(swiss coord):
[[ 2613496 1265201 ]
 [ 2613495 1265205 ]
 [ 2613498 1265207]
 ...]

def get_kalman_koordinates(inputgdf):
    transition_matrix = np.array([[1,1,0],[0,1],1]])
    
    observation_matrix = np.array(
    [[1,0]])
    inputgdf["x_koord"]=inputgdf.geometry.x
    inputgdf["y_koord"]=inputgdf.geometry.y
    
    measurements = np.asarray(inputgdf[["x_koord","y_koord"]])
    #print(measurements)
    kf = pykalman.KalmanFilter(
    transition_matrices=transition_matrix,observation_matrices=observation_matrix)
    #kf.em(X=measurements,n_iter=5)
    (smoothed_state_means,smoothed_state_covariances) = kf.smooth(measurements)
    inputgdf["Kalman_x"]=smoothed_state_means[:,0]
    inputgdf["Kalman_y"]=smoothed_state_means[:,1]
    result = geopandas.GeoDataFrame(
    inputgdf,geometry=geopandas.points_from_xy(inputgdf.Kalman_x,inputgdf.Kalman_y),crs= "epsg:2056")
    return result

我还是个新手,欢迎任何反馈,我可以如何改进我的问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...