Scikit learn 基于多个数据点的sklearn BayesianGaussianMixture群集分配

Scikit learn 基于多个数据点的sklearn BayesianGaussianMixture群集分配,scikit-learn,cluster-computing,gaussian,bayesian,mixture,Scikit Learn,Cluster Computing,Gaussian,Bayesian,Mixture,我正在尝试使用sklearn.mixed.BayesiangAussianMixer来拟合一组轨迹 每个轨迹由一组数据点组成,例如 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的标准 然而,当您想先学习带有Diri

我正在尝试使用sklearn.mixed.BayesiangAussianMixer来拟合一组轨迹

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

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的标准

然而,当您想先学习带有Dirichlet过程的高斯混合模型时,您必须决定何时添加新的GP组件

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


我感兴趣的是:给出一组轨迹,每个轨迹可能包含很多数据点。是否有一种基于轨迹的集群分配方法?i、 给定一条新的轨迹,决定它是否属于一个新的集群

我将采用以下方法

首先,尝试将连续坐标转换为一组离散值。例如,可以将地图划分为单元,并基于单元为每个点(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
...

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

@MinChen我认为这没有多大关系,至少从理论角度来看是这样。实际上,这将使为每个数据点分配离散标签的过程复杂化。我在这里无法给出任何建议,这需要深入问题本身。