Introducción
Orange www.ailab.si\orange
Es una herramienta para data mining escrita en C++, que define componentes. Es una librería que se importa desde Python. Los componentes pueden ser accedidos:
Victoria Montes
[email protected]
por medio de scripts desde Python. por medio de widgets (componentes GUI), desde el Canvas.
Es posible crear y agregar nuevos componentes.
2
1
Instalación
Componentes
Es de distribución libre bajo licencia GPL. Requerimientos:
Orange provee componentes para: Entrada/salida de datos, soporta los formatos C4.5, assistant, retis y tab(nativo). Preprocesamiento de datos: selección, discretización, etc. Modelado predictivo: árboles de clasificación, regresión logística, clasificador de Bayes, reglas de asociación, etc. Métodos de descripción de datos: mapas autoorganizados, k-means clustering, etc. Técnicas de validación del modelo: como validación cruzada.
Python, para scripting. Los paquetes Qt,PyQt, PyQwt, para usar Canvas y widgets. El paquete GraphViz, para algunos widgets.
Puede descargarse el paquete completo para Windows, desde: http://www.ailab.si/ora ilab.si/orange/downloads.a nge/downloads.asp sp http://www.a
Para utilizar el Canvas puede ser necesario el modulo NumPy (paquete de funciones matemáticas).
3
Canvas
4
Ejemplo Eje mplo - Ent Entrad rada a Actu aliza las c onexio nes entr e wid gets
Se trata de predecir el consumo de combustible en millas por galón (variable de clase continua mpg). Cantidad de instancias : 398. Atributos:
Widget
Workspace
Descripción del componente
Mensajes de error y warnings
5
numero de cilindros (discreto). caballos de fuerza (continuo). peso (continuo). aceleración (continuo). modelo-año (discreto). origen (discreto). nombre (discreto).
6
1
Cargar los datos
Ej Ejem empl plo o - Pa Paso sos s
Carga los datos.
Tratar los valores desconocidos.
Discretizar las variables continuas. Aplicar Bayes.
Aplicar árbol de decisión.
Visualizar los resultados. Num er o de i n s t an c i as
Can t i d ad d e atr i b u to s Variable de clase continua 8
7
Valores desconocidos
Discret Dis cretiza izació ción n de atributo atributos s
Tratamiento de los valores desconocidos
conectar los módulos 6 valores desconocidos
9
Discretización de atributos
10
Bayes
Método para estimar la probabilidad de clase
Método para estimar las probabilidades condicionales
11
12
2
Visualización (nomograma)
Visualización (nomograma)
predicción
13
Target class
14
Arbol de clasificación
Selección de atributos
Atributos seleccionados
16
15
Visualización del árbol de clasificación
Visualización del árbol de clasificación
17
18
3
Visualización del árbol de clasificación
Visualización de instancias de un nodo
Color del nodo: - defau default, lt, - instances in node: color proporcional proporcional a la cantidad cantidad de instancias asociadas al nodo. - majority class probability: color relacionado co con n la probab probabilidad ilidad de la clase mayoritaria. - target class probability: color relacionado con la proba probabilidad bilidad de la clase objetivo. - target class distribution: color color relacio onado nado co con n la distribucion de la clase objetivo.
19
Visualización
Visualización
de instancias de un nodo
del árbol de clasificación II
20
Selección del nodo
Instancias asociadas al nodo
22
21
Visualización del árbol de clasificación II
Visualización del árbol de clasificación II
23
24
4
Visualización de instancias de un nodo
Python Win watch
1 instancia
step / step over
3 instancias
Debugger
29 instancias
carga script
run
26
25
Ejemplo – Regla Reglas s de Aso Asociación ciación
Ejemplo – Regla Reglas s de Aso Asociación ciación
Entrada: información sobre pasajeros del Titanic. Atributos:
1. 2. 3.
Clase (first, second, third, crew) Edad Sexo Sobrevivió
4.
Se generan las reglas, con mínimo de 0.4 de soporte rules = orange.AssociationRulesInducer(data.select(selection,0),support=0.4)
5.
Script Se importan los paquetes necesarios. import orange, orngAssoc Se cargan los datos en la variable data data = orange.ExampleTable("tita orange.ExampleTable("titanic") nic") Seleccionamos un subconjunto de 80% del tamaño original orange.MakeRandomIndices2(data,0.8) selection = orange.MakeRandomIndices2(data,0.8)
Se ordenan las reglas por soporte y confianza orngAssoc.sort(rules, ["support", "confidence"])
6.
Se imprimen las reglas print "%i reglas con soporte mayor mayor o igual a %5.3f encontradas.\n" % (len(rules), 0.4) orngAssoc.printRules(rules[:13],, ["support", "confidence"]) orngAssoc.printRules(rules[:13]
28
27
Ejecución (PythonWin)
Ejecución (PythonWin) Ejecución paso a paso
29
30
5
Ejecución (PythonWin)
31
6