【问题标题】:sklearn BayesianGaussianMixture Cluster assignment based on more than one data pointsklearn BayesianGaussianMixture 基于多个数据点的聚类分配
【发布时间】:2017-07-23 05:31:46
【问题描述】:

我正在尝试使用 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 类只为您提供基于单个数据点进行聚类分配的接口。换句话说,一个新的数据点是否属于一个新的集群。

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

【问题讨论】:

    标签: scikit-learn cluster-computing gaussian bayesian mixture


    【解决方案1】:

    我会采用以下方法。

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

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

    【讨论】:

    • @MinChen 我认为这无关紧要,至少从理论上讲。实际上,它会使为每个数据点分配离散标签的过程复杂化。我无法在这里给出任何建议,这需要深入研究问题本身。
    猜你喜欢
    • 2023-03-24
    • 2020-04-14
    • 2018-02-13
    • 2019-09-11
    • 2023-03-12
    • 2018-09-25
    • 1970-01-01
    • 2020-02-28
    • 2015-08-12
    相关资源
    最近更新 更多