c# - 使用 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));
我可能完全误解了算法及其目的。如果是这样,请告诉我。
解决方案
您可以发布您的数据片段吗?如果您有标记数据,那么目标阶段也与每一行相关联,那么您应该进行多类分类,而不是聚类。聚类是针对未标记的数据,试图弄清楚是否有分组以及分组是什么。
推荐阅读
- sql - LAG 函数只取前一个日期而不是按确切顺序运行
- html - 如何在 iframe 中创建书签链接?
- python - 如何将熊猫系列变成矩阵?
- mongodb - 猫鼬搜索大小写字母
- scala - Spark:如何将列的 ArrayType 中的单列收集到不同的数组?
- python - 当值是列表时,在 Pandas 中获取唯一值
- php - 是否可以通过注释自动在学说实体上创建附加属性
- python - 如何将 Pandas 自相关图添加为子图?
- .net - 在 Powershell 中使用升级后的 FolderBrowserDialog(“Vista 风格”)
- r - 按类排列数据框列:字符前的数字