在易趣的日子 (04) 温度决定风度II

本文未经网络隐士许可,不得转载。http://www.caocao.name, http://www.caocao.mobi

在那一个多事之夏,狭着eBay一亿美金砸死淘宝的声势,众民工搬迁到了有中国第五大火炉之称的张江大厦。
隐士心中始终有个疑问:一亿美金怎么能够砸死淘宝?思前想后觉得只有把钱换成一元硬币,装入蛇皮袋中,众民工肩挑头顶运到杭州,一声号令,砸向淘宝总部,把他们彻底打回铁器时代。看官说了,换成一角的硬币更壮声势。
可能正是为了实现这个伟大的目标,目的地张江大厦,搬!实战演习是最好的练兵之道。上回帮着隐士一起磨把手的民工W正是从张江的HP逃出来的,一听要重回张江,立马转投西门子,赴德国做空中飞人去也。民工X也是刚从张江逃出的难民,进公司才一个星期就被绑回张江,至今仍在叨念不休。和隐士在美国共同八卦的民工J早先在张江置了业,此番算是衣锦还乡了。各人有各人的小算盘,隐士为此每天上下班多付出了一个多小时。
古人说地好:对待民工要象夏天般的火热。果然张江大厦让俺们领略到了正宗的热带风情,整个夏天隐士一直在30度的气温下度过。盼吧,冬天应该不会这么热了吧,未曾想12月的天,外面5度,里面还有28度,实在是受不了了,老糨糊和隐士开始闹腾了,没戏,来福旺财楼那套不灵了,此楼号称德国高手设计,保温性能绝佳,窗玻璃有两层,打开了第一层还有第二层,想要开第二层真是难于上青天,看来只有用金刚钻划玻璃了,老糨糊赶紧拦住隐士,别啊,划玻璃这不是要拆楼了么。俺们找物业交涉,结果遭来一顿太极拳。想想德国那纬度,上海这纬度,当初是谁拍板找他们设计的啊,还好没有找爱斯基摩设计师,不然俺们活生生就是一屉包子了。
热锅上的民工们每天三花聚顶,五心向天,头上隐隐冒着热气,个个汗流浃背,大冬天的一身夏装。隐士因为比较注重全面发展,所以横向发展地很不错,热起来可受不了,有时候都出现了幻觉,幻想自己在那热带海滩上,打着赤膊,穿着沙滩裤,抱着吉他撕心裂肺狂吼:对面的民工看过来,看过来,看过来,这里的民工在流汗,汗流干,油也流干。
不行,这样的日子连猪都不如,一定要想办法,隐士摸到了上海市政府网站,给市长信箱留了个贴,没多久有回音了,可见看帖一定要回帖,鄙视一下看了隐士那么多帖子不回帖的潜水民工。
一天,物业的楼主亲自来找隐士,态度极其恭敬,隐士真有点受之有愧,看那楼主也太老了吧,隐士小小年纪怎能受此礼遇。楼主手里拿着张纸,上面打印着隐士的帖子,言下之意是隐士越级上访了,市政府把帖子转到浦东新区政府,区政府又转到了该赫赫有名的东湖物业,大家都很震惊,在如此腊月飞雪的天气,竟然如此浪费能源,楼主被责成搞掂此事。谈了好久,俺们就一直在那里推手,推来推去,没啥实质的东西。此后高温依旧,1月老糨糊和隐士逃到硅谷,此事转交民工F跟进,硅谷的八卦逸闻参见硅谷之行系列,隐士从硅谷爬回,这温度依然是26-28度,唉,这太极拳套路忒多了。
与温度对抗了好几年,隐士彻底宣告失败。未曾想如今在小公司创业的隐士竟然不用为此操心了,咱租的办公楼很简陋,没有中央空调,除了夏天关窗开柜式空调外,其余时间开窗通风不开空调,身体素质明显转好,精神状态也好了许多。呵呵,这出入高档写字楼是什么玩意啊,空气那么差,温度那么高,每天那是去囚笼受虐啊。
不知道淘宝的工作环境如何,想必没有那么火热。人头脑热了就会犯傻,不知道这几年易趣的种种行为和办公室的温度问题是否有联系,留待各位看官自行考证了。

注:本系列所有公开事实均可在互联网上查到,隐士不会泄露任何未公开的公司机密。

首先,我们需要构造一个数据集,包含天气、温度、湿度和风度四个特征和一个目标变量——是否开展活动。假设我们已经有了以下数据集: | 天气 | 温度 | 湿度 | 风度 | 是否开展活动 | | ------ | ---- | ----- | ---- | ------------ | | 晴 | 热 | 高 | 无风 | 否 | | 晴 | 热 | 高 | 有风 | 否 | | 多云 | 热 | 高 | 无风 | 是 | | 下雨 | 凉 | 高 | 无风 | 是 | | 下雨 | 寒冷 | 正常 | 无风 | 是 | | 下雨 | 寒冷 | 正常 | 有风 | 否 | | 多云 | 寒冷 | 正常 | 有风 | 是 | | 晴 | 温暖 | 正常 | 无风 | 是 | | 晴 | 寒冷 | 正常 | 无风 | 是 | | 下雨 | 温暖 | 高 | 无风 | 否 | | 晴 | 温暖 | 正常 | 有风 | 是 | | 多云 | 温暖 | 正常 | 有风 | 是 | | 多云 | 热 | 正常 | 无风 | 是 | | 下雨 | 温暖 | 正常 | 有风 | 否 | 接下来,我们使用ID3算法和C4.5算法分别构建决策树。 ### ID3算法 #### 第一步:计算数据集的熵 数据集中有6个是“是”,8个是“否”,熵的计算公式为: $$ H(D) = -\sum_{i=1}^{n}p_i\log_2{p_i} $$ 其中,$p_i$表示目标变量为第$i$个类别的样本所占的比例,$n$表示类别数。因此,$H(D)$的计算如下: $$ H(D) = -\frac{6}{14}\log_2\frac{6}{14}-\frac{8}{14}\log_2\frac{8}{14} \approx 0.985 $$ #### 第二步:计算各个特征的信息增益 特征“天气”有3个取值:“晴”、“多云”、“下雨”,分别对应4个“是”和3个“否”;特征“温度”有3个取值:“热”、“温暖”、“寒冷”,分别对应2个“是”和4个“否”;特征“湿度”有2个取值:“高”、“正常”,分别对应3个“是”和4个“否”;特征“风度”有2个取值:“有风”、“无风”,分别对应2个“是”和6个“否”。 以特征“天气”为例,我们可以计算其信息增益: $$ IG(D, 天气) = H(D) - \sum_{v\in 天气} \frac{|D_v|}{|D|}H(D_v) $$ 其中,$D_v$表示特征“天气”取值为$v$的样本集合,$|D_v|$表示集合$D_v$的大小。因此,特征“天气”的信息增益计算如下: $$ IG(D, 天气) = 0.985 - \frac{4}{14}H(D_{晴}) - \frac{5}{14}H(D_{多云}) - \frac{5}{14}H(D_{下雨}) $$ 其中,$H(D_{晴})$的计算过程如下: $$ H(D_{晴}) = -\frac{2}{4}\log_2\frac{2}{4} - \frac{2}{4}\log_2\frac{2}{4} \approx 1 $$ 同理,$H(D_{多云})$和$H(D_{下雨})$的计算结果分别为$0.971$和$0.971$。因此,特征“天气”的信息增益为: $$ IG(D, 天气) \approx 0.246 $$ 同样的,我们可以计算出特征“温度”、“湿度”和“风度”的信息增益: $$ IG(D, 温度) \approx 0.028 $$ $$ IG(D, 湿度) \approx 0.152 $$ $$ IG(D, 风度) \approx 0.048 $$ #### 第三步:选择信息增益最大的特征进行划分 根据信息增益,我们可以选择“天气”作为第一个划分特征。当“天气”取值为“晴”时,样本中有2个“是”和2个“否”;当“天气”取值为“多云”时,样本中有4个“是”和1个“否”;当“天气”取值为“下雨”时,样本中有0个“是”和3个“否”。因此,我们可以得到以下决策树: ``` 天气 ├── 晴: 否 ├── 多云 │ ├── 温度 │ │ ├── 热: 是 │ │ ├── 温暖: 是 │ │ └── 寒冷: 否 │ └── 风度 │ ├── 有风: 否 │ └── 无风: 是 └── 下雨 ├── 风度 │ ├── 有风: 否 │ └── 无风: 是 └── 温度 ├── 热: 否 ├── 温暖: 是 └── 寒冷: 是 ``` ### C4.5算法 #### 第一步:计算数据集的熵和各个特征的信息增益比 与ID3算法类似,我们首先需要计算数据集的熵,然后计算各个特征的信息增益。C4.5算法与ID3算法的区别在于,C4.5算法采用信息增益比来选择最优划分特征,防止出现取值较多的特征在信息增益上具有优势的情况。 以特征“天气”为例,我们可以计算其信息增益比: $$ GR(D, 天气) = \frac{IG(D, 天气)}{IV(D, 天气)} $$ 其中,$IV(D, 天气)$表示特征“天气”的固有值,定义为: $$ IV(D, 天气) = -\sum_{v\in 天气} \frac{|D_v|}{|D|}\log_2\frac{|D_v|}{|D|} $$ 特征“天气”的固有值计算如下: $$ IV(D, 天气) = -\frac{4}{14}\log_2\frac{4}{14} - \frac{5}{14}\log_2\frac{5}{14} - \frac{5}{14}\log_2\frac{5}{14} \approx 1.577 $$ 因此,特征“天气”的信息增益比为: $$ GR(D, 天气) = \frac{0.246}{1.577} \approx 0.156 $$ 同样的,我们可以计算出特征“温度”、“湿度”和“风度”的信息增益比: $$ GR(D, 温度) \approx 0.016 $$ $$ GR(D, 湿度) \approx 0.088 $$ $$ GR(D, 风度) \approx 0.029 $$ #### 第二步:选择信息增益比最大的特征进行划分 根据信息增益比,我们可以选择“湿度”作为第一个划分特征。当“湿度”取值为“高”时,样本中有0个“是”和4个“否”;当“湿度”取值为“正常”时,样本中有6个“是”和4个“否”。因此,我们可以得到以下决策树: ``` 湿度 ├── 高: 否 └── 正常 ├── 天气 │ ├── 晴: 是 │ ├── 多云 │ │ ├── 风度 │ │ │ ├── 有风: 否 │ │ │ └── 无风: 是 │ │ └── 温度 │ │ ├── 热: 是 │ │ ├── 温暖: 是 │ │ └── 寒冷: 否 │ └── 下雨 │ ├── 风度 │ │ ├── 有风: 否 │ │ └── 无风: 是 │ └── 温度 │ ├── 热: 否 │ ├── 温暖: 是 │ └── 寒冷: 是 └── 高: 否 ``` 以上就是使用ID3算法和C4.5算法分别构建决策树的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值