Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

pl:miw:miw08_rbs_ml:termostatnode [2017/07/17 10:08]
pl:miw:miw08_rbs_ml:termostatnode [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 +<​code=java>​
 +package MachineLearning;​
  
 +import java.util.*;​
 +
 +/**
 + * Klasa reprezentująca węzeł drzewa decyzyjnego. Dziedziczy po liściu drzewa
 + * @author Angello
 + *
 + */
 +public class TermostatNode extends TermostatLeaf
 +{
 + /**
 + * Rodzaj testu wykonywanego w danym węźle
 + */
 + public NominalTest Test;
 + /**
 + * Mapa zawierająca węzły lub liście do których prowadzi dany węzeł
 + */
 + HashMap<​Integer,​ TermostatLeaf>​ m_listOfLeaves = new HashMap<​Integer,​ TermostatLeaf>​();​
 +
 + /**
 + * Konstruktor
 + * @param test Test
 + * @param category Kategoria większościowa ​
 + * @param P Lista przykładów uczących
 + */
 + public TermostatNode(NominalTest test, Integer category, ArrayList<​Integer>​ P)
 + {
 + Test = test;
 + m_category = category;
 + m_P = new ArrayList<​Integer>​(P);​
 + }
 +
 + /**
 + * Konstruktor domyślny
 + */
 + public TermostatNode()
 + {
 + }
 +
 + /**
 + * Dodaje liść lub węzeł do którego można przejść z danego węzła
 + * @param r
 + * @param node
 + */
 + public void addNode(Integer r, TermostatLeaf node)
 + {
 + if (!m_listOfLeaves.containsKey(r))
 + m_listOfLeaves.put(r,​ node);
 + }
 +
 + /**
 + * Rekurencyjne przeszukuje drzewo żeby znaleźć kategorię podanego zestawu atrybutów
 + */
 + public Integer getCategory(Object[] attributes)
 + {
 + Integer key = (Integer)attributes[Test.AttributeIndex];​ //​ Wartość atrybutu który testujemy
 + if (!Test.Results().contains(key)) //​ Jeśli R (rezultaty) nie zawiera wartości '​value'​
 + return this.category();​
 +
 + return m_listOfLeaves.get(key).getCategory(attributes);​ //​ Rekurencyjne wywołanie dla węzła który spełnia test
 + }
 +
 + /**
 + * Tworzy bardziej przejrzystą strukturę drzewa
 + */
 + public ShowedNode showTree()
 + {
 + ShowedNode node = new ShowedNode();​
 +
 + node.P = new Integer[m_P.size()];​
 + m_P.toArray(node.P);​
 + node.TestName = Test.AttributeName;​
 +
 + for (Integer key : m_listOfLeaves.keySet())
 + {
 + node.addNode(key,​ m_listOfLeaves.get(key).showTree());​
 + }
 + return node;
 + }
 +}
 +
 +</​code>​
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0