机器学习实战之决策树

来源:互联网 发布:servlet 返回json数据 编辑:程序博客网 时间:2024/05/17 17:54

 理论基础:信息论

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]
0 0
原创粉丝点击