Machine learning 我可以防止J48分类器在同一字段上分裂超过x次吗?

Machine learning 我可以防止J48分类器在同一字段上分裂超过x次吗?,machine-learning,weka,j48,c4.5,Machine Learning,Weka,J48,C4.5,使用数据集、Weka和J48分类器,我得到了以下树: 它在右边的“NumTweets”上分裂了很多。我可以防止J48在一个字段上执行超过指定数量的拆分吗?因为这显然过度拟合了我在特定领域的数据。理想情况下,我希望它只重用分支中的同一字段3-4次。我有什么办法可以做到这一点吗 提前谢谢 回答您的第一个问题:不,WEKA explorer不提供特定属性的拆分限制。这只能在代码中手动完成 话虽如此,您可以在这里尝试几种方法来限制树的大小/减少过度拟合 你可以试试REPTree而不是J48。它使用 与J

使用数据集、Weka和J48分类器,我得到了以下树:

它在右边的“NumTweets”上分裂了很多。我可以防止J48在一个字段上执行超过指定数量的拆分吗?因为这显然过度拟合了我在特定领域的数据。理想情况下,我希望它只重用分支中的同一字段3-4次。我有什么办法可以做到这一点吗


提前谢谢

回答您的第一个问题:不,WEKA explorer不提供特定属性的拆分限制。这只能在代码中手动完成

话虽如此,您可以在这里尝试几种方法来限制树的大小/减少过度拟合

  • 你可以试试REPTree而不是J48。它使用 与J48相同的分割标准,但使用减少的错误修剪。它有一个 选项来限制树的深度

  • 降低J48修剪置信度(-C参数)将导致更多的修剪,从而减小树的大小

  • 您可以尝试使用minNumObj(到达每个叶的实例的最小数量)参数


  • 回答您的第一个问题:否,WEKA explorer不对特定属性提供拆分限制。这只能在代码中手动完成

    话虽如此,您可以在这里尝试几种方法来限制树的大小/减少过度拟合

  • 你可以试试REPTree而不是J48。它使用 与J48相同的分割标准,但使用减少的错误修剪。它有一个 选项来限制树的深度

  • 降低J48修剪置信度(-C参数)将导致更多的修剪,从而减小树的大小

  • 您可以尝试使用minNumObj(到达每个叶的实例的最小数量)参数


  • 不可以。但是您可以将J48
    minNumObj
    config参数设置得更高。(默认值为2。)这将对每个叶节点必须包含的最小数据元素数设置约束

    通过这种方式(通过反复试验),您可以在一定程度上平衡和/或简化决策树


    也许你可以删除或忽略这个恼人的属性。可能将
    NumTweets
    离散化为bin(例如No.,但您可以将J48
    minNumObj
    config参数设置得更高。(默认值为2。)这会对每个叶节点必须包含的最小数据元素数设置约束

    通过这种方式(通过反复试验),您可以在一定程度上平衡和/或简化决策树


    也许你可以删除或忽略这个恼人的属性。也许可以将
    NumTweets
    离散化到垃圾箱中(例如,我已经使用了
    minNumObj
    config,但是几乎所有的设置都会导致一个属性不好用。删除某些属性也是一样。我会尝试离散化功能,我计划手动进行,但知道有一个预处理过滤器很好,谢谢!我已经使用了e
    minNumObj
    config,但几乎所有设置都会导致属性不好用。删除某些属性也是一样。我将尝试离散化功能,我正计划手动执行此操作,但知道有一个预处理过滤器很好,谢谢!