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# 机器学习和多标签分类的主要内容,如果未能解决你的问题,请参考以下文章