都说万事开头难,可一旦开头,就是全新的状态,就有可能收获自己未曾预料到的成果。从2018.12.28开始,决定跟随《机器学习实战》的脚步开始其征程,记录是为了更好的监督、理解和推进,学习过程中用到的数据集和代码都将上传到github
机器学习系列博客:(1)机器学习之K-近邻算法
1. 什么是决策树
用阐述性的语言来说,决策树通过对给出的学习样本进行学习,自行产生出一个树结构,每个叶节点都对应一簇数据,这一簇数据导向的结果是相同的;之后,将该树结构抽离出来,对所需要进行分类并预测结果的数据进行分类,并预测其结果。
(1)决策树在本质上就是一组嵌套的if-else判断规则,看下图:
a. 首先根据判断是不是发来的邮件判断是否为垃圾邮件
b. 再根据是否含涨工资信息来判断是不是要立马查看或下班再看
(2)决策树能做什么
有了上图的决策树后,下次再收到邮件,就可以将邮件交给这棵决策树,里面知道该如何多邮件进行处理
2. 温习几个重要概念在创建决策树之前,先来温习下面的几个重要的概念
(1)自信息对于自信息的理解是学习决策树的基础之基础,下面的内容务必理解!
以下内容摘抄自https://blog.csdn.net/xuejianbest/article/details/80391191,感谢博主的分享,很直接明了的解释了信息公式:
有时候我们会说“信息量好大”,但是究竟怎么比较信息量的大小呢?我们需要量化信息量的值。
举个例子,你扔一个骰子,我不知道点数,你知道并告诉我。你说"点数不大于6",这句话的信息量应该等于0,因为我猜都猜的到,点数不大于6的概率是1,这句话没有带给我任何信息;
你说"点数不大于5",这句话的信息量应该大于0,但是并不大,因为我猜能差不多猜的到,点数不大于5的概率是5/6,这句话带给我的信息较少;
你说"点数为3",这句话的信息量应该大于0,而且应比上面那句话信息量大,因为"点数为3"包含了"点数不大于5"的信息在里面,点数为3的概率是1/6,这句话带给我的信息较多。
所以我们可以做出总结:信息量的值和事件发生的概率有关系,概念越小信息量越大,我们考虑用概率的相反数来量化信息量,但是根据直觉,信息量不应该为负数,所以我们考虑用概率的倒数来量化信息量,设事件A发生的概念为p,则事件A发生了带给我们的信息量为1/p
考虑来考虑去,信息量还应该有一个性质,就是可加性
再举个例子:情况一: 你扔了第一个骰子,告诉我"点数是3";
你扔了第二个骰子,告诉我"点数是1"。
那你两次告诉我的总信息量应该是第一次告诉我的信息量加第二次告诉我的信息量的和。
情况二: 你扔了第一个骰子,什么都没说;
你扔了第二个骰子,告诉我第一次点数是3,第二次点数是1。
根据直觉,这句话的信息量应该和情况一中两句话的信息量的和一样。
根据我们上面信息量的量化公式算一下:
"点数是3"的概率为1/6,信息量为6,"点数是1"的概率为1/6,信息量为6,两句话信息量的和为12第一次"点数是3",第二次"点数是1"的概率为(1/6)*(1/6)=1/36,信息量为36
算出来的信息量并不相等!所以我们要修正我们信息量的量化公式,我们用函数I来修正原来信息量等于概率的倒数的量化公式:设事件A发生的概率为p,则事件A发生了带给我们的信息量为I(1/p)。
两次独立事件A,B发生的概率分别为p1和p2,A和B同时发生概率为p1*p2,如上面所讨论,信息量的性质要求: