决策树,顾名思义就是树结构的.
从上至下的有监督学习
网上随便搞的一张图
从最初开始薪水至少50000刀就是个根节点,而得出的拒绝和接受offer,就是有监督学习的标签,在这里叫叶子节点,而什么上班路上花的时间不超过1小时,提不提供咖啡什么的就叫决策节点,也叫分叉,而这些条件本身就叫做属性.
建立决策树主要有三种算法ID3,C4.5,CART
信息增益
遍历所有特征,选出特征F对数据训练集T影响最大的特征,
而这个影响就叫信息增益,
其本质信息增益G(F,T) = H(T) - H(T|F) H(T)是熵,H(T|F)是条件熵根据这张图来看
熵减条件熵是互信息I(T|F)
信息增益率 C4.5
GR(T|F) = G(T|F)/H(T)
信息增益除以熵就是信息增益率
GINI系数 (面试点) CART
公式是由f(x) = -lnx 进行泰勒一阶展开,在忽略高阶无穷小的项,之后得到图中的基尼(gini)系数
可以看的出基尼系数和熵类似,都是对不确定性的描述.
随机森林
bagging 把一个测试集分成多个测试集,然后进行测试,把所有结果集拿出来分析
而随机森林可以理解为对bagging的一个优化
1.用botostrap进行采样n个样本
2.随机获取k个属性,选择最佳分割属性建立CART决策树
3.然后重复m次获取得到m棵决策树
4.这就是随机森林,然后投票投出结果
以上就是随机森林的定义,笔试题一般都会出
投票则根据权重来,得出的所有分类器,根据自己的权重得出
Adaboost
不太理解原理先跟流程套公式吧..
首先拿到所有样本,所有分类器都是一样的权重
首先根据一样的权重进行Dm学习,得到第一个分类器,
然后进行分类,并且观察误分类的值
求出分类误差率,根据这公式,Wmi是权重
计算Gm的系数am
然后再重新分配权重Wmi是上次的权重
重复这个过程直到达到最优解
代码: