Entscheidungsbäume
Verfasst: Sonntag 30. Dezember 2018, 15:44
Hallo zusammen,
ich bin gerade dabei einen kleinen Entscheidungsbaum zu programmieren.
Klappt soweit auch ganz gut.
Nun soll jedes True im Element auch False sein dürfen, umgekehrt aber nicht.
Für die Unterschiedlichen Kombinationen habe ich folgendes kleines Programm:
newp gibt alle Kombinationsmöglichkeiten der Länge 2 an.
Mit den Unterschiedlichen Kombinationsmöglichkeiten, erhalte ich Elemente in Anzahl der Kombinationsmöglichkeiten. Allerdings fällt mir keine Methode ein die Kombinationen an geeigneter Stelle im Element einzubauen.
Folgende Elemente möchte ich erhalten:
elements = [e1,e2,e3,e4]
e1 = [True,True,False,False]
e2 = [True,False,False,False]
e3 = [False,True,False,False]
e4 = [False,False,False,False]
Analog gilt das natürlich auch für ein Element wie
element = [[True,True,False,True]]
Also True und False sortieren sich nicht in chronologischer Reihenfolge.
Ich fürchte, es gibt einen wesentlich leichteren Weg als alles in eine verschachtelte for-Schleife einzubauen.
Hat jemand einen Ratschlag?
LG
ich bin gerade dabei einen kleinen Entscheidungsbaum zu programmieren.
Klappt soweit auch ganz gut.
Code: Alles auswählen
from sklearn import tree
features = [[True,False,False,True],[True,False,False,False],[True,True,True,False],[True,True,False,False]]
tasks = ['A1','A2','A3','A4']
a = tree.DecisionTreeClassifier()
a = a.fit(features,tasks)
element = [[True,True,False,False]]
print(a.predict(element))
Für die Unterschiedlichen Kombinationen habe ich folgendes kleines Programm:
Code: Alles auswählen
import itertools
mylist = [True,False,True,False]
vec=[]
perm = itertools.permutations(mylist,i)
for p in perm:
vec.append(p)
newp=sorted(set(vec))
Mit den Unterschiedlichen Kombinationsmöglichkeiten, erhalte ich Elemente in Anzahl der Kombinationsmöglichkeiten. Allerdings fällt mir keine Methode ein die Kombinationen an geeigneter Stelle im Element einzubauen.
Folgende Elemente möchte ich erhalten:
elements = [e1,e2,e3,e4]
e1 = [True,True,False,False]
e2 = [True,False,False,False]
e3 = [False,True,False,False]
e4 = [False,False,False,False]
Analog gilt das natürlich auch für ein Element wie
element = [[True,True,False,True]]
Also True und False sortieren sich nicht in chronologischer Reihenfolge.
Ich fürchte, es gibt einen wesentlich leichteren Weg als alles in eine verschachtelte for-Schleife einzubauen.
Hat jemand einen Ratschlag?
LG