C# 机器学习和多标签分类

Posted

技术标签:

【中文标题】C# 机器学习和多标签分类【英文标题】:C# Machine Learning and Multi-label Classification 【发布时间】:2020-03-09 03:23:44 【问题描述】:

我是一名学徒,我刚刚完成了我的第一个 .NET Web 应用程序,其主要前提是解析来自 ELmah.io(错误记录模块和处理程序)的组和可视化日志。我查看了 ML.NET 模型生成器和多类分类,这将允许我添加单个类来记录(例如优先级)并根据 SQL 服务器表直接训练模型。我更感兴趣的是 ML.NET 目前不支持的多标签分类,我正在研究 Accord.NET,我不得不承认这有点令人困惑,而且很难找到任何教程 - 我能够从他们的网站上运行一个简单的二进制分类示例,但这不是我想要的。

任何从哪里开始的指导将不胜感激(也许是 ML.NET 的另一种替代方案?)。

根据我的阅读,我的表结构看起来像这样:

我的前端示例:

谢谢,

雅库布

【问题讨论】:

关于multi-label classification which ML.NET not support at the moment,请看github.com/dotnet/docs/issues/5385#issuecomment-389396820The Iris example on the getting started page is a multiclass classifier:microsoft.com/net/learn/apps/machine-learning-and-ai/ml-dotnet/… 你有几节课?你总是可以为每个类使用一个单独的模型。 5 个模型听起来很合理,每个模型将每个类与其他类分开,然后在集成模型中使用它们来选择置信度最高的预测。 从技术上讲,如果您的模型足够准确,您可以使用 4 个模型(类似于您只需要 1 个模型来区分 2 个类别)但是 5 个可能更准确,我个人更喜欢对称解决方案 想一想,一个人最多可以使用 3 个(ab/cde、ac/bde、ae/bcd)。虽然不建议这样做:) 【参考方案1】:

ML.net 直到今天还不支持多标签分类。

您可以做的是分别在每个标签上训练您的模型,然后合并结果。

【讨论】:

以上是关于C# 机器学习和多标签分类的主要内容,如果未能解决你的问题,请参考以下文章

如何用softmax和sigmoid来做多类分类和多标签分类

使用Caffe进行多级和多标签图像分类

混淆矩阵错误“分类指标无法处理多标签指标和多类目标的混合”

深度学习模型评价指标

深度学习模型评价指标

机器学习之深度学习 二分类多分类多标签分类多任务分类