首页 > 解决方案 > 使用 ML.Net 为集群 ID 分配标签

问题描述

总的来说,我是 ML.Net 和 AI 的新手。我有一个销售数量的数据集。在滚动的 12 个月期间,销售通常有 3 个阶段 - 低、中和高(峰值)。我的想法是我将根据前几年的数据训练一个 KMeans 聚类模型,然后使用该模型来确定我们目前处于一年中的哪个阶段。

我的模型成功识别了 3 个不同的集群,但是集群 ID 似乎从来都不相同。例如,一次模型可能会说高相位是 1,然后下一次它会说它是 3。我不应该能够使用这个模型来知道集群 id 1 是“低”吗阶段,2 是“中等”阶段,等等?

string featuresColumnName = "Features";
var pipeline = context.Transforms
    .Concatenate(featuresColumnName, "SaleCount")
    .Append(context.Clustering.Trainers.KMeans(featuresColumnName, numberOfClusters: 3));

var model = pipeline.Fit(data);
var predictor = context.Model.CreatePredictionEngine<SaleModel, SalePrediction>(model);

var prediction = predictor.Predict(new SaleModel(1600));

我可能完全误解了算法及其目的。如果是这样,请告诉我。

标签: c#cluster-analysisml.net

解决方案


您可以发布您的数据片段吗?如果您有标记数据,那么目标阶段也与每一行相关联,那么您应该进行多类分类,而不是聚类。聚类是针对未标记的数据,试图弄清楚是否有分组以及分组是什么。


推荐阅读