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

时间:2019-08-07 16:13:41

标签: c# cluster-analysis ml.net

我是ML.Net和AI的新手。我有一个包含销售数量的数据集。在连续12个月的销售期内,销售通常分为三个阶段-低,中和高(峰值)。我的想法是,我将根据前几年的数据训练一个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));

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

1 个答案:

答案 0 :(得分:1)

您可以发布一段数据吗?如果已标记数据,则目标阶段与每一行都相关联,则应进行多类分类,而不是聚类。群集用于未标记的数据,试图找出是否存在分组以及分组是什么。