Estoy utilizando algunos conjuntos de datos disponibles en línea y tratando de visualizar el árbol. Sin embargo, no me permite visualizar la opción de árbol en absoluto. ¿Podría alguien por favor guiarme cómo obtener el diagrama de árbol en weka usando conjuntos de datos disponibles en línea?Visualización del árbol de clasificación de Weka
Respuesta
Mire aquí http://maya.cs.depaul.edu/classes/ect584/weka/classify.html, por ejemplo.
Primero tiene que caber su árbol de decisión (utilicé el clasificador J48 en el conjunto de datos iris
), de la manera habitual. En el panel de la lista de resultados (abajo a la izquierda en Weka explorer), haga clic con el botón derecho en la salida correspondiente y seleccione "Visualizar árbol" como se muestra a continuación.
Si ha instalado el Prefuse plugin, incluso se puede visualizar su árbol en un diseño más bonito.
¿cómo guardar esto en un archivo? –
Si desea hacerlo a través de un programa Java, escribir el siguiente programa:
import java.awt.BorderLayout;
import java.io.BufferedReader;
import java.io.FileReader;
import weka.classifiers.*;
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.gui.treevisualizer.PlaceNode2;
import weka.gui.treevisualizer.TreeVisualizer;
public class WekaJ48 {
public static void main(String args[]) throws Exception {
// train classifier
J48 cls = new J48();
Instances data = new Instances(new BufferedReader(new File
Reader("D:\\sample.arff")));
data.setClassIndex(data.numAttributes() - 1);
cls.buildClassifier(data);
// display classifier
final javax.swing.JFrame jf =
new javax.swing.JFrame("Weka Classifier Tree Visualizer: J48");
jf.setSize(500,400);
jf.getContentPane().setLayout(new BorderLayout());
TreeVisualizer tv = new TreeVisualizer(null,
cls.graph(),
new PlaceNode2());
jf.getContentPane().add(tv, BorderLayout.CENTER);
jf.addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
jf.dispose();
}
});
jf.setVisible(true);
tv.fitToScreen();
}
}
verá una ventana emergente que muestra el árbol.
La opción "Árbol visualizado" es diable porque no ha instalado el plugin de visualización apropiado. Algunos de los algoritmos de clasificación basados en árboles (como R48 y RandomTree) utilizan el "juego de herramientas de visualización previa al prefijo", por lo que para visualizar el árbol es necesario instalar el complemento prefuseTree
.
Utilice Weka 3.7. * Que tiene incorporado el Administrador de paquetes para instalar el complemento fácilmente.
Con Weka 3.7, que incluye un gestor de paquete, usted puede hacer esto:
Ir a http://weka.wikispaces.com/Unofficial+packages+for+WEKA+3.7 y leer el texto acerca de los paquetes, e ir a
Visualización
graphviz-treevisualize - Generando buenos gráficos en el Explorador desde árboles (por ejemplo, J48) utilizando los ejecutables de GraphViz.
Copiar este URL en el portapapeles:
(. Creo que este es un acuerdo de recompra github de uno de los desarrolladores weka El enlace puede cambiar ligeramente en el futuro)
Abra el administrador de paquetes, haga clic en el botón "Archivo/URL", ingrese esta URL desde el portapapeles, instale el paquete.
Ahora ejecuta un clasificador. Haga clic derecho en la lista de resultados (ver foto)
A continuación, se puede visualizar un árbol de decisiones como buenos gráficos de mapa de bits, y exportarlo como .bmp, .png, .eps archivo mediante el diálogo Guardar como. (Los .eps archivo contiene un objeto de mapa de bits incrustado):
Si necesita gráficos vectoriales de salida, ejecute de la clasificación de la línea de comandos, y la exportación a .DOT formato de archivo.
java -Xmx1024M -cp /usr/local/lib/R/site-library/RWekajars/java//weka.jar weka.classifiers.trees.J48 -t breast-cancer.arff -C 0.25 -M 2 -g > breast-cancer.arff.dot
A continuación, traslado al formato SVG:
dot -o breast-cancer.arff.dot.svg breast-cancer.arff.dot -Tsvg
En Java, el código que implementa esta se encuentra en paquetes/graphviz-treevisualize-2014.8.1.jar
weka/gui/visualize/plugins/GraphVizPanel.class
weka/gui/visualize/plugins/GraphVizTreeVisualization.class
weka/gui/visualize/plugins/GraphVizTreeVisualization.props
weka/gui/visualize/plugins/GraphVizTreeVisualizationPlugin$1$1.class
weka/gui/visualize/plugins/GraphVizTreeVisualizationPlugin$1$2.class
weka/gui/visualize/plugins/GraphVizTreeVisualizationPlugin$1.class
weka/gui/visualize/plugins/GraphVizTreeVisualizationPlugin.class
Por alguna razón, cuando lo hago, no pasa nada. sí visualiza el árbol en el diseño predeterminado, pero no en GraphViz. – Nik
@knb ¿Cómo puedo exportar esto desde mi código Java? – Pavlos
No recuerdo. Tal vez invocar un comando de shell en Java? Asegúrese de seleccionar un directorio de trabajo apropiado antes de escribir el archivo * .dot * y tal vez utilizar rutas absolutas a su (s) archivo (s) de datos http://stackoverflow.com/questions/1410741/want-to-invoke-a- linux-shell-command-from-java – knb
Si están utilizando la línea de comandos de WEKA (CLI simple) puede generar la información del gráfico con el parámetro -g yt Para utilizarlo en GraphViz.
Ex corriendo J48 en el conjunto de datos del iris:
`java weka.classifiers.trees.J48 -C 0.25 -M 2 -t "C:\datasets\iris.arff" -g`
salidas:
digraph J48Tree {
N0 [label="petalwidth" ]
N0->N1 [label="<= 0.6"]
N1 [label="Iris-setosa (50.0)" shape=box style=filled ]
N0->N2 [label="> 0.6"]
N2 [label="petalwidth" ]
N2->N3 [label="<= 1.7"]
N3 [label="petallength" ]
N3->N4 [label="<= 4.9"]
N4 [label="Iris-versicolor (48.0/1.0)" shape=box style=filled ]
N3->N5 [label="> 4.9"]
N5 [label="petalwidth" ]
N5->N6 [label="<= 1.5"]
N6 [label="Iris-virginica (3.0)" shape=box style=filled ]
N5->N7 [label="> 1.5"]
N7 [label="Iris-versicolor (3.0/1.0)" shape=box style=filled ]
N2->N8 [label="> 1.7"]
N8 [label="Iris-virginica (46.0/1.0)" shape=box style=filled ]
}
y en GraphViz:
- 1. Probabilidad de clasificación WEKA de las clases
- 2. Visualización del árbol de procesos - tlist/tasklist
- 3. Algoritmo de visualización de árbol
- 4. Visualización de árbol con Java
- 5. Clasificación básica de texto con Weka en Java
- 6. Mallet vs Weka para la clasificación de texto
- 7. Visualización de visualización de mapa de árbol para la salida del generador de perfiles de Python
- 8. ¿Cómo se representa el texto para la clasificación en weka?
- 9. Clasificación de árbol con una ruta materializada?
- 10. Visualización de árbol en la página JSP
- 11. ¿Qué es un árbol podado y no podado en Weka?
- 12. Usando árbol rojo-negro para la clasificación
- 13. Cuál es el significado de jitter en la pestaña de visualización de weka
- 14. Árbol binario del árbol general
- 15. visualización del gráfico de red JavaScript
- 16. árbol de clasificación con otra columna en SQL Server 2008
- 17. Interpretando la salida de StringToWordVector() - Weka
- 18. Medición del rendimiento del algoritmo de clasificación
- 19. Centro de búsqueda del árbol
- 20. Visualización del cumplimiento W3C
- 21. Weka Atributo Selección
- 22. WEKA K-Means Clustering
- 23. Visualización del historial de combinación de Subversion
- 24. ¿Cómo puedo desactivar la clasificación del usuario final de XtraTreeList?
- 25. columnas de la normalización de Weka
- 26. Cómo usar pesas en Weka
- 27. ¿Cómo se sobreutilizan deliberadamente los clasificadores de árboles Weka?
- 28. Visualización del modelo de datos de Haskell desde la fuente
- 29. Aplicación del Rojo-Negro Árbol en C#
- 30. Altura del árbol binario
Qué algoritmo de clasificación basado en árboles se utilizan? – SuB