0

我正在尝试使用 sklearn.mixture.BayesianGaussianMixture 来拟合一组轨迹。

每个轨迹由一组数据点组成,例如

t_i = {x_i1, y_i1, x_i2, y_i2, ... , x_iN, y_iN},

其中t_i是第 i 个轨迹,(x_ik, y_ik)是轨迹上的第 k 个点。例如,x_ik 可以表示机器人在时间步 k 的状态,y_ik 可以表示机器人采取的动作。每个 GP 组件都是从 x_ik -> y_ik 的映射。这是使用 sklearn 学习 GP 的标准。

但是,当您想先学习具有狄利克雷过程的高斯混合模型时,您必须决定何时添加新的 GP 组件

BayesianGaussianMixture类仅为您提供基于单个数据点进行集群分配的接口。换句话说,一个新的数据点是否属于一个新的集群。

我感兴趣的是:给出一组轨迹,其中每个轨迹可能包含很多数据点。有没有办法根据轨迹进行集群分配?即给定一个新的轨迹,判断它是否属于一个新的集群。

4

1 回答 1

0

我会采用以下方法。

首先,尝试将您的连续坐标转换为一组离散值。例如,您可以将地图划分为单元格,并根据单元格为每个点 (x_i, y_i) 分配一个标签。在这种情况下,每个轨迹都变成了一个标签序列

traj_1: cell_id_0 -> cell_id_1 -> ... -> cell_id_n
traj_2: cell_id_3 -> cell_id_6 -> ... -> cell_id_m
...

现在可以使用诸如词袋word2vec之类的东西来表示具有一组固定特征的每个轨迹(可能具有不同的长度),或者换句话说,作为高维空间中的一个单点。可能有更简单的方法,但我不知道。

于 2017-03-07T06:20:59.570 回答