Open leiseraiesecqd opened 5 years ago
处理好自己的数据集放进去,第一轮一跑就是err rate=0,停止了迭代,看了一下代码,打印了每一部分结果,发现是调用的决策树DecisionTreeClassifier的默认函数问题,打过比赛的同学一看就会发现问题,默认参数中max_depth(树深)竟然是none。再去查看文档,果然里面提醒要设置max_depth, min_samples_leaf这两个参数,所以我令max_depth=8,min_samples_leaf=5,就可以跑通了。 文档:https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
还有一个问题就是,迭代次数N一定要小于样本数,因为代码里面有一个 bata = 1 / (1 + np.sqrt(2 * np.log(row_A / N))) 注意只有正数才能开平方,如果样本数小于迭代次数N,就导致求log为负,这样子没法开方,得到的bate为None
(1)第一点同意,我这里换成其他的分类器,(2)第二点,我直接将log 外面加了abs 处理,这样可以解决
处理好自己的数据集放进去,第一轮一跑就是err rate=0,停止了迭代,看了一下代码,打印了每一部分结果,发现是调用的决策树DecisionTreeClassifier的默认函数问题,打过比赛的同学一看就会发现问题,默认参数中max_depth(树深)竟然是none。再去查看文档,果然里面提醒要设置max_depth, min_samples_leaf这两个参数,所以我令max_depth=8,min_samples_leaf=5,就可以跑通了。 文档:https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html