¿Cómo hacer que el árbol de decisiones de Python sea más comprensible?

Tengo un archivo de datos. La última columna de los datos tiene +1 y -1 variables distintivas. También tengo los nombres de identificación de cada columna en un archivo separado.

p.ej

1 2 3 4 1 5 6 7 8 1 9 1 2 3 -1 4 5 6 7 -1 8 9 1 2 -1 

y para cada columna tengo los nombres Q1, Q2, Q3, Q4, Q5 respectivamente.

Quiero implementar el clasificador de árbol de decisiones, así que escribí el siguiente código:

 import numpy from sklearn import tree print('Reading data from ' + fileName); data = numpy.loadtxt(fileName); print('Getting ids from ', idFile) idArray = numpy.genfromtxt('cleanedID.csv', dtype='str') print('Adding ids') print('data dimensions: ', data.shape) print('idArray dimensions: ', idArray.shape) data = numpy.append(idArray, data, axis = 0) y = data[:,-1] x = data[:, 1:-1] classifier = tree.DecisionTreeClassifier(max_depth = depth) classifier = classifier.fit(x, y) with open('graph.dot', 'w') as file: tree.export_graphviz(classifier, out_file = file) file.close() 

Utilicé graphviz para convertir el archivo .dot al archivo .png.

    El problema es que el árbol de decisión que se ve algo así como: introduzca la descripción de la imagen aquí

    No entiendo lo que X [número] significa. Busqué y encontré que value = [5 0] significa que la clase 5 tiene 0 objetos y la clase 0 tiene 5 objetos, pero solo tengo +1 y -1 variables distintivas. De todos modos, ¿puedo modificar este árbol de decisiones para que pueda ver los nombres de las columnas (Q1, Q2, Q3 …) en la imagen del árbol de decisiones para que pueda entender que significa esto?

    Gracias

    Value = [5 0] significa que la primera clase tiene 5 miembros y la segunda clase tiene 0 miembros. Para usted, el orden de clase es probablemente [-1 1] .

    En cuanto a los nombres de columna: como lo señaló yangjie, X[158] significa la columna número 159 (indexación cero). La regla ya está bastante detallada: X[168]<=1.5 significa que para una fila dada, el árbol está decidiendo si ir hacia la izquierda o hacia la derecha según el valor de la columna 168 y cómo se compara con 1.5.

    Puede agregar nombres de columna usando el argumento opcional feature_names para export_graphviz