使用 ML.Net 为集群 ID 分配标签

Assigning Labels to Cluster Id's with ML.Net

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

我的模型成功识别了 3 个不同的集群,但是集群 ID 似乎从来都不相同。例如,有一次模型可能会说高相位是 1,然后下一次它会说它是 3。难道我不能使用这个模型来知道集群 ID 1 是 "low"相,2是"medium"相等?

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));

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

你能 post 一小段你的数据吗?如果您有标记数据,那么目标阶段与每一行相关联,您应该进行多类分类,而不是聚类。聚类是针对未标注的数据,想弄清楚有没有分组,什么是分组。