machine-learning - 使用具有多个结果的 C4.5 分类器

标签 machine-learning

我正在寻找用于机器学习任务的 C4.5 分类器。我有一个包含城市名称的大型数据集,需要区分例如城市名称。安大略省伦敦、英格兰伦敦甚至法国勃艮第的伦敦,但看看周围文本的特征:邮政编码、州名,即使没有提及“加拿大”或“英格兰”。我还可以访问元数据,例如拨号代码,这可以帮助确定它是哪个国家/地区。

经过训练后,我想在大型数据集上运行分类器。

在我发现的所有示例中here结果只有 2 种状态(在这个高尔夫示例中,玩或不玩)。

c4.5 分类器可以将伦敦(加拿大)、伦敦(英格兰)、伦敦(法国)作为结果类处理,还是我需要为伦敦(加拿大)True/False 等使用不同的分类器?

最佳答案

我在你的案例中看到了两个选择。

  • 第一种方法是对 c4.5 的直接扩展。在每个叶节点中,您保留所有标签,而不仅仅是大多数标签。例如,如下图所示,红色标签实际上存在于三个不同的叶子中。当您在箭头指向的数据点进行查询时,输出是 3 个标签(绿色、红色和蓝色)及其相应的条件概率 p(c|v) (给定特征 x1x2,数据x属于类c的概率是多少)。

single tree classification

  • 第二种方法是生成多个决策树,从而生成随机森林。可以通过对每棵树可用的训练数据子集进行随机采样来注入(inject)随机性。在分类时,您可以聚合所有决策树的投票以获得多类分类结果。

random forest ensemble

这些数字是借用这个优秀的tutorial Andrew Zisserma 的多类分类。

关于machine-learning - 使用具有多个结果的 C4.5 分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17031056/

相关文章:

python - Keras 中的深度卷积神经网络

machine-learning - 如何初始化词汇表外的词嵌入?

python - 在 TensorFlow 中完成训练过程后使用 predict() 方法

python - 学习 : Calibrate a multi-label classification with CalibratedClassifierCV

matlab - 神经网络中的 Q 学习 - Mountain Car

c# - 将 Mallet 作为二元分类器应用于文档分类

java - 如何在 Java 中加载 Weka 模型?

java - 如何在java中查找文本中的名称实体

machine-learning - 一个简单的神经网络可以学习应用于四个数字之和的 sin 函数吗?

python - 类型错误 : float() argument must be a string or a number, 而不是 'Timestamp'