我正在尝试使用sklearn.mixture.BayesianGaussianMixture来拟合一组轨迹。
每个轨迹由一组数据点组成。
t_i = {x_i1, y_i1, x_i2, y_i2, ... , x_iN, y_iN},其中t_i是第1轨道,(x_ik, y_ik)是轨道上的第k点.例如,x_ik可以在时间步长k处表示机器人的状态,而y_ik可以表示机器人所采取的行动。每个GP组件都是来自x_ik -> y_ik的映射。这是相当标准的学习一个GP使用滑雪。
然而,当您想要学习一个高斯混合模型与Dirichlet过程之前,您必须决定什么时候一个新的GP组件将添加。
BayesianGaussianMixture类只提供一个接口,用于基于单个数据点进行集群分配。换句话说,新的数据点是否属于新的集群。
我感兴趣的是:给出一组轨迹,其中每个轨迹可能包含很多数据点。是否有一种基于轨迹的集群分配方法?也就是说,给定一个新的轨道,决定它是否属于一个新的集群。
发布于 2017-03-07 06:20:59
我将采用以下方法。
首先,尝试将连续坐标转换为一组离散值。例如,您可以将地图划分为单元格,并根据单元格为每个点(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这样的东西来用固定的特征集来表示每个轨迹(大概不同的长度),或者,换句话说,作为高维空间中的单点。也许有更简单的方法,但我不知道。
https://stackoverflow.com/questions/42573235
复制相似问题