【问题标题】:Clustering Cell Tower IDs from Known location names从已知位置名称聚类蜂窝塔 ID
【发布时间】:2014-04-15 05:20:53
【问题描述】:

我是数据挖掘的新手,我正在尝试弄清楚如何对蜂窝塔 ID 进行聚类,以从已知的位置标签(家庭、工作、其他地方、无信号)中找到它的位置。

我有一个用户 A 的位置驱动数据集,其中包含 cellID(检测到的信号塔的唯一 ID)、开始时间(检测到特定信号塔的日期和时间)、结束时间(连接到不同信号塔之前的最后日期和时间)、地名(用户标记的地名,例如家庭、工作)。数据集中还有未标记的位置被用户留空,我想使用聚类方法标记这些蜂窝塔,以便它们表示为位置名称之一。

我正在使用 R 编程,我试图将完整的数据集提供给 kmeans 聚类,但它导致我收到警告消息,我完全不知道为什么?

*do_one(nmeth) 中的错误:外部函数调用中的 NA/NaN/Inf (arg 1)

另外:警告信息:

在 kmeans(dataset, 4, 15) 中:强制引入的 NA*

关于如何使用聚类方法解决这个问题有什么建议吗?谢谢

【问题讨论】:

    标签: r machine-learning artificial-intelligence cluster-analysis data-analysis


    【解决方案1】:

    由于您在训练阶段拥有所有可用的标记和未标记数据,因此您要寻找的是“转导学习”,它与聚类(即“无监督学习”)略有不同。

    您收集每个蜂窝塔的平均开始时间、结束时间和 cellID。您可以在此处从 cellID 获取 lat/lng:https://mozilla-ichnaea.readthedocs.org/en/latest/api/search.htmlhttp://locationapi.org/api(昂贵)。

    这为您提供了每个塔的 4 维特征向量,目标是根据这些连续特征分配三元标签:

    [avg_starttime avg_endtime lat lng] 家庭/工作/其他

    我不了解 R,但在 python 中可以使用基本的转导学习: http://scikit-learn.org/stable/modules/label_propagation.html#label-propagation

    如果您在标签传播方面没有获得良好的结果,并且由于现成的转导学习工具很少见,您可能只想在训练期间忽略一些数据并使用更标准的方法。如果您在开始时忽略未标记的数据,您可能会遇到“归纳”或“监督”学习问题(使用 SVM 解决)。如果您在开始时忽略标签,则可以使用无监督学习(例如“聚类”;使用 kmeans 或 DBSCAN),然后在聚类完成后为聚类分配标签。

    我不知道你是怎么得到 NaN 的。

    【讨论】:

    • 您好,感谢您的回复。我认为我对标签传播了解不多,所以我尝试坚持无监督学习,忽略标签列并使用 kmeans 将整个数据集聚类为 4 个聚类。现在,我很困惑,我想在什么基础上将集群 1 标记为(家庭、工作、其他地方、无信号)等等集群 2、3、4?谢谢
    • 这正是标签传播可以避免的问题。但是,既然您已经有了集群,您应该使用给定的标签来确保集群相对于标签是同质的。如果是这样,则将该标签用于集群。
    猜你喜欢
    • 2011-09-10
    • 2013-01-05
    • 2013-01-20
    • 1970-01-01
    • 2012-05-06
    • 2012-07-14
    • 2018-09-26
    • 1970-01-01
    • 2018-06-20
    相关资源
    最近更新 更多