每日三思(5月7日)
每日三思(5月7日)
问题一:今天学了什么?
今天的课程比较多,并且要处理百千万工程对接的事情,所以自己的学习时间较少。今天将机器学习的决策树模型的原理以及代码实现完成,然后算法刷了两道关于 sort
的题目,随后进行了英语的阅读理解。
问题二:决策树模型的构建过程是什么样的?
根据信息增益的大小,决策树会依次选择最优的特征进行划分:
-
第一步 :选择信息增益最高的特征作为根节点。
划分标准:根据该特征的取值将数据集划分为子集。
-
第二步 :对于每个子集,重复上述过程,选择该子集上信息增益最高的特征作为内部节点。
-
递归进行 :直到满足终止条件(如所有样本属于同一类、没有剩余特征等)。
在根节点选择时,优先选择信息增益最高的特征(这里是“纹理”)。在子节点选择时,根据当前子集的数据重新计算信息增益,选择最优特征。所以有些特征在该节点的信息增益较差,不会选择,但是在另一个节点,它具有显著特征,仍然有用。
问题三:为什么在决策树的子节点还需要遍历所有的特征计算信息增益或者基尼系数?
1. 因为不同子集的数据分布可能不同
在根节点,我们根据全局信息选择了某个最优特征,但在某个子集中(比如左子树),样本分布可能完全不同:原来不是最优的特征,在这个子集中反而可能成为最好的划分方式,所以我们需要对每个子集都重新评估所有特征 。
2. 特征之间可能存在“组合效应”
特征可以重复使用,即使已经在根节点用了,如果它的某些区间仍然有区分能力,仍然可以在内部节点中再次被选中作为划分特征。
3. 决策树是“贪心算法”,只看当前最优
决策树不是一次性找一个完整的路径,它是每一步都挑当前最好的特征,并且不做回溯或全局优化,所以每次都要从头比较所有特征。
每日三思(5月7日)
https://github.com/DukeZhu513/dukezhu513.github.io.git/post/think-twice-every-day-may-7-21yhop.html