具有分类和连续属性的多类多输出分类,无需在 python 中编码 [关闭]

Posted

技术标签:

【中文标题】具有分类和连续属性的多类多输出分类,无需在 python 中编码 [关闭]【英文标题】:Multiclass MultiOutput Classification with both categorical and continous attribute without encoding in python [closed] 【发布时间】:2017-12-23 17:39:48 【问题描述】:

我正在做一个机器学习(数据挖掘)项目,我已经完成了数据探索和数据准备步骤,它是在 python 中完成的!

现在我面临这个问题:我的数据集中有分类属性。 经过研究,我发现最适合此类数据的算法是决策树或随机福雷斯特分类器!

但是我已经阅读了一些关于决策树和分类属性的类似问题,发现我正在使用的库 (scikit-learn) 不适用于分类属性。检查here 和here,为了使其与分类一起工作,我需要将分类变量编码为数字变量,但我不想使用编码,因为我会根据@987654323 丢失我的属性的一些属性和一些信息@answer ,而且我的一些属性有 100 多个不同的值。

所以我想知道:

是否有任何其他 python 库可以使用分类数据构建决策树而无需任何编码? 在this 的回答中,有人建议像 WEKA 这样的其他库可以构建具有分类属性的决策树,所以我的问题是我可以在同一个机器学习项目中结合两种语言吗?

是否会在 python 中进行数据探索和准备,在 weka (java) 中训练模型,并将其部署到 python-flask Web 应用程序中? 有可能吗?

【问题讨论】:

【参考方案1】:

您链接的有关编码分类输入的answer 只是说,当您的类别没有固有顺序时,您应该避免使用数字编码。它正确地建议您在这种情况下使用 one-hot 编码。

简单地说,机器学习模型对数字进行操作,因此即使您找到了一个无需显式编码即可获取原始类别的库,它仍然必须在执行任何计算之前对其进行内部编码。

100 个类别并不多,大多数现成的库都可以很好地处理此类输入。我建议你试试xgboost

【讨论】:

好的!感谢您的回复@Imran,所以我会尝试一种听起来不错的热编码,但会增加我的数据集的维度,所以必须忘记决策树并尝试像 SVN 和 NN 这样的强分类器。

以上是关于具有分类和连续属性的多类多输出分类,无需在 python 中编码 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

错误:分类指标无法处理多类多输出和多标签指标目标的混合

如何使用 lstm 执行多类多输出分类

Python Sklearn“ValueError:分类指标无法处理多类多输出和二进制目标的混合”错误

Python scikit 学习多类多标签性能指标?

为多类多标签分类构建混淆矩阵

为序数神经网络编码我的多类分类问题