机器学习实战之决策树

 理论基础:信息论

1. 熵(entropy)H(S)用来测量一个数据集S的不确定程度。
  H(S)=xXp(x)log2p(x)
 -  S -待计算熵的数据集,在ID3算法的每次迭代中会改变
 - X -S中类别的集合
 - p(x) -属于类别x的元素站集合S中总元素的比例
  H(S)=0 ,集合 S 被完全分到一个类中。
 在ID3中,对每一个属性熵,熵最小的属性在本次迭代中用来划分数据集。

2. 信息增益(information Gain)
 信息增益IG(A)用来度量数据集S在被属性A划分前和划分后的熵的变化。也即有多少不确定性被减少了。
 

IG(A)=H(S)tTp(t)H(t)

  - H(S):集合S的熵
  - T:数据集S被属性A划分后产生的子集 的集合
  -  p(t) :属于子集t的元素个数占集合S的比例
  -  H(t) :子集t的熵
- 在一次迭代中信息增益最大的属性用来划分数据集

 学习内容

2. 常用的获取列表的方法:
f=[exmaple[0] for exmaple in myDat],返回一个list
myDat=[ [0,1,2] , [1,1,2] , [1,3,2] ]
f=[0,1,1]

3. matplotlib.pyplot.subplot(*args,**kwargs)
subplot(nrows,ncols,plot_number):把一个图分成nrow*ncols个子图,在plot_number中画图
如果这三个参数都小于10,可以写成subplot(211)

4. matplotlib.pyplot.annotate(*args,**kwargs)
创建注释:

5. 函数特殊属性:__dict__
__dict__用来存储一个对象的属性的字典或映射
经常会看到在一个函数中出现另一个函数的属性,如:在plottree中会出先plottree.yoff=…..,在其他函数中也会出现plottree.xoff=….
这样就可以添加plottree函数的属性,也可以利用__dict__来添加属性plottree.\_\_dict\_\_['mul']=mul  ##其中mul可以是一个函数
通过dir(functionname)可以查看函数的属性

6. pickle模块中dump函数
pickle.dump(obj,file[,protocol])将对象obj写入打开的文件对象file中,文件对象必须具有写属性。

fw=open(filename,'w')
pickle.dump(inputTree,fw)
fw.close
#####从文件中载入时:
fr=open(filename)
tree=pickle.load(fr)

7. 列表list中append和extend的区别:

a=[1,2,3]
b=[4,5,6]
a.append(b)
a=[1,2,3,[4,5,6]]
a.extend(b)
a=[1,2,3,4,5,6]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值