2016-10-03 2 views
0

Я изучаю, как реализовать простое дерево решений в C#. Может кто-нибудь объяснить мне, как это выглядит в псевдокоде или иметь простой учебник для реализации в C#?Реализация дерева решений

У меня есть этот набор данных:

enter image description here

(отсюда: http://storm.cis.fordham.edu/~gweiss/data-mining/weka-data/weather.nominal.arff)

, и я сделал графическое дерево решений enter image description here

(Извините за мой английский)

+1

Существует не один способ реализации дерева решений. Есть * много * разных методов и алгоритмов. Вы можете вручную указать параметры. Вы можете создать таблицу решений так же, как и ту, что у вас есть, и запросить ее. Вы могли бы использовать даже фактическое дерево, узлами которого являются метки правил. Поиск конкретного ответа тогда будет таким же, как поиск листового узла с определенным путем. –

+0

. Я ищу самый простой способ его реализации ... Нужно руководствоваться. – Revolt

+0

Самый простой способ - прочитать о деревьях решений и реализациях и найти тот, который лучше всего подходит вам. –

ответ

1

Чтобы ответить на вопрос частично, очевидно, конц Ниже описывается описание дерева решений here. Чтобы реализовать дерево решений для указанного выше типа, вы можете объявить класс, соответствующий типу, из таблицы в вашем вопросе. На основе этого типа вам необходимо создать структуру данных дерева, в которой количество детей не ограничено. Хотя фактические данные содержатся только в листьях, было бы лучше, чтобы каждый член базового типа был определен как NULL. Таким образом, в каждом узле вы можете установить только те элементы, которые установлены для определенного значения его дочерних элементов. Кроме того, должно быть представлено количество узлов со значениями no и yes.

0

Моя идея только это:

if outlook = "overcast" then no 
if outlook = "sunny" and humidity = "normal" then yes 
if outlook = "sunny" and humidity = "high" then no 
if outlook = "rain" and wind = "true" then no 
if outlook = "rain" and wind = "fasle" then yes 

Я действительно не знаю, как продолжить

1

Если строим дерево решение, основанное на алгоритме ID3, вы можете ссылаться на этот псевдокод.

ID3 (Examples, Target_Attribute, Attributes) 
Create a root node for the tree 
If all examples are positive, Return the single-node tree Root, with label = +. 
If all examples are negative, Return the single-node tree Root, with label = -. 
If number of predicting attributes is empty, then Return the single node tree Root, 
with label = most common value of the target attribute in the examples. 
Otherwise Begin 
    A ← The Attribute that best classifies examples. 
    Decision Tree attribute for Root = A. 
    For each possible value, vi, of A, 
     Add a new tree branch below Root, corresponding to the test A = vi. 
     Let Examples(vi) be the subset of examples that have the value vi for A 
     If Examples(vi) is empty 
      Then below this new branch add a leaf node with label = most common target value in the examples 
     Else below this new branch add the subtree ID3 (Examples(vi), Target_Attribute, Attributes – {A}) 
End 
Return Root 

Если вы хотите узнать больше об алгоритме ID3, пожалуйста, перейдите по ссылке ID3 algorithm

Смежные вопросы