Entscheidungsbäume

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Freumel
User
Beiträge: 69
Registriert: Donnerstag 25. Januar 2018, 13:47

Hallo zusammen,

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))
Nun soll jedes True im Element auch False sein dürfen, umgekehrt aber nicht.
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))
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
Antworten