c# - 如何使用 ML.Net 实现具有树数据结构的 MultiClassClassification
问题描述
我有数百个项目,它们都有这样的树数据结构:
A
AA
AAA
BB
BBB
或者像这样:
A
AA1
AAA1
BB2
BBB2
每个项目都有自己的树结构,它是从标准树结构修改而来的。我要做的是将项目的树结构映射到标准树结构,如下所示:
A <--- A
AA <--- AA1
AAA <--- AAA1
BB <--- BB2
BBB <--- BBB2
或者像这样:
(映射实际上取决于文本而不是节点的级别。)
现在我在 ML.Net 中使用多类分类。首先,我手动将现有项目的树映射到标准树并将结果保存在数据库中,如下所示:
| Label | Level1 | Level2 | Level3 |
| -------- | -------------- | -------------- | -------------- |
| A | A | * | * |
| A-AA | A | AA1 | * |
| A-AA-AAA | A | AA1 | AAA1 |
| A-BB | A | BB2 | * |
| A-BB-BBB | A | BB2 | BBB2 |
| A | A | * | * |
| A-AA-AAA | A | AAA1 | * |
| A-BB | A | BB2 | * |
| A-BB-BBB | A | BB2 | BBB2 |
因为 ML.Net 中的列中的数据不能是缺失值,所以我将它们替换为 *。我的树有 15 个级别(特征列)。
我选择的多类分类算法是 SdcaMaximumEntropy。希望我可以使用预测来映射树,而不是手动执行此操作。
我成功地实现了预测。但是,预测结果确实很差。
所以我的问题是:
- 我这样做的方式对吗?
- 如果是,我应该删除重复的行吗?我应该用 替换缺失的值
*
吗?
解决方案
推荐阅读
- php - 使用 Select2 保存多个标签并同步到帖子
- python - 如何仅使用其全名找到 Windows 程序的安装位置?(以及他的可执行文件的名称)
- java - 如何在电子表格视图控件中旋转单元格值?
- android - 如何在 Android Q 上以编程方式安装 .apk?
- c++ - 如何在一组整数向量中搜索
- visual-studio-code - 是否可以使用 Puppeteer 自动化 Visual Studio Code,例如 Chrome?
- c# - 脉搏血氧仪服务 (0x1822) 能否显示在“nRF Connect for Mobile”上
- r - R如何在交易数据中合并项目集的类别
- node.js - 更新所有记录的子文档数组中的字段
- r - 如何一次从多个文件夹导入多个 .csv 文件并跳过行?