开始后的第二周,在这一周内的脑洞。
几乎都是错的想法,自留,如果有谁不幸看到了这篇请不要当做参考会被带到沟里的……
关于整个C4.5算法非常我流的理解
给一坨数据,判断指向的结果是否唯一或满足某个条件(预剪枝情况下),如果不唯一,则计算信息增益率,选择信息增益率最大的属性(即对结果影响最大的属性)作为节点,同时生成基于该属性具体数值的子数据集,重复以上步骤
Q0.(非习题)信息增益和信息增益率的区别,以及为什么要用信息增益率
唔姆唔姆Q1.对决策树诱导过程的大O时间复杂度给出细致的量化,给出关于属性数量和训练实例数量的复杂度ry
(个人理解的)人话:考虑一下影响事情发生的因素数量(属性数量)和总次数(训练实例数量)对算出来树需要花费的时间的影响处于哪个量级(eg.对时间影响以n计和以n^2计,数以千计和数以万计ry)
若n表示数据规模,O(f(n))表示运行算法所需要执行的指令数,和f(n)成正比。
O(f(n))表示算法执行的最低上界
几个常见的大O具体复杂度是啥改天再看8……算法还没仔细看(
“可以考虑先确定树深度的界”,这是预剪枝8大概……
“此外,也请给出对剪枝代价的评估”,如果上一句真的是预剪枝不就和第三题撞了嘛orz
Q3.避免过拟合的另一种方法是限制树的生长,考虑一下这种预剪枝的方法是否合理
方法1是指定深度,2是指定阈值我就说第一题是预剪枝嘛!!!
《机器学习实战》基于信息论的三种决策树算法(ID3,C4.5,CART) - CSDN
防挂,贴大佬github Github - Thinkgamer_Machine-Learning-With-Python
讲道理我觉得还行,网上(至少度娘能搜到的文章)不然就是一笔带过,不然就是把预剪枝批评的一无是处(……)还是和第一题的大O有关,如果某项的复杂度太高(eg.假设训练实例数量影响是O(c^n),当训练实例过多时再用后剪枝显然不合理,可能生成树都需要很久),这时候就需要用到预剪枝来避免出现生成树花费时间过长的情况。
所以还是要先分析大O才能确定到底适不适用预剪枝,以及当超过哪个数量级时预剪枝比后剪枝效率高,当超过那个数量时采用预剪枝才是更好的选择,一棒子打死是没有前途的
于是这和过拟合有啥关系……
Q4.请证明c4.5算法所用的不纯度(即熵)的度量是凹的
你以为是熵其实 是我DIO哒 不是化学的熵想不到吧.jpg
是说这个是信息熵/香农熵,和化学的熵不太一样,本来以为是混乱度or权重,也就是对最后结果的影响程度来着,后来发现好像不是(。
姑且说一下之前(第一时间)的想法。
因为想成了化学的熵,所以理解的是“使剩下的趋于不混乱直至得到唯一可以确定的结果”,也就是先把混乱度即不确定性最高的挑出来判断,然后根据判断结果再转到别的位置……有点像小时候的星座性格测试那种的,选a转到第三题选b转到第五题那种感觉
↑微妙地错了。
简单地说这俩熵根本不是一个东西,鬼知道为什么翻译成同一个字(。参见 数据压缩与信息熵-阮一峰
比较喜欢的一篇信息熵的解释:信息熵是什么? - 知乎用户的回答 - 知乎
是说信息熵是 代表随机变量不确定度的度量 ,熵越大=不确定程度越大=信息量越大,个人理解 信息量越大=影响越大
关于log以2为底比较喜欢的解释 信息熵是什么? - 蒋竺波的回答 - 知乎
说白了就是每个事件的结果只有0(不发生)或1(发生),所有结果2^n所以就是log2
精简截图,别开链接了关于决策树,思路大概是从最混乱且影响最大的开始消除8……是说如果从最小的开始消除也没啥用啊,消不消没啥区别(。然后到最后会逐渐趋于信息熵变小即确定性变高直至熵无限趋近于0,得到唯一确定的结果。
信息熵就是把一个系统的不确定性,按照其可能出现结果的概率分布,进行定量化计算。算一个简单的算例便于理解。
大致知道啥意思但是说不出来emmm
离散信源的信息熵具有②对称性,即对称于p=0.5 ④极值性,当P=0.5时,H(U)最大;而且H(U)是P的上凸函数
唔姆与百度百科凸函数(下凸)对比,这里的凹函数(上凸)应:如果其二阶导数在区间上恒小于等于0,就称为凹函数。凹函数 - 360百科 想不到吧凹函数不是你以为的凹函数
如果不是这样(有一个极值点)就没办法确定熵(???)
Q6.等待编辑中
instead of using information gain
if we directly selected the attribute with the highest prediction accuracy
网友评论