小编Jim*_*tin的帖子

给出真理表创建二叉树所需的帮助

首先,为了提供完整的信息披露,我想指出这与机器学习课程中的家庭作业有关.这个问题不是作业问题,而是我需要弄清楚的是为了完成创建ID3决策树算法的更大问题.

在给出真值表时,我需要生成类似于以下的树

let learnedTree = Node(0,"A0", Node(2,"A2", Leaf(0), Leaf(1)), Node(1,"A1", Node(2,"A2", Leaf(0), Leaf(1)), Leaf(0)))
Run Code Online (Sandbox Code Playgroud)

learnedTree是BinaryTree类型,我定义如下:

type BinaryTree =
    | Leaf of int
    | Node of int * string * BinaryTree * BinaryTree
Run Code Online (Sandbox Code Playgroud)

ID3算法考虑了各种方程式来确定在哪里拆分树,而且我已经弄明白了,我只是在从真值表创建学习树时遇到了麻烦.例如,如果我有下表

A1 | A2 | A3 | Class
1     0    0      1
0     1    0      1
0     0    0      0
1     0    1      0
0     0    0      0
1     1    0      1
0     1    1      0
Run Code Online (Sandbox Code Playgroud)

我决定拆分属性A1,最后会得到以下内容:

              (A1 = 1)  A1   (A1 = 0)
   A2 | A3 | …
Run Code Online (Sandbox Code Playgroud)

f#

6
推荐指数
2
解决办法
1838
查看次数

标签 统计

f# ×1