我想使用AdaBoost实现一个java应用程序,它可以对大象是非洲象还是亚洲象进行分类。我的Elephant类有字段:
int size;
int weight;
double sampleWeight;
ElephantType type; // (which can be Asian or African).
我是AdaBoost的新手,我了解到好的弱分类器是决策树桩。我想知道是否支持我只创建两个决策树桩(一个用于大小,一个用于重量),或者我是否应该创建更多的决策树桩(几个不同的大小和几个不同的重量)?分类器的创建到底是什么样子的?
我在分析中使用了分类决策树。首先,我将整个数据分为训练和测试- 60%:40%。然后我在我的训练集上使用GridSearch来获得最佳得分模型(max_depth=7)。然后在交叉验证集和训练集上绘制学习曲线。这是我得到的图表。似乎有两条线是重叠的。那么它告诉我什么呢?在我的模型中没有过度拟合?总的来说,为什么我们在分析中需要学习曲线? Link to my learning curve image 非常感谢!
假设我们有一个二进制分类问题,我们在数据集上构建了一个决策树。
假设我们有5个特征,那么决策树将在第一步中选择最优的特征,并在这个特征上选择最佳的阈值来分割数据集,然后继续使树更深。best的定义是分类误差最小的。
我的问题是:既然决策树在每一步都会选择最佳的特征来分割,那么为什么随机森林(也就是许多决策树)是对决策树的改进?一个决策树不就足够了吗?
更新
我的意思是:如果你有一个decision tree classifier和一个参数相同的random forest classifier (max_depth,number of children等),那么decision tree cla