使用 4 个参数对数据集进行聚类和标记

Posted

技术标签:

【中文标题】使用 4 个参数对数据集进行聚类和标记【英文标题】:Clustering and labeling data set with 4 parameters 【发布时间】:2018-07-26 20:53:41 【问题描述】:

这是一个加载的问题,它是我的第一个“现实生活”机器学习实验,如此简单的问题。

我在 CSV 文件中有类似这样的 USPTO 批量数据:

Name                     Class  Subclass  Category  Subcategory
Lightpack circuitboard   E        1         4       9
Lego blocks              F        2         56      12
D/C connector            E        3         4       1
Colorful dog hat         D        6         10      1
Grandma's shoes          D        2         11      1
Low temp resistor        O        2         4       10

我想要的是能够运行受监督的机器学习环境来对常见对象进行分组(在我的实际数据中还有很多,但这是一个简单的示例)。我希望能够找到一组通用的 classsubclasscategorysubcategory在所有电子产品中,并将它们分组到电子产品“箱”中(即:Lightpack 电路板、D/C 连接器和低温电阻器),但不确定如何进行。

目前我正在使用 Python 和 sklearn 进行更简单的建模,但不确定如何在给定的 4 个参数下进行测试和训练,并且我没有可比较的标记集(无验证)。

是否会创建一个伪标签集以使其受到更多建议,或者我可以采取一种无监督的方法吗?正如我之前所说,这是我在 ML 中的第一次真正测试。

【问题讨论】:

【参考方案1】:

无监督算法是你需要的。(Why so?)

这里您需要了解的关键概念是Multivariate distances 是什么以及如何计算它们。然后就可以申请K-means集群了。

您也可以阅读PCA 并使用它。您可能需要缩放变量才能使 PCA 正常工作。

【讨论】:

在我继续学习的同时,是否有任何基本算法可以帮助我开始这个过程?我发现在概念上我理解这些想法 - 问题是将这些概念转化为我遇到障碍的实际代码。 K-means 在无监督学习方面本身就是一种基本算法。你可以在互联网上找到它的实现。只是一个建议,用单变量学习 k-means,然后选择多变量。我相信这可以回答您的疑问;如果没有,请告诉我。【参考方案2】:

正如正确指出的那样,您可以使用任何聚类算法(K-means 或其变体、分层聚类、EM 算法。该过程遵循一种简单易行的方法将数据点分类到一定数量的聚类。作为数字集群的数量未知,因为 K 意味着您可以尝试使用不同级别的 K 并使用 Elbow 方法选择一个最合适的或层次聚类将让您找到最佳 k

【讨论】:

以上是关于使用 4 个参数对数据集进行聚类和标记的主要内容,如果未能解决你的问题,请参考以下文章

如何对 DNA 序列(数据集)进行十进制编码?

python大战机器学习——聚类和EM算法

绘制一维数据的 KMeans 聚类和分类

聚类和决策树

如何对具有三个不同类别的 3 个圆形数据集执行光谱聚类

Matlab中的凝聚聚类