如何创建决策树(ID3)?

时间:2011-07-24 12:47:37

标签: machine-learning

基于这篇文章:http://www.cise.ufl.edu/~ddd/cap6635/Fall-97/Short-papers/2.htm我想构建决策树来对我的测试文档进行分类。

列车设置
第1课中的文件:
文件1中的文字:中国北京汉语 文件2:中文中文上海 文件3中的文字:中国澳门 第2课中的文件:
文件4中的文字:东京日本中文

TEST SET (我必须决定文件下面的哪个班级)
文件5:中文中文东京日本北京


首先,据我所知,我必须计算熵(S)所以:
熵(S) = - (|所有类中的| 1 | / |文档中的文档|)* log2(|所有类中的| 1 | / |文档中的文档|) - (| class2中的文档| / |所有类中的文档|)* log2(| class2中的文档| / |所有类中的文档|)= - (3/4)log2(3/4) - (1/4)log2(1/4)= - 0.22 - ( - 0.35)= 0.13
是吗?

基于这篇文章,我现在应该计算熵(Sweak)和熵(Sstrong) - 但在我的情况下我应该计算什么?我有文件,文字和课程。

1 个答案:

答案 0 :(得分:2)

决策树告诉您查看项目功能的顺序,以便对该项目进行分类。

显然,在您决定如何对项目进行分类之前,您可以按照自己喜欢的顺序查看功能。这可能会导致一个很大的,因此非常具体的决策树。这称为过度拟合。首选一个小的决策树,因为一个小的决策树不太可能正确地对示例进行分类,并且新项目不正确。

ID3是一种用于创建小型决策树的算法,可以正确地对示例进行分类。它通过计算特征的熵来实现。熵告诉您,通过检查该功能获得了多少信息。因此,您必须回答的第一个问题是:您要分类的项目有哪些功能?

例如,要将项目商品分类为接受拒绝,您可能需要查看过去的项目并为每个项目记录以下功能:

  • 完成需要多长时间?
  • 您获得多少报酬(每投入一小时有效)?
  • 使用了哪些工具和语言?
  • 您对该软件的个人兴趣如何?
  • 该项目有谁挑战?
  • 工作是在家里还是在现场完成的?
  • 与客户的沟通是否令人满意?

同时记录您是否会再次执行相同的项目。使用它来分类项目。现在,您可以根据过去项目的功能及其分类来构建决策树。