Practical Data Mining Tutorial 1: Introduction to the WEKA Explorer

Transcription

Practical Data Mining Tutorial 1: Introduction to the WEKA Explorer
Practical Data Mining
Tutorial 1: Introduction to the WEKA Explorer
Mark Hall, Eibe Frank and Ian H. Witten
May 5, 2011
c
2006-2012
University of Waikato
1
Getting started
This tutorial introduces the main graphical user interface for accessing WEKA’s facilities, called the
WEKA Explorer. We will work with WEKA 3.6
(although almost everything is the same with other
versions), and we assume that it is installed on
your system.
Este tutorial presenta la interfaz gráfica de usuario
principal para acceder a las instalaciones de
WEKA, llamado Explorer WEKA. Vamos a trabajar con WEKA 3.6 (aunque casi todo es lo
mismo con otras versiones), y suponemos que se
ha instalado en su sistema.
Invoke WEKA from the Windows START menu
(on Linux or the Mac, double-click weka.jar or
weka.app). This starts up the WEKA GUI
Chooser. Click the Explorer button to enter the
WEKA Explorer.
Invocar WEKA desde el menú INICIO de Windows (en Linux o Mac, haga doble clic en weka.jar
o weka.app). Esto pone en marcha el GUI
Chooser WEKA. Haga clic en el Explorer botón
para entrar en el WEKA Explorer.
Just in case you are wondering about the other
buttons in the GUI Chooser: Experimenter
is a user interface for comparing the predictive
performance of learning algorithms; KnowledgeFlow is a component-based interface that has a
similar functionality as the Explorer; and Simple CLI opens a command-line interface that emulates a terminal and lets you interact with WEKA
in this fashion.
Sólo en caso de que usted se está preguntando
sobre el resto de botones en la GUI Chooser:
Experimenter es una interfaz de usuario para
comparar el rendimiento predictivo de algoritmos
de aprendizaje; KnowledgeFlow es una interfaz
basada en componentes que tiene una funcionalidad similar a la de Explorer; y Simple CLI se
abre un comando-lı́nea de interfaz que emula una
terminal y le permite interactuar con WEKA de
esta manera.
2
The panels in the Explorer
The user interface to the Explorer consists of six
panels, invoked by the tabs at the top of the window. The Preprocess panel is the one that is
open when the Explorer is first started. This
tutorial will introduce you to two others as well:
Classify and Visualize. (The remaining three
panels are explained in later tutorials.) Here’s a
brief description of the functions that these three
panels perform.
La interfaz de usuario de la Explorer se compone
de seis paneles, invocadas por las etiquetas en la
parte superior de la ventana. El panel de Preprocess es la que está abierta cuando la Explorer por
primera vez. Este tutorial le introducirá a otros
dos, ası́: Classify y Visualize. (Los otros tres
paneles se explican en tutoriales más tarde.) He
aquı́ una breve descripción de las funciones que estos tres grupos de realizar.
Preprocess is where you to load and preprocess
data. Once a dataset has been loaded, the
panel displays information about it. The
dataset can be modified, either by editing
it manually or by applying a filter, and the
modified version can be saved. As an alternative to loading a pre-existing dataset, an
artificial one can be created by using a generator. It is also possible to load data from
a URL or from a database.
Preprocess es donde puedes cargar los datos y
preproceso. Una vez que un conjunto de
datos se ha cargado, el panel muestra información sobre Àl. El conjunto de datos puede
ser modificado, ya sea mediante la edición
de forma manual o mediante la aplicación de
un filtro, y la versión modificada se puede
guardar. Como alternativa a la carga de un
conjunto de datos pre-existentes, una artificial se pueden crear mediante el uso de un
generador. También es posible cargar datos
desde una URL o desde una base de datos.
1
Classify is where you invoke the classification
methods in WEKA. Several options for the
classification process can be set, and the result of the classification can be viewed. The
training dataset used for classification is the
one loaded (or generated) in the Preprocess
panel.
Classify es donde se invoca a los métodos de clasificación en WEKA. Varias opciones para el
proceso de clasificación se puede establecer,
y el resultado de la clasificación se puede ver.
El conjunto de datos de entrenamiento utilizados para la clasificación es la carga (o generada) en el panel de Preprocess.
Visualize is where you can visualize the dataset
loaded in the Preprocess panel as twodimensional scatter plots. You can select the
attributes for the x and y axes.
Visualize es donde se puede visualizar el conjunto
de datos cargados en el panel de Preprocess
como diagramas de dispersión de dos dimensiones. Puede seleccionar los atributos de los
x y y ejes.
3
The Preprocess panel
Preprocess is the panel that opens when the
WEKA Explorer is started.
3.1
Preprocess es el panel que se abre cuando el Explorer WEKA se ha iniciado.
Loading a dataset
Before changing to any other panel, the Explorer
must have a dataset to work with. To load one
up, click the Open file... button in the top
left corner of the panel. Look around for the
folder containing datasets, and locate a file named
weather.nominal.arff (this file is in the data
folder that is supplied when WEKA is installed).
This contains the nominal version of the standard
“weather” dataset. Open this file. Now your
screen will look like Figure 1.
Antes de cambiar a cualquier otro panel, el Explorer debe tener un conjunto de datos para trabajar. Para cargar una, haga clic en el botón de
Open file... en la esquina superior izquierda del
panel. Mire a su alrededor para la carpeta que contiene los conjuntos de datos y busque un archivo
llamado weather.nominal.arff (este archivo está
en el carpeta de data que se suministra cuando
WEKA se instala). Este contiene la versión nominal de la norma “tiempo” conjunto de datos. Abrir
archivo. Ahora la pantalla se verá como la Figure 1.
The weather data is a small dataset with only 14
examples for learning. Because each row is an independent example, the rows/examples are called
“instances.” The instances of the weather dataset
have 5 attributes, with names ‘outlook’, ‘temperature’, ‘humidity’, ‘windy’ and ‘play’. If you click
on the name of an attribute in the left sub-panel,
information about the selected attribute will be
shown on the right. You can see the values of the
attribute and how many times an instance in the
dataset has a particular value. This information is
also shown in the form of a histogram.
Los datos de clima es un conjunto de datos
pequeño con sólo 14 ejemplos para el aprendizaje.
Debido a que cada fila es un ejemplo independiente, las filas/ejemplos son llamados “casos”. Los
casos del conjunto de datos meteorológicos tienen
5 atributos, con ‘perspectivas nombres’ , la ‘temperatura’, ‘humedad’, ‘jugar’ con mucho ‘viento’
y. Si hace clic en el nombre de un atributo en
el sub-panel de la izquierda, la información acerca
del atributo seleccionado se muestra a la derecha.
Usted puede ver los valores de los atributos y las
veces que una instancia del conjunto de datos tiene
un valor particular. Esta información se muestra
también en la forma de un histograma.
2
Figure 1: The Explorer’s Preprocess panel.
Todos los atributos de este conjunto de datos son
“nominales”, es decir, tienen un conjunto finito de
valores predefinidos. Cada instancia se describe
un pronóstico del tiempo para un dı́a en particular
y si a jugar un cierto juego en ese dı́a. No está
muy claro lo que el juego es, pero supongamos que
es el golf. ‘Jugar’ el último atributo es el atributo “class”—que clasifica la instancia. Su valor
puede ser ‘si’ o ‘no’. Sı́ significa que las condiciones climáticas están bien para jugar al golf, y
no significa que no están bien.
All attributes in this dataset are “nominal,” i.e.
they have a predefined finite set of values. Each
instance describes a weather forecast for a particular day and whether to play a certain game on that
day. It is not really clear what the game is, but let
us assume that it is golf. The last attribute ‘play’
is the “class” attribute—it classifies the instance.
Its value can be ‘yes’ or ‘no’. Yes means that the
weather conditions are OK for playing golf, and no
means they are not OK.
3.2
Exercises
To familiarize yourself with the functions discussed
so far, please do the following two exercises. The
solutions to these and other exercises in this tutorial are given at the end.
Para familiarizarse con las funciones discutido
hasta ahora, por favor, los dos ejercicios siguientes.
Las soluciones a estos y otros ejercicios de este tutorial se dan al final.
Ex. 1: What are the values that the attribute
‘temperature’ can have?
Ex. 1: Cuáles son los valores que la ‘temperatura’
el atributo puede tener?
3
Ex. 2: Load a new dataset. Press the ‘Open file’
button and select the file iris.arff. How
many instances does this dataset have? How
many attributes? What is the range of possible values of the attribute ’petallength’ ?
3.3
Ex. 2: Carga un nuevo conjunto de datos. Pulse
el botón ‘Abrir el archivo’ y seleccione el
archivo iris.arff. Cuántos casos se han
esta base de datos? Cómo muchos atributos? Cuál es el rango de valores posibles de
‘petallength’ el atributo?
The dataset editor
It is possible to view and edit an entire dataset
from within WEKA. To experiment with this, load
the file weather.nominal.arff again. Click the
Edit... button from the row of buttons at the
top of the Preprocess panel. This opens a new
window called Viewer, which lists all instances of
the weather data (see Figure 2).
3.3.1
Es posible ver y editar un conjunto de datos desde
el interior de WEKA. Para experimentar con esto,
cargar el archivo weather.nominal.arff nuevo.
Haga clic en el botón de Edit... de la fila de
botones en la parte superior del panel de Preprocess. Esto abre una nueva ventana llamada
Viewer, que enumera todas las instancias de los
datos meteorológicos (véase la Figure 2).
Exercises
Ex. 3: What is the function of the first column in
the Viewer?
Ex. 3: Cuál es la función de la primera columna
de la Viewer?
Ex. 4: Considering the weather data, what is the
class value of instance number 8?
Ex. 4: Teniendo en cuenta los datos meteorológicos, cuál es el valor de la clase de
número de instancia 8?
Ex. 5: Load the iris data and open it in the editor. How many numeric and how many nominal attributes does this dataset have?
Ex. 5: Carga los datos de iris y abrirlo en el editor. Cómo los atributos nominales muchas
numérico y el número de este conjunto de
datos se tienen?
3.4
Applying a filter
In WEKA, “filters” are methods that can be used
to modify datasets in a systematic fashion—that
is, they are data preprocessing tools. WEKA
has several filters for different tasks. Reload the
weather.nominal dataset, and let’s remove an attribute from it. The appropriate filter is called
Remove; its full name is:
En WEKA, “filtros” son métodos que se pueden
utilizar para modificar bases de datos de manera
sistemática—es decir, son datos del proceso previo herramientas. WEKA tiene varios filtros para
diferentes tareas. Actualizar el weather.nominal
conjunto de datos, y vamos a eliminar un atributo
de ella. El filtro adecuado se llama Remove, su
nombre completo es:
weka.filters.unsupervised.attribute.Remove
4
Figure 2: The data viewer.
Examine this name carefully. Filters are organized
into a hierarchical structure whose root is weka.
Those in the unsupervised category don’t require
a class attribute to be set; those in the supervised
category do. Filters are further divided into ones
that operate primarily on attributes/columns (the
attribute category) and ones that operate primarily on instances/rows (the instance category).
Examine cuidadosamente este nombre. Los filtros
están organizados en una estructura jerárquica,
cuya raı́z es weka. Los que están en la categorı́a de
unsupervised no requieren un atributo de clase
que se establece, los de la categorı́a supervised
hacer. Los filtros se dividen en los que operan principalmente en los atributos/columnas (la categorı́a
attribute) y los que operan principalmente en casos/filas (la categorı́a instance).
If you click the Choose button in the Preprocess
panel, a hierarchical editor opens in which you select a filter by following the path corresponding to
its full name. Use the path given in the full name
above to select the Remove filter. Once it is selected, the text “Remove” will appear in the field
next to the Choose button.
Si hace clic en el botón Choose en el panel de
Preprocess, se abre un editor jerárquico en el que
se selecciona un filtro, siguiendo la ruta de acceso
correspondiente a su nombre completo. Utilice la
ruta dada en por encima del nombre completo para
seleccionar el filtro de Remove. Una vez que se selecciona, el texto “Eliminar” aparecerá en el campo
situado junto al botón de Choose.
5
Click on the field containing this text. A window
opens called the GenericObjectEditor, which is
used throughout WEKA to set parameter values
for all of the tools. It contains a short explanation of the Remove filter—click More to get a
fuller description. Underneath there are two fields
in which the options of the filter can be set. The
first option is a list of attribute numbers. The second option—InvertSelection—is a switch. If it
is ‘false’, the specified attributes are removed; if it
is ‘true’, these attributes are NOT removed.
Haga clic en el campo que contiene este texto. Se
abre una ventana denominada GenericObjectEditor, que se utiliza en todo WEKA para establecer valores de los parámetros de todas las herramientas. Contiene una breve explicación del filtro de Remove—haga clic More para obtener una
descripción más completa. Debajo hay dos campos
en los que las opciones del filtro se puede establecer. La primera opción es una lista de números de
atributo. La segunda opción—InvertSelection—
es un interruptor. Si se trata de ‘falsos’, los atributos especificados se quitan, si es ‘verdadero’, estos
atributos no se quitan.
Enter “3” into the attributeIndices field and
click the OK button. The window with the filter options closes. Now click the Apply button
on the right, which runs the data through the filter. The filter removes the attribute with index 3
from the dataset, and you can see that the set of
attributes has been reduced. This change does not
affect the dataset in the file; it only applies to the
data held in memory. The changed dataset can be
saved to a new ARFF file by pressing the Save...
button and entering a file name. The action of the
filter can be undone by pressing the Undo button.
Again, this applies to the version of the data held
in memory.
Ingrese “3” en el campo attributeIndices y haga
clic en el botón de OK. La ventana con las opciones de filtro se cierra. Ahora haga clic en el
botón de Apply a la derecha, es decir, los datos a
través del filtro. El filtro elimina el atributo con el
ı́ndice 3 del conjunto de datos, y se puede ver que el
conjunto de atributos se ha reducido. Este cambio
no afecta al conjunto de datos en el archivo, sólo se
aplica a los datos recogidos en la memoria. El conjunto de datos modificado se puede guardar en un
archivo ARFF nuevo pulsando el botón de Save...
y entrar en un nombre de archivo. La acción del filtro se puede deshacer pulsando el botón de Undo.
Una vez más, esto se aplica a la versión de los datos
contenidos en la memoria.
What we have described illustrates how filters in
WEKA are applied to data. However, in the particular case of Remove, there is a simpler way of
achieving the same effect. Instead of invoking the
Remove filter, attributes can be selected using the
small boxes in the Attributes sub-panel and removed using the Remove button that appears at
the bottom, below the list of attributes.
Lo que hemos descrito se muestra cómo los filtros
en WEKA se aplican a los datos. Sin embargo,
en el caso particular de Remove, hay una manera más sencilla de lograr el mismo efecto. En lugar de invocar el Remove filtro, los atributos se
pueden seleccionar con los cuadros pequeños en la
Attributes sub-panel y eliminar con el botón de
Remove que aparece en la parte inferior, debajo
de la lista de atributos.
3.4.1
Exercises
Ex. 6: Ensure that the weather.nominal
Ex.
dataset is loaded.
Use the filter
weka.unsupervised.instance.RemoveWithValues
to remove all instances in which the ‘humidity’ attribute has the value ‘high’. To do
this, first make the field next to the Choose
button show the text ‘RemoveWithValues’.
Then click on it to get the GenericObjectEditor window and figure out how to
change the filter settings appropriately.
6
6: Asegúrese de que el weather.nominal
conjunto de datos se carga. Utilice el filtro
weka.unsupervised.instance.RemoveWithValues
para eliminar todos los casos en los que el
atributo ‘humedad’ tiene el valor ‘alto’. Para
ello, en primer lugar que el campo situado
junto al botón de Choose mostrará el
texto ‘RemoveWithValues’, a continuación,
haga clic en ella para mostrar la ventana
de GenericObjectEditor y encontrar la
manera de cambiar la configuración del filtro
adecuadamente.
Ex. 7: Undo the change to the dataset that you
just performed, and verify that the data is
back in its original state.
4
Ex. 7: Deshacer el cambio en el conjunto de datos
que acaba de realizar, y verificar que los
datos vuelve a su estado original.
The Visualize panel
We now take a look at WEKA’s data visualization
facilities. These work best with numeric data, so
we use the iris data.
Ahora eche un vistazo a las instalaciones de
WEKA de visualización de datos. Estos funcionan mejor con datos numéricos, por lo que utilizar
los datos del iris.
First, load iris.arff. This data contains flower
measurements. Each instance is classified as one
of three types: iris-setosa, iris-versicolor and irisvirginica. The dataset has 50 examples of each
type: 150 instances in all.
En primer lugar, la carga iris.arff. Estos datos
contienen mediciones de flores. Cada caso se clasifica como uno de tres tipos: setosa iris, iris versicolor y virginica iris. El conjunto de datos cuenta
con 50 ejemplos de cada tipo: 150 casos en total.
Click the Visualize tab to bring up the visualization panel. It shows a grid containing 25 twodimensional scatter plots, with every possible combination of the five attributes of the iris data on
the x and y axes. Clicking the first plot in the second row opens up a window showing an enlarged
plot using the selected axes. Instances are shown
as little crosses whose color cross depends on the
instance’s class. The x axis shows the ‘sepallength’
attribute, and the y axis shows ‘petalwidth’.
Haga clic en la ficha Visualize para que aparezca
el panel de visualización. Muestra una cuadrı́cula
que contiene 25 gráficos de dispersión de dos dimensiones, con todas las combinaciones posibles
de los cinco atributos de los datos del iris en los x
y y ejes. Al hacer clic en la primera parcela en la
segunda fila se abre una ventana que muestra una
trama ampliada con los ejes seleccionados. Las instancias se muestran como pequeñas cruces cuyo
color depende de la clase de cruz de la instancia.
El eje x muestra el atributo ‘sepallength’, y ‘petalwidth’ muestra el y eje.
Clicking on one of the crosses opens up an Instance Info window, which lists the values of all
attributes for the selected instance. Close the Instance Info window again.
Al hacer clic en una de las cruces se abre una ventana de Instance Info, que enumera los valores
de todos los atributos de la instancia seleccionada.
Cierre la ventana de Instance Info de nuevo.
The selection fields at the top of the window that
contains the scatter plot can be used to change the
attributes used for the x and y axes. Try changing
the x axis to ‘petalwidth’ and the y axis to ‘petallength’. The field showing “Colour: class (Num)”
can be used to change the colour coding.
Los campos de selección en la parte superior de
la ventana que contiene el diagrama de dispersión
se puede utilizar para cambiar los atributos utilizados por los x y y ejes. Pruebe a cambiar el
eje x a ‘petalwidth’ y el y eje ‘petallength’. El
campo muestra “Color: clase (Num)”se puede utilizar para cambiar el código de colores.
Each of the colorful little bar-like plots to the right
of the scatter plot window represents a single attribute. Clicking a bar uses that attribute for the
x axis of the scatter plot. Right-clicking a bar does
the same for the y axis. Try to change the x and
y axes back to ‘sepallength’ and ‘petalwidth’ using
these bars.
Cada una de las parcelas de colores poco como
la barra a la derecha de la ventana del gráfico de
dispersión representa un único atributo. Haciendo
clic en un bar que utiliza atributos para los x eje
del diagrama de dispersión. Derecho clic en un bar
hace lo mismo con los y eje. Trate de cambiar los
x y y ejes de nuevo a ‘sepallength’ y ‘petalwidth’
utilizando estas barras.
7
The Jitter slider displaces the cross for each instance randomly from its true position, and can
reveal situations where instances lie on top of one
another. Experiment a little by moving the slider.
El control deslizante Jitter desplaza la cruz por
cada instancia al azar de su verdadera posición, y
puede revelar las situaciones en que casos se encuentran en la parte superior de uno al otro. Experimente un poco moviendo la barra deslizante.
The Select Instance button and the Reset,
Clear and Save buttons let you change the
dataset. Certain instances can be selected and the
others removed. Try the Rectangle option: select
an area by left-clicking and dragging the mouse.
The Reset button now changes into a Submit
button. Click it, and all instances outside the rectangle are deleted. You could use Save to save the
modified dataset to a file, while Reset restores the
original dataset.
El botón de Select Instance y Reset, Clear, y
Save los botones le permiten cambiar el conjunto
de datos. Algunos casos se pueden seleccionar y
eliminar los demás. Pruebe la opción Rectangle:
seleccionar un área por la izquierda haciendo clic
y arrastrando el ratón. El Reset botón ahora se
transforma en un botón de Submit. Haga clic en
él, y todos los casos fuera del rectángulo se eliminan. Usted podrı́a utilizar Save para guardar el
conjunto de datos modificados en un archivo, mientras que Reset restaura el conjunto de datos original.
5
The Classify panel
Now you know how to load a dataset from a file
and visualize it as two-dimensional plots. In this
section we apply a classification algorithm—called
a “classifier” in WEKA—to the data. The classifier builds (“learns”) a classification model from
the data.
Ahora usted sabe cómo cargar un conjunto de
datos de un archivo y visualizarlo como parcelas de dos dimensiones. En esta sección se aplica
un algoritmo de clasificación—denominado “clasificador” en WEKA—a los datos. El clasificador se
basa (“aprende”) un modelo de clasificación de los
datos.
In WEKA, all schemes for predicting the value of a
single attribute based on the values of some other
attributes are called “classifiers,” even if they are
used to predict a numeric target—whereas other
people often describe such situations as “numeric
prediction” or “regression.” The reason is that,
in the context of machine learning, numeric prediction has historically been called “classification
with continuous classes.”
En WEKA, todos los esquemas para predecir el
valor de un atributo único, basado en los valores
de algunos atributos de otros se llaman “clasificadores”, incluso si se utilizan para predecir
un objetivo numérico—mientras que otras personas a menudo describen situaciones tales como
“numérica predicción” o “regresión”. La razón es
que, en el contexto de aprendizaje de máquina,
la predicción numérica históricamente ha sido llamada “la clasificación con clases continuas.”
Before getting started, load the weather
data again.
Go to the Preprocess panel,
click the Open file button, and select
weather.nominal.arff from the data directory. Then switch to the classification panel
by clicking the Classify tab at the top of the
window. The result is shown in Figure 3.
Antes de empezar, carga la información del
tiempo nuevo.
Ir al panel de Preprocess,
haga clic en el botón de Open file, y seleccione weather.nominal.arff desde el directorio
de datos. Luego cambiar a la mesa de clasificación,
haga clic en la ficha Classify en la parte superior de la ventana. El resultado se muestra en la
Figura 3.
8
Figure 3: The Classify panel.
5.1
Using the C4.5 classifier
A popular machine learning method for data mining is called the C4.5 algorithm, and builds decision trees. In WEKA, it is implemented in a
classifier called “J48.” Choose the J48 classifier
by clicking the Choose button near the top of the
Classifier tab. A dialogue window appears showing various types of classifier. Click the trees entry
to reveal its subentries, and click J48 to choose the
J48 classifier. Note that classifiers, like filters, are
organized in a hierarchy: J48 has the full name
weka.classifiers.trees.J48.
Una máquina popular método de aprendizaje para
la minerı́a de datos se denomina el algoritmo C4.5,
y construye árboles de decisión. En WEKA, se
implementa en un clasificador llamado “J48”. Seleccione el clasificador J48 haciendo clic en el botón
de Choose en la parte superior de la ficha Classifier. Una ventana de diálogo aparece mostrando
los diferentes tipos de clasificadores. Haga clic en
la entrada trees a revelar sus subentradas, y haga
clic en J48 elegir el clasificador J48. Tenga en
cuenta que los clasificadores, como los filtros, están
organizados en una jerarquı́a: J48 tiene el nombre
completo weka.classifiers.trees.J48.
The classifier is shown in the text box next to the
Choose button: it now reads J48 –C 0.25 –M 2.
The text after “J48” gives the default parameter
settings for this classifier. We can ignore these, because they rarely require changing to obtain good
performance from C4.5.
El clasificador se muestra en el cuadro de texto
junto al botón Choose: J48 –C 0.25 –M 2 se
sustituirá por el texto. El texto después de “J48”
da la configuración de los parámetros por defecto
para este clasificador. Podemos ignorar esto, ya
que rara vez se requieren cambios para obtener un
buen rendimiento de C4.5.
9
Decision trees are a special type of classification
model. Ideally, models should be able to predict
the class values of new, previously unseen instances
with high accuracy. In classification tasks, accuracy is often measured as the percentage of correctly classified instances. Once a model has been
learned, we should test it to see how accurate it is
when classifying instances.
Los árboles de decisión son un tipo especial de
modelo de clasificación. Idealmente, los modelos
deben ser capaces de predecir los valores de la clase
de nuevo, no visto previamente casos con gran precisión. En las tareas de clasificación, la precisión
se mide como el porcentaje de casos clasificados
correctamente. Una vez que un modelo que se ha
aprendido, hay que probarlo para ver cómo es exacto es la hora de clasificar los casos.
One option in WEKA is to evaluate performance
on the training set—the data that was used to
build the classifier. This is NOT generally a good
idea because it leads to unrealistically optimistic
performance estimates. You can easily get 100%
accuracy on the training data by simple rote learning, but this tells us nothing about performance
on new data that might be encountered when the
model is applied in practice. Nevertheless, for illustrative purposes it is instructive to consider performance on the training data.
Una opción en WEKA es evaluar el rendimiento
en el conjunto de entrenamiento—los datos que
se utilizó para construir el clasificador. Esto no
es generalmente una buena idea porque conduce a
las estimaciones de rendimiento irrealmente optimista. Usted puede obtener el 100% de precisión
en los datos de entrenamiento por el aprendizaje
de memoria sencillo, pero esto no nos dice nada
sobre el rendimiento de los nuevos datos que se
pueden encontrar cuando el modelo se aplica en la
práctica. No obstante, a tı́tulo ilustrativo es instructivo considerar el rendimiento de los datos de
entrenamiento.
In WEKA, the data that is loaded using the Preprocess panel is the “training data.” To evaluate on the training set, choose Use training
set from the Test options panel in the Classify panel. Once the test strategy has been set,
the classifier is built and evaluated by pressing the
Start button. This processes the training set using the currently selected learning algorithm, C4.5
in this case. Then it classifies all the instances in
the training data—because this is the evaluation
option that has been chosen—and outputs performance statistics. These are shown in Figure 4.
En WEKA, los datos que se carga mediante
el panel de Preprocess es el “datos de entrenamiento.” Para evaluar el conjunto de entrenamiento, elegir Use training set desde el panel
de Test options en el panel Classify. Una vez
que la estrategia de prueba se ha establecido, el
clasificador se construye y se evaluó con el botón
Start. Este proceso conjunto de entrenamiento
utilizando el algoritmo seleccionado aprendizaje,
C4.5 en este caso. Luego se clasifica a todas las
instancias en los datos de entrenamiento—porque
esta es la opción de evaluación que se ha elegido—
y estadı́sticas de resultados de desempeño. Estos
se muestran en la Figure 4.
5.2
Interpreting the output
The outcome of training and testing appears in
the Classifier output box on the right. You can
scroll through the text to examine it. First, look at
the part that describes the decision tree that was
generated:
El resultado de la formación y la prueba aparece
en el cuadro de Classifier output a la derecha.
Puede desplazarse por el texto para examinarla.
En primer lugar, busque en la parte que describe
el árbol de decisión que se ha generado:
J48 pruned tree
-----------------outlook = sunny
|
humidity = high: no (3.0)
|
humidity = normal: yes (2.0)
outlook = overcast: yes (4.0)
outlook = rainy
|
windy = TRUE: no (2.0)
|
windy = FALSE: yes (3.0)
10
Figure 4: Output after building and testing the classifier.
Number of Leaves
Size of the tree :
:
5
8
This represents the decision tree that was built,
including the number of instances that fall under
each leaf. The textual representation is clumsy to
interpret, but WEKA can generate an equivalent
graphical representation. You may have noticed
that each time the Start button is pressed and a
new classifier is built and evaluated, a new entry
appears in the Result List panel in the lower left
corner of Figure 4. To see the tree, right-click on
the trees.J48 entry that has just been added to
the result list, and choose Visualize tree. A window pops up that shows the decision tree in the
form illustrated in Figure 5. Right-click a blank
spot in this window to bring up a new menu enabling you to auto-scale the view, or force the tree
to fit into view. You can pan around by dragging
the mouse.
Esto representa el árbol de decisión que fue construido, incluyendo el número de casos que corresponden a cada hoja. La representación textual es
torpe de interpretar, pero WEKA puede generar
una representación gráfica equivalente. Puede
haber notado que cada vez que el botón se pulsa
Start y un clasificador de nueva construcción y se
evaluó, una nueva entrada aparece en el panel de
Result List en la esquina inferior izquierda de la
Figure 4. Para ver el árbol, haga clic en la entrada
trees.J48 que acaba de ser añadido a la lista de resultados, y elija Visualize tree. Aparece una ventana que muestra el árbol de decisión en la forma
ilustrada en la Figure 5. Haga clic en un punto en
blanco en esta ventana para que aparezca un nuevo
menú que le permite auto-escala de la vista, o la
fuerza del árbol para ajustarse a la vista. Puede
desplazarse por arrastrando el ratón.
11
Figure 5: The decision tree that has been built.
This tree is used to classify test instances. The
first condition is the one in the so-called “root”
node at the top. In this case, the ‘outlook’ attribute is tested at the root node and, depending
on the outcome, testing continues down one of the
three branches. If the value is ‘overcast’, testing
ends and the predicted class is ‘yes’. The rectangular nodes are called “leaf” nodes, and give the
class that is to be predicted. Returning to the root
node, if the ‘outlook’ attribute has value ’sunny’,
the ‘humidity’ attribute is tested, and if ’outlook’
has value ‘rainy, the ’windy’ attribute is tested. No
paths through this particular tree have more than
two tests.
Este árbol se utiliza para clasificar los casos de
prueba. La primera condición es la de la llamada
“raı́z” del nodo en la parte superior. En este caso,
el atributo ‘perspectivas’ se prueba en el nodo raı́z
y, dependiendo del resultado, la prueba continúa
por una de las tres ramas. Si el valor es ‘cubierto’,
finaliza las pruebas y la clase predicha es ‘sı́’. Los
nodos rectangulares se denominan “hojas” nodos,
y dar la clase que se predijo. Volviendo al nodo
raı́z, si el atributo ‘perspectivas’ tiene un valor
‘sol’, el atributo ‘humedad’ se prueba, y si ‘perspectivas’ tiene un valor de ‘lluvias’, el atributo
‘viento’ se prueba. No hay caminos a través de
este árbol en particular tiene más de dos pruebas.
Now let us consider the remainder of the information in the Classifier output area. The next
two parts of the output report on the quality of the
classification model based on the testing option we
have chosen.
Consideremos ahora el resto de la información en
el área de Classifier output. Las dos siguientes
partes del informe de salida en la calidad del modelo de clasificación basado en la opción de prueba
que hemos elegido.
The following states how many and what proportion of test instances have been correctly classified:
Los siguientes estados cuántos y qué proporción de
casos de prueba han sido correctamente clasificados:
Correctly Classified Instances
14
100%
12
This is the accuracy of the model on the data
used for testing. It is completely accurate (100%),
which is often the case when the training set is
used for testing. There are some other performance measures in the text output area, which we
won’t discuss here.
Esta es la precisión del modelo sobre los datos
utilizados para la prueba. Es totalmente preciso
(100%), que es a menudo el caso cuando el conjunto de entrenamiento se utiliza para la prueba.
Hay algunas medidas de desempeño en la zona de
salida de texto, que no vamos a discutir aquı́.
At the bottom of the output is the confusion matrix:
En la parte inferior de la salida es la matriz de
confusión:
=== Confusion Matrix ===
a b
<-- classified as
9 0 | a = yes
0 5 | b = no
Each element in the matrix is a count of instances.
Rows represent the true classes, and columns represent the predicted classes. As you can see, all 9
‘yes’ instances have been predicted as yes, and all
5 ‘no’ instances as no.
5.2.1
Cada elemento de la matriz es un recuento de los
casos. Las filas representan las clases de verdad, y
las columnas representan las clases previsto. Como
puede ver, todos los 9 ‘sı́’ casos se han previsto
como sı́, y los 5 ‘no’ casos como no.
Exercise
Ex 8: How would the following instance be classified using the decision tree?
Ex. 8: Cómo serı́a la siguiente instancia se clasificarán con el árbol de decisión?
outlook = sunny, temperature = cool, humidity = high, windy = TRUE
perspectivas = soleado, temperatura = fria,
humedad = viento, alta = TRUE
5.3
Setting the testing method
When the Start button is pressed, the selected
learning algorithm is started and the dataset that
was loaded in the Preprocess panel is used to
train a model. A model built from the full training set is then printed into the Classifier output
area: this may involve running the learning algorithm one final time.
Cuando el botón se pulsa Start, el algoritmo de
aprendizaje seleccionadas se inicia y el conjunto
de datos que se cargó en el panel de Preprocess
se utiliza para entrenar a un modelo. Un modelo
construido a partir del conjunto de entrenamiento
completo se imprime en el área de Classifier output: esto puede implicar que ejecuta el algoritmo
de aprendizaje por última vez.
The remainder of the output in the Classifier
output area depends on the test protocol that
was chosen using Test options. The Test options box gives several possibilities for evaluating
classifiers:
El resto de la producción en el área de Classifier
output depende del protocolo de prueba que fue
elegido con Test options. El cuadro de Test options da varias posibilidades para la evaluación de
los clasificadores:
13
Use training set Uses the same dataset that was
used for training (the one that was loaded in
the Preprocess panel). This is the option
we used above. It is generally NOT recommended because it gives over-optimistic performance estimates.
Usar el conjunto de la formacion Utiliza el
mismo conjunto de datos que se utilizó para
la formación (la que se cargó en el panel
de Preprocess). Esta es la opción que
usamos anteriormente. Por lo general, no
se recomienda porque da estimaciones de
rendimiento demasiado optimistas.
Supplied test set Lets you select a file containing a separate dataset that is used exclusively
for testing.
prueba suministrados conjunto Permite
seleccionar un archivo que contiene un
conjunto de datos independiente que se
utiliza exclusivamente para la prueba.
Cross-validation This is the default option, and
the most commonly-used one. It first splits
the training set into disjoint subsets called
“folds.” The number of subsets can be entered in the Folds field. Ten is the default, and in general gives better estimates
than other choices. Once the data has been
split into folds of (approximately) equal size,
all but one of the folds are used for training and the remaining, left-out, one is used
for testing. This involves building a new
model from scratch from the corresponding
subset of data and evaluating it on the letout fold. Once this has been done for the
first test fold, a new fold is selected for testing and the remaining folds used for training. This is repeated until all folds have
been used for testing. In this way each instance in the full dataset is used for testing
exactly once, and an instance is only used
for testing when it is not used for training. WEKA’s cross-validation is a stratified cross-validation, which means that
the class proportions are preserved when dividing the data into folds: each class is represented by roughly the same number of instances in each fold. This gives slightly improved performance estimates compared to
unstratified cross-validation.
La validacion cruzada Esta es la opción por defecto, y el más comúnmente utilizado. En
primer lugar, se divide el conjunto de entrenamiento en subconjuntos disjuntos llamados “pliegues”. El número de subconjuntos se pueden introducir en el campo Folds.
Diez es el valor predeterminado, y en general proporciona mejores estimaciones que
otras opciones. Una vez que los datos se
ha dividido en los pliegues de (aproximadamente) igual tamaño, todos menos uno de
los pliegues se utilizan para la formación y el
restante a cabo, a la izquierda-, uno se utiliza
para la prueba. Esto implica la construcción
de un nuevo modelo a partir de cero desde el
subconjunto de datos correspondientes y la
evaluación que sobre la que-a veces. Una vez
que esto se ha hecho para la primera prueba
doble, una nueva tapa está seleccionado para
las pruebas y los pliegues restante utilizado
para el entrenamiento. Esto se repite hasta
que todos los pliegues se han utilizado para
la prueba. De esta manera, cada instancia del conjunto de datos completo se utiliza
para probar una sola vez, y una instancia
sólo se utiliza para la prueba cuando no se
utiliza para el entrenamiento. WEKA cruz
de la validación es una stratified crossvalidation, lo que significa que las proporciones de clase se conservan al dividir los
datos en los pliegues: cada clase está representada por aproximadamente el mismo
número de casos en cada pliegue. Esto
proporciona un rendimiento mejorado ligeramente en comparación con las estimaciones
sin estratificar la validación cruzada.
14
Percentage split Shuffles the data randomly
and then splits it into a training and a test
set according to the proportion specified. In
practice, this is a good alternative to crossvalidation if the size of the dataset makes
cross-validation too slow.
Shuffles Porcentaje dividir los datos al azar y
luego se divide en un entrenamiento y un
conjunto de pruebas de acuerdo a la proporción especificada. En la práctica, esta es
una buena alternativa a la validación cruzada
si el tamaño del conjunto de datos hace que
la validación cruzada demasiado lento.
The first two testing methods, evaluation on the
training set and using a supplied test set, involve
building a model only once. Cross-validation involves building a model N +1 times, where N is the
chosen number of folds. The first N times, a fraction (N − 1)/N (90% for ten-fold cross-validation)
of the data is used for training, and the final
time the full dataset is used. The percentage split
method involves building the model twice, once on
the reduced dataset and again on the full dataset.
Los dos primeros métodos de prueba, la evaluación
en el conjunto de entrenamiento y el uso de una
unidad de prueba suministrada, implicarı́a la construcción de un modelo de una sola vez. La validación cruzada consiste en la construcción de un
modelo de N + 1 veces, donde N es el número
elegido de los pliegues. Los primeros N veces, una
fracción (N − 1)/N (90% de diez veces la validación cruzada) de los datos se utiliza para el entrenamiento y el tiempo final del conjunto de datos
completo se utiliza. El método de dividir el porcentaje implica la construcción del modelo en dos
ocasiones, una vez en el conjunto de datos reducidos y de nuevo en el conjunto de datos completo.
5.3.1
Exercise
Ex. 9 carga los datos del iris mediante el panel
de Preprocess. Evaluar C4.5 en estos datos
utilizando (a) el conjunto de entrenamiento
y (b) la validación cruzada. Cuál es el porcentaje estimado de clasificaciones correctas
para (a) y (b)? Que estiman es más realista?
Ex 9: Load the iris data using the Preprocess
panel. Evaluate C4.5 on this data using
(a) the training set and (b) cross-validation.
What is the estimated percentage of correct
classifications for (a) and (b)? Which estimate is more realistic?
5.4
Visualizing classification errors
WEKA’s Classify panel provides a way of visualizing classification errors. To do this, right-click
the trees.J48 entry in the result list and choose
Visualize classifier errors. A scatter plot window pops up. Instances that have been classified
correctly are marked by little crosses; whereas ones
that have been classified incorrectly are marked by
little squares.
5.4.1
Panel de WEKA de Classify proporciona una
manera de visualizar los errores de clasificación.
Para ello, haga clic en la entrada trees.J48 en
la lista de resultados y elegir Visualize classifier errors. Una ventana gráfica de dispersión
aparece. Casos que han sido clasificados correctamente marcadas por pequeñas cruces, mientras
que los que han sido clasificados incorrectamente
están marcados por pequeños cuadrados.
Exercise
15
Ex 10: Use the Visualize classifier errors function to find the wrongly classified test instances for the cross-validation performed in
Exercise 9. What can you say about the location of the errors?
Ex. 10: Utilice la función de Visualize classifier errors para encontrar las instancias de
prueba de mal clasificadas para la validación
cruzada realizada en el ejercicio 9. Qué
puede decir acerca de la ubicación de los errores?
16
6
Answers To Exercises
1. Hot, mild and cool.
1. caliente, suave y fresco.
2. The iris dataset has 150 instances and 5 attributes. So far we have only seen nominal values, but the attribute ‘petallength’ is
a numeric attribute and contains numeric
values. In this dataset the values for this
attribute lie between 1.0 and 6.9 (see Minimum and Maximum in the right panel).
2. El conjunto de datos del iris tiene 150 casos y
atributos 5. Hasta ahora sólo hemos visto
los valores de nominal, pero ‘petallength’ el
atributo es un atributo de numeric y contiene valores numéricos. En este conjunto
de datos los valores de este atributo se encuentran entre 1.0 y 6.9 (véase Minimum
Maximum y en el panel derecho).
3. The first column is the number given to an instance when it is loaded from the ARFF file.
It corresponds to the order of the instances
in the file.
3. La primera columna es el número dado en una
instancia cuando se carga desde el archivo
ARFF. Se corresponde con el orden de las
instancias en el archivo.
4. The class value of this instance is ‘no’. The row
with the number 8 in the first column is the
instance with instance number 8.
4. El valor de la clase de esta instancia es “no”. La
fila con el número 8 en la primera columna
es la instancia con el número de instancia
5. This can be easily seen in the Viewer window.
The iris dataset has four numeric and one
nominal attribute. The nominal attribute is
the class attribute.
5. Esto puede verse fácilmente en la ventana de
Viewer. El conjunto de datos del iris tiene
cuatro numérico y un atributo nominal. El
atributo nominal es el atributo de clase.
6. Select the RemoveWithValues filter after
clicking the Choose button. Click on the
field that is located next to the Choose button and set the field attributeIndex to 3
and the field nominalIndices to 1. Press
OK and Apply.
6. Seleccione el RemoveWithValues filtro después de hacer clic en el botón de Choose.
Haga clic en el campo que se encuentra
al lado del botón de Choose y establezca
el campo attributeIndex a 3 y el campo
nominalIndices a 1. Pulse OK y Apply.
7. Click the Undo button.
7. Haga clic en el botón de Undo.
8. The test instance would be classified as ’no’.
8. La instancia de prueba serı́a clasificado como
‘no’.
17
9. Percent correct on the training data is 98%.
Percent correct under cross-validation is
96%. The cross-validation estimate is more
realistic.
9. porcentaje correcto en los datos de entrenamiento es de 98%. Porcentaje de respuestas correctas en la validación cruzada es del
96%. La estimación de la validación cruzada
es más realista.
10. The errors are located at the class boundaries.
10. Los errores se encuentran en los lı́mites de
clase.
18
Practical Data Mining
Tutorial 2: Nearest Neighbor Learning and Decision Trees
Eibe Frank and Ian H. Witten
May 5, 2011
c
2006-2012
University of Waikato
1
Introduction
In this tutorial you will experiment with nearest
neighbor classification and decision tree learning.
For most of it we use a real-world forensic glass
classification dataset.
En este tutorial podrás experimentar con la clasificación más cercano vecino y árbol de decisión
aprendizaje. Para la mayorı́a de los que usamos
un mundo real forenses conjunto de datos de clasificación de vidrio.
We begin by taking a preliminary look at this
dataset. Then we examine the effect of selecting
different attributes for nearest neighbor classification. Next we study class noise and its impact
on predictive performance for the nearest neighbor
method. Following that we vary the training set
size, both for nearest neighbor classification and
decision tree learning. Finally, you are asked to
interactively construct a decision tree for an image
segmentation dataset.
Empezamos por echar un vistazo preliminar a esta
base de datos. A continuación, examinamos el
efecto de la selección de atributos diferentes para
la clasificación del vecino más cercano. A continuación se estudia el ruido de clase y su impacto
en el rendimiento predictivo del método del vecino más cercano. Después de que variar el tamaño
del conjunto de la formación, tanto para la clasificación del vecino más cercano y el árbol de decisión
aprendizaje. Por último, se le pide para construir
de forma interactiva un árbol de decisión para un
conjunto de datos de segmentación de la imagen.
Before continuing with this tutorial you should review in your mind some aspects of the classification
task:
Antes de continuar con este tutorial es necesario
que revise en su mente algunos aspectos de la tarea
de clasificación:
• How is the accuracy of a classifier measured?
• Cómo es la precisión de un clasificador de
medir?
• What are irrelevant attributes in a data set,
and can additional attributes be harmful?
• Cuáles son los atributos irrelevantes en un
conjunto de datos y atributos adicionales
pueden ser perjudiciales?
• What is class noise, and how would you measure its effect on learning?
• Cuál es el ruido de clase, y cómo medir su
efecto en el aprendizaje?
• What is a learning curve?
• Qué es una curva de aprendizaje?
• If you, personally, had to invent a decision
tree classifier for a particular dataset, how
would you go about it?
• Si usted, personalmente, tenı́a que inventar
un clasificador de árbol de decisión para un
conjunto de datos particular, cómo hacerlo?
1
2
The glass dataset
The glass dataset glass.arff from the US Forensic Science Service contains data on six types of
glass. Glass is described by its refractive index and
the chemical elements it contains, and the aim is
to classify different types of glass based on these
features. This dataset is taken from the UCI data
sets, which have been collected by the University
of California at Irvine and are freely available on
the World Wide Web. They are often used as a
benchmark for comparing data mining algorithms.
El conjunto de datos de cristal glass.arff de
los EE.UU. Servicio de Ciencias Forenses contiene
datos sobre los seis tipos de vidrio. El vidrio es
descrito por su ı́ndice de refracción y los elementos
quı́micos que contiene, y el objetivo es clasificar
los diferentes tipos de vidrio sobre la base de estas caracterı́sticas. Este conjunto de datos se ha
tomado de los conjuntos de datos de la UCI, que
han sido recogidos por la Universidad de California en Irvine y están disponibles libremente en la
World Wide Web. A menudo se utilizan como referencia para comparar los algoritmos de minerı́a
de datos.
Find the dataset glass.arff and load it into the
WEKA Explorer. For your own information, answer the following questions, which review material
covered in Tutorial 1.
Encontrar el conjunto de datos glass.arff y cargarlo en la Explorer WEKA. Para su propia información, conteste las siguientes preguntas, que
el material objeto de examen en el Tutorial 1.
Ex. 1: How many attributes are there in the glass
dataset? What are their names? What is the
class attribute?
Ex. 1: Cómo los atributos con los que cuenta el
conjunto de datos de cristal? Cuáles son sus
nombres? Cuál es el atributo de la clase?
Run
the
classification
algorithm
IBk
(weka.classifiers.lazy.IBk).
Use crossvalidation to test its performance, leaving the
number of folds at the default value of 10. Recall
that you can examine the classifier options in
the GenericObjectEditor window that pops
up when you click the text beside the Choose
button. The default value of the KNN field is 1:
this sets the number of neighboring instances to
use when classifying.
Ejecutar el algoritmo de clasificación IBK
(weka.classifiers.lazy.IBk). Utilice la validación cruzada para probar su funcionamiento, dejando el número de pliegues en el valor predeterminado de 10. Recuerde que usted puede examinar las opciones del clasificador en la ventana de
GenericObjectEditor que aparece al hacer clic
en el texto junto al botón Choose. El valor por
defecto del campo KNN es una: este establece el
número de casos de vecinos a utilizar en la clasificación.
Ex. 2: What is the accuracy of IBk (given in the
Classifier output box)?
Ex. 2: Qué es la exactitud de IBk (que figuran
en el cuadro de Classifier output)?
Run IBk again, but increase the number of neighboring instances to k = 5 by entering this value in
the KNN field. Here and throughout this tutorial,
continue to use cross-validation as the evaluation
method.
Ejecutar IBK otra vez, pero aumentar el número
de casos de vecinos a k = 5 por entrar en este valor
en el campo KNN. Aquı́ ya lo largo de este tutorial, seguir utilizando la validación cruzada como
el método de evaluación.
Ex. 3: What is the accuracy of IBk with 5 neighboring instances (k = 5)?
Ex. 3: Qué es la exactitud de IBk con 5 casos de
vecinos (k = 5)?
2
3
Attribute selection for glass classification
Now we find what subset of attributes produces
the best cross-validated classification accuracy for
the IBk nearest neighbor algorithm with k = 1 on
the glass dataset. WEKA contains automated attribute selection facilities, which we examine in a
later tutorial, but it is instructive to do this manually.
Ahora nos encontramos con lo subconjunto de los
atributos produce la exactitud de la clasificación
mejor validación cruzada para el algoritmo de vecino más cercano IBk con k = 1 en el conjunto
de datos de vidrio. WEKA contiene automatizado
instalaciones para la selección de atributos, que se
examinan más adelante en un tutorial, pero es instructivo para hacerlo manualmente.
Performing an exhaustive search over all possible subsets of the attributes is infeasible (why?),
so we apply a procedure called “backwards selection.” To do this, first consider dropping each
attribute individually from the full dataset consisting of nine attributes (plus the class), and run
a cross-validation for each reduced version. Once
you have determined the best 8-attribute dataset,
repeat the procedure with this reduced dataset to
find the best 7-attribute dataset, and so on.
Realización de una búsqueda exhaustiva sobre todos los posibles subconjuntos de los atributos no es
factible (por qué?), por lo que aplicar un procedimiento llamado “al revés de selección.” Para ello,
en primer lugar considerar abandonar cada atributo individual del conjunto de datos completa que
consiste en nueve atributos (además de la clase), y
ejecutar una validación cruzada para cada versión
reducida. Una vez que haya determinado el conjunto de datos más de 8 atributo, repita el procedimiento con este conjunto de datos reduce a encontrar el mejor conjunto de datos 7-atributo, y
ası́ sucesivamente.
Ex. 4: Record in Table 1 the best attribute set
and the greatest accuracy obtained in each
iteration.
Ex. 4: Registro en la Table 1 el mejor conjunto
de atributos y la mayor precisión obtenida
en cada iteración.
Table 1: Accuracy obtained using IBk, for different attribute subsets
Subset size
9 attributes
8 attributes
7 attributes
6 attributes
5 attributes
4 attributes
3 attributes
2 attributes
1 attribute
0 attributes
Attributes in “best” subset
Classification accuracy
The best accuracy obtained in this process is quite
a bit higher than the accuracy obtained on the full
dataset.
La mejor precisión obtenida en este proceso es un
poco mayor que la precisión obtenida en el conjunto de datos completo.
Ex. 5: Is this best accuracy an unbiased estimate
of accuracy on future data? Be sure to explain your answer.
Ex. 5: Es esto mejor precisión una estimación no
sesgada de precisión en los datos de futuro?
Asegúrese de explicar su respuesta.
3
(Hint: to obtain an unbiased estimate of accuracy
on future data, we must not look at the test data
at all when producing the classification model for
which we want to obtain the estimate.)
4
(Sugerencia: para obtener una estimación objetiva
de la exactitud en los datos de futuro, no debemos
mirar el at all datos de prueba cuando se produce el modelo de clasificación para la que queremos obtener la estimación.)
Class noise and nearest-neighbor learning
Nearest-neighbor learning, like other techniques,
is sensitive to noise in the training data. In this
section we inject varying amounts of class noise
into the training data and observe the effect on
classification performance.
Aprendizaje más cercana al vecino, al igual que
otras técnicas, es sensible al ruido en los datos de
entrenamiento. En esta sección se inyectan cantidades variables de class noise en los datos de entrenamiento y observar el efecto en el rendimiento
de la clasificación.
You can flip a certain percentage of class labels in
the data to a randomly chosen other value using an
unsupervised attribute filter called AddNoise, in
weka.filters.unsupervised.attribute. However, for our experiment it is important that the
test data remains unaffected by class noise.
Puede invertir un cierto porcentaje de las etiquetas de clase en los datos a un valor escogido de forma aleatoria otras mediante un atributo sin supervisión filtro llamado AddNoise,
en weka.filters.unsupervised.attribute. Sin
embargo, para nuestro experimento es importante
que los datos de prueba no se ve afectado por el
ruido de la clase.
Filtering the training data without filtering the
test data is a common requirement, and is achieved
using a “meta” classifier called FilteredClassifier, in weka.classifiers.meta. This meta classifier should be configured to use IBk as the classifier and AddNoise as the filter. The FilteredClassifier applies the filter to the data before running the learning algorithm. This is done in two
batches: first the training data and then the test
data. The AddNoise filter only adds noise to the
first batch of data it encounters, which means that
the test data passes through unchanged.
Filtrado de los datos de entrenamiento sin filtrar los datos de prueba es un requisito común, y
se realiza con un “meta” clasificador denominado
FilteredClassifier, en weka.classifiers.meta.
Este clasificador meta debe estar configurado para
utilizar como IBk AddNoise el clasificador y el
filtro. El FilteredClassifier se aplica el filtro a
los datos antes de ejecutar el algoritmo de aprendizaje. Esto se hace en dos tandas: en primer lugar
los datos de entrenamiento y, a continuación los
datos de prueba. El AddNoise filtro sólo hacı́a
que el primer lote de datos que encuentra, lo que
significa que los datos de prueba pasa a través de
cambios.
Table 2: Effect of class noise on IBk, for different neighborhood sizes
Percent noise
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
k=1
k=3
4
k=5
Ex. 6: Reload the original glass dataset, and
record in Table 2 the cross-validated accuracy estimate of IBk for 10 different percentages of class noise and neighborhood sizes
k = 1, k = 3, k = 5 (determined by the value
of k in the k-nearest-neighbor classifier).
Ex. 6: Actualizar el conjunto de datos de vidrio
original, y registrar en la Table 2 la exactitud
validación cruzada estimación de IBk por 10
diferentes porcentajes de ruido de la clase y
el barrio tamaños k = 1, k = 3, k = 5 (determinado por el valor de k en el clasificador
k vecino más cercano).
Ex. 7: What is the effect of increasing the amount
of class noise?
Ex. 7: Cuál es el efecto de aumentar la cantidad
de ruido de clase?
Ex. 8: What is the effect of altering the value of
k?
Ex. 8: Qué elemento es el efecto de modificar el
valor de k?
5
Varying the amount of training data
In this section we consider “learning curves,”
which show the effect of gradually increasing the
amount of training data. Again we use the glass
data, but this time with both IBk and the C4.5
decision tree learner, implemented in WEKA as
J48.
En esta sección tenemos en cuenta “las curvas de
aprendizaje”, que muestran el efecto de aumentar gradualmente la cantidad de datos de entrenamiento. Una vez más se utilizan los datos de
vidrio, pero esta vez con dos IBk y la decisión C4.5
alumno árbol, implementado en WEKA como J48.
To obtain learning curves, use the FilteredClassifier again, this time in conjunction with
weka.filters.unsupervised.instance.Resample,
which extracts a certain specified percentage of a
given dataset and returns the reduced dataset.1
Again this is done only for the first batch to which
the filter is applied, so the test data passes unmodified through the FilteredClassifier before
it reaches the classifier.
Para obtener las curvas de aprendizaje, el uso de
la FilteredClassifier, esta vez en relación con el
weka.filters.unsupervised.instance.Resample,
que extrae un porcentaje especificado de un conjunto de datos y devuelve el conjunto de datos
reducidos.2 Una vez más esto se hace sólo para el
primer grupo al que se aplica el filtro, por lo que
los datos de prueba pasa sin modificar a través
de la FilteredClassifier antes que alcanza el
clasificador.
Ex. 9: Record in Table 3 the data for learning curves for both the one-nearest-neighbor
classifier (i.e., IBk with k = 1) and J48.
Ex. 9: Registro en la Table 3 los datos de las
curvas de aprendizaje tanto para el unoclasificador del vecino más cercano (es decir,
IBk con k = 1) y J48.
1 This
filter performs sampling with replacement, rather than sampling without replacement, but the effect is minor and
we will ignore it here.
2 Este filtro realiza el muestreo con reemplazo, en lugar de muestreo sin reemplazo, pero el efecto es menor y se lo ignora
aquı́.
5
Table 3: Effect of training set size on IBk and J48
Percentage of training set
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
IBk
J48
Ex. 10: What is the effect of increasing the
amount of training data?
Ex. 10: Cuál es el efecto de aumentar la cantidad
de datos de entrenamiento?
Ex. 11: Is this effect more pronounced for IBk or
J48?
Ex. 11: Es este tema efecto más pronunciado para
IBk o J48?
6
Interactive decision tree construction
One of WEKA’s classifiers is interactive: it lets
the user—i.e., you!—construct your own classifier.
Here’s a competition: let’s see who can build a
classifier with the highest predictive accuracy!
Uno de los clasificadores WEKA es interactiva:
permite que el usuario—es decir, que—construir
su propio clasificador. Aquı́ hay una competencia: a ver quién puede construir un clasificador
con mayor precisión de predicción!
Load the file segment-challenge.arff (in the
data folder that comes with the WEKA distribution). This dataset has 20 attributes and 7 classes.
It is an image segmentation problem, and the task
is to classify images into seven different groups
based on properties of the pixels.
Cargar el archivo segment-challenge.arff (en
la carpeta de datos que viene con la distribución
de WEKA). Este conjunto de datos cuenta con 20
atributos y las clases 7. Se trata de un problema
de segmentación de la imagen, y la tarea consiste
en clasificar las imágenes en siete grupos diferentes
basados en las propiedades de los pı́xeles.
Set the classifier to UserClassifier, in the
weka.classifiers.trees package. We will use a
supplied test set (performing cross-validation with
the user classifier is incredibly tedious!). In the
Test options box, choose the Supplied test set
option and click the Set... button. A small
window appears in which you choose the test
set. Click Open file... and browse to the file
segment-test.arff (also in the WEKA distribution’s data folder). On clicking Open, the small
window updates to show the number of instances
(810) and attributes (20); close it.
Ajuste el clasificador a UserClassifier, en el
weka.classifiers.trees paquete. Vamos a utilizar una unidad de prueba suministrada (realizar
la validación cruzada con el clasificador de usuario
es muy aburrido!). En el cuadro de Test options, seleccione la opción de Supplied test set
y haga clic en el botón de Set.... Aparecerá una
pequeña ventana en la que usted elija el equipo
de prueba. Haga clic en Open file... y busque
el archivo segment-test.arff (también en la carpeta de datos de la distribución de WEKA). Al
hacer clic en Open, las actualizaciones pequeña
ventana para mostrar el número de casos (810) y
atributos (20), ciérrelo.
6
Click Start. The behaviour of UserClassifier differs from all other classifiers. A special window appears and WEKA waits for you to use it to build
your own classifier. The tabs at the top of the
window switch between two views of the classifier.
The Tree visualizer view shows the current state
of your tree, and the nodes give the number of class
values there. The aim is to come up with a tree
where the leaf nodes are as pure as possible. To
begin with, the tree has just one node—the root
node—containing all the data. More nodes will
appear when you proceed to split the data in the
Data visualizer view.
Haga clic en Start. El comportamiento de UserClassifier se diferencia de todos los otros clasificadores. Una ventana especial aparece y WEKA
espera a que se utilizar para construir su propio
clasificador. Las pestañas en la parte superior del
interruptor de la ventana entre dos puntos de vista
del clasificador. El punto de vista Tree visualizer muestra el estado actual de su árbol, y los
nodos dar el número de valores de clase allı́. El
objetivo es llegar a un árbol donde los nodos hoja
son tan puros como sea posible. Para empezar, el
árbol tiene un solo nodo—el nodo raı́z—que contiene todos los datos. Más nodos aparecerá cuando
se procede a dividir los datos en la vista de Data
visualizer.
Click the Data visualizer tab to see a 2D plot in
which the data points are colour coded by class.
You can change the attributes used for the axes
either with the X and Y drop-down menus at the
top, or by left-clicking (for X) or right-clicking (for
Y) the horizontal strips to the right of the plot
area. These strips show the spread of instances
along each particular attribute.
Haga clic en la ficha Data visualizer para ver un
gráfico 2D en el que los puntos de datos están codificados por colores según la clase. Puede cambiar
los atributos utilizados para los ejes, ya sea con la
X e Y menús desplegables en la parte superior, o
presionando el botón izquierdo (para X) o el botón
derecho del ratón (para Y) las tiras horizontales a
la derecha del área de trazado . Estas tiras muestran la propagación de casos a lo largo de cada
atributo en particular.
You need to try different combinations of X and
Y axes to get the clearest separation you can find
between the colours. Having found a good separation, you then need to select a region in the plot:
this will create a branch in your tree. Here is a hint
to get you started: plot region-centroid-row on
the X-axis and intensity-mean on the Y-axis.
You will see that the red class (’sky’) is nicely separated from the rest of the classes at the top of the
plot.
Tendrá que probar diferentes combinaciones de
ejes X e Y para obtener la más clara la separación
que se encuentran entre los colores. Cuando exista
una buena separación, a continuación, deberá seleccionar una región en la trama: esto creará una
rama en el árbol. Aquı́ está una sugerencia para
comenzar: parcela region-centroid-row en el eje
X y intensity-media en el eje. Usted verá que la
clase de color rojo (‘cielo’) está muy bien separado
del resto de las clases en la parte superior de la
parcela.
There are three tools for selecting regions in the
graph, chosen using the drop-down menu below
the Y-axis selector:
Existen tres herramientas para la selección de las
regiones en el gráfico, elegidos mediante el menú
desplegable debajo del selector de eje:
1. Rectangle allows you to select points by
dragging a rectangle around them.
1. Rectangle le permite seleccionar los puntos
arrastrando un rectángulo alrededor de ellos.
2. Polygon allows you to select points by drawing a free-form polygon. Left-click to add
vertices; right-click to complete the polygon.
The polygon will be closed off by connecting
the first and last points.
2. Polygon le permite seleccionar los puntos
dibujando un polı́gono de forma libre. Haga
clic izquierdo para añadir vértices, haga clic
para completar el polı́gono. El polı́gono se
cierran mediante la conexión de los puntos
primero y el último.
7
3. Polyline allows you to select points by drawing a free-form polyline. Left-click to add
vertices; right-click to complete the shape.
The resulting shape is open, as opposed to
the polygon which is closed.
3. Polyline le permite seleccionar los puntos
dibujando una polilı́nea de forma libre. Haga
clic izquierdo para añadir vértices, haga clic
para completar la forma. La forma resultante es abierto, en comparación con el
polı́gono que está cerrado.
When you have selected an area using any of these
tools, it turns gray. Clicking the Clear button
cancels the selection without affecting the classifier. When you are happy with the selection, click
Submit. This creates two new nodes in the tree,
one holding all the instances covered by the selection and the other holding all remaining instances.
These nodes correspond to a binary split that performs the chosen geometric test.
Cuando haya seleccionado un área usando
cualquiera de estas herramientas, que se vuelve
gris. Al hacer clic en el botón Clear cancela la
selección sin afectar el clasificador. Cuando usted
está satisfecho con la selección, haga clic en Submit. Esto crea dos nuevos nodos en el árbol,
una celebración de todos los casos cubiertos por
la selección y el otro posee la totalidad de los casos restantes. Estos nodos se corresponden a una
división binaria que realiza la prueba geométrica
elegida.
Switch back to the Tree visualizer view to examine the change in the tree. Clicking on different
nodes alters the subset of data that is shown in the
Data visualizer section. Continue adding nodes
until you obtain a good separation of the classes—
that is, the leaf nodes in the tree are mostly pure.
Remember, however, that you do not want to overfit the data, because your tree will be evaluated on
a separate test set.
Cambie de nuevo a la vista de Tree visualizer
para examinar el cambio en el árbol. Al hacer clic
en los nodos diferentes altera el subconjunto de los
datos que se muestra en la sección de Data visualizer. Continúe añadiendo nodos hasta obtener
una buena separación de las clases—es decir, los
nodos hoja en el árbol son en su mayorı́a puro.
Sin embargo, recuerde que usted no desea sobreajuste de los datos, ya que el árbol será evaluado en
un conjunto de prueba independiente.
When you are satisfied with the tree, right-click
any blank space in the Tree visualizer view and
choose Accept The Tree. WEKA evaluates your
tree against the test set and outputs statistics that
show how well you did.
Cuando esté satisfecho con el árbol, haga clic en
cualquier espacio en blanco en la vista Tree visualizer y elija Accept The Tree. WEKA evalúa el
árbol contra el equipo de prueba y las estadı́sticas
de resultados que muestran lo bien que hizo.
You are competing for the best accuracy score
of a hand-built UserClassifier produced on the
‘segment-challenge’ dataset and tested on the
‘segment-test’ set. Try as many times as you like.
A good score is anything close to 90% correct or
better. Run J48 on the data to see how well an automatic decision tree learner performs on the task.
Usted está compitiendo por la mejor puntuación
de exactitud de una mano-construido UserClassifier conjunto de datos producidos en el ‘segmentchallenge’ y de prueba en el set del ‘segment-test’.
Trate tantas veces como quieras. Un buen resultado es algo cercano a 90% de aciertos o mejor.
Ejecutar J48 en los datos para ver qué tan bien
un estudiante de árbol de decisión automática realiza la tarea.
Ex. 12: When you think you have a good score,
right-click the corresponding entry in the
Result list, save the output using Save result buffer, and copy it into your answer for
this tutorial.
Ex. 12: Cuando usted piensa que tiene un buen
puntaje, haga clic en la entrada correspondiente en la Result list, guardar el resultado
con Save result buffer, y copiarlo en su
respuesta para este tutorial.
8
Practical Data Mining
Tutorial 3: Classification Boundaries
Eibe Frank and Ian H .Witten
May 5, 2011
c
2008-2012
University of Waikato
1
Introduction
In this tutorial you will look at the classification
boundaries that are produced by different types
of models. To do this, we use WEKA’s BoundaryVisualizer. This is not part of the WEKA Explorer that we have been using so far. Start up the
WEKA GUI Chooser as usual from the Windows
START menu (on Linux or the Mac, double-click
weka.jar or weka.app). From the Visualization
menu at the top, select BoundaryVisualizer.
En este tutorial se verá en los lı́mites de clasificación que son producidas por diferentes tipos de
modelos. Para ello, utilizamos BoundaryVisualizer de WEKA. Esto es no parte del Explorador de
WEKA que hemos estado utilizando hasta ahora.
Poner en marcha el GUI Chooser WEKA como
de costumbre en el menú INICIO de Windows
(en Linux o Mac, haga doble clic en weka.jar o
weka.app). En el menú Visualization en la parte
superior, seleccione BoundaryVisualizer.
The boundary visualizer shows two-dimensional
plots of the data, and is most appropriate for
datasets with two numeric attributes. We will use
a version of the iris data without the first two
attributes. To create this from the standard iris
data, start up the Explorer, load iris.arff using the Open file button and remove the first
two attributes (‘sepallength’ and ‘sepalwidth’) by
selecting them and clicking the Remove button
that appears at the bottom. Then save the modified dataset to a file (using Save) called, say,
iris.2D.arff.
El visualizador muestra los lı́mites parcelas de dos
dimensiones de los datos, y es más adecuado para
conjuntos de datos con dos atributos numéricos.
Vamos a utilizar una versión de los datos del iris,
sin los dos primeros atributos. Para crear esta partir de los datos del iris estándar, la puesta en marcha del Explorer, la carga iris.arff usando el
botón de Open file y quite los dos primeros atributos (‘sepallength’ y ‘sepalwidth’), seleccionando y
haciendo clic en el botón que Remove aparece en
la parte inferior. A continuación, guarde el conjunto de datos modificados en un archivo (usando
Save) llamado, por ejemplo, iris.2D.arff.
Now leave the Explorer and open this file for visualization using the boundary visualizer’s Open
File... button. Initially, the plot just shows the
data in the dataset.1
Ahora deja el Explorer y abrir este archivo para la
visualización mediante el visualizador de Fronteras
botón Open File.... Inicialmente, la trama sólo
muestra los datos en el conjunto de datos.2
2
Visualizing 1R
Just plotting the data is nothing new. The real
purpose of the boundary visualizer is to show the
predictions of a given model for each location in
space. The points representing the data are color
coded based on the prediction the model generates.
We will use this functionality to investigate the decision boundaries that different classifiers generate
for the reduced iris dataset.
Sólo graficar los datos no es nada nuevo. El verdadero propósito del visualizador lı́mite es mostrar
la predicciones de un modelo determinado para
cada lugar en el espacio. Los puntos que representan los datos están codificados por colores basados
en la predicción del modelo genera. Vamos a utilizar esta funcionalidad para investigar los lı́mites
de la decisión que los clasificadores diferentes para
generar el conjunto de datos del iris reducida.
1 There
is a bug in the initial visualization. To get a true plot of the data, select a different attribute for either the x or
y axis by clicking the appropriate button.
2 No es un error en la visualización inicial. Para obtener una verdadera trama de los datos, seleccione un atributo
diferente, ya sea para los x o y eje haciendo clic en el botón correspondiente.
1
We start with the 1R rule learner. Use the
Choose button of the boundary visualizer to select weka.classifiers.rules.OneR . Make sure
you tick Plot training data, otherwise only the
predictions will be plotted. Then hit the Start
button. The program starts plotting predictions
in successive scan lines. Hit the Stop button once
the plot has stabilized—as soon as you like, in this
case—and the training data will be superimposed
on the boundary visualization.
Empezamos con el aprendiz regla 1R. Utilice el botón de Choose del visualizador lı́mite
para seleccionar weka.classifiers.rules.OneR.
Asegúrese de que usted marque Plot training
data, de lo contrario sólo las predicciones se
trazan. A continuación, pulse el botón Start.
El programa comienza a las predicciones de conspirar en las sucesivas lı́neas de exploración. Pulse
el botón de Stop, una vez la trama se ha
estabilizado—tan pronto como quiera, en este
caso—y los datos de entrenamiento se superpone
a la visualización de frontera.
Ex. 1: Explain the plot based on what you know
about 1R. (Hint: use the Explorer to look at
the rule set that 1R generates for this data.)
Ex. 1: Explicar el argumento basado en lo que
sabe sobre 1R. (Sugerencia: usar el Explorer a mirar el conjunto de reglas que 1R
genera para estos datos.)
Ex. 2: Study the effect of the minBucketSize
parameter on the classifier by regenerating
the plot with values of 1, and then 20, and
then some critical values in between. Describe what you see, and explain it. (Hint:
you could speed things up by using the Explorer to look at the rule sets.)
Ex. 2: Estudiar el efecto del parámetro minBucketSize en el clasificador por la regeneración de la parcela con valores de 1, y luego
20 y, a continuación algunos valores crı́ticos
en el medio. Describe lo que ves, y explicarlo. (Sugerencia: puede acelerar las cosas
mediante el Explorer a ver algunos de los
conjuntos de reglas.)
3
Visualizing nearest-neighbor learning
Ahora nos fijamos en los lı́mites de clasificación creado por el método del vecino más cercano. Utilice el botón de visualizador lı́mite de
Choose... para seleccionar el clasificador IBk
(weka.classifiers.lazy.IBk) y la trama de sus
lı́mites de decisión para reducir los datos del iris.
Now we look at the classification boundaries created by the nearest neighbor method. Use the
boundary visualizer’s Choose... button to select
the IBk classifier (weka.classifiers.lazy.IBk)
and plot its decision boundaries for the reduced
iris data.
2
In WEKA, OneR’s predictions are categorical: for
each instance they predict one of the three classes.
In contrast, IBk outputs probability estimates for
each class, and these are used to mix the colors
red, green, and blue that correspond to the three
classes. IBk estimates class probabilities by counting the number of instances of each class in the set
of nearest neighbors of a test case and uses the
resulting relative frequencies as probability estimates. With k = 1, which is the default value, you
might expect there to be only one instance in the
set of nearest neighbors of each test case (i.e. pixel
location). Looking at the plot, this is indeed almost always the case, because the estimated probability is one for almost all pixels, resulting in a
pure color. There is no mixing of colors because
one class gets probability one and the others probability zero.
En WEKA, las predicciones OneR son
categóricos: para cada instancia que predicen una de las tres clases. Por el contrario, las
salidas IBk estimaciones de probabilidad para
cada clase, y estas se utilizan para mezclar los
colores rojo, verde y azul, que corresponden a las
tres clases. IBk estimaciones de probabilidades de
clase contando el número de casos de cada clase
en el conjunto de los vecinos más cercanos de un
caso de prueba y utiliza las frecuencias resultantes
relativa como las estimaciones de probabilidad.
Con k = 1, que es el valor por defecto, es de
esperar que haya una sola instancia en el conjunto
de vecinos más cercanos de cada caso de prueba
(es decir, lugar de pı́xeles). En cuanto a la trama,
esto es de hecho casi siempre el caso, ya que la
probabilidad estimada es uno de casi todos los
pı́xeles, dando como resultado un color puro. No
hay mezcla de colores, porque una clase recibe
una probabilidad y la probabilidad de los demás
cero.
Ex. 3: Nevertheless, there is a small area in the
plot where two colors are in fact mixed. Explain this. (Hint: look carefully at the data
using the Visualize panel in the Explorer.)
Ex. 3: Sin embargo, hay una pequeña área de la
parcela en la que dos colores son en realidad
mixta. Explique esto. (Sugerencia: mirar
cuidadosamente los datos mediante el panel
Visualizar en el Explorer.)
Ex. 4: Experiment with different values for k, say
5 and 10. Describe what happens as k increases.
Ex. 4: Experimente con diferentes valores de k,
por ejemplo 5 y 10. Describir lo que sucede
cuando aumenta k.
4
Visualizing naive Bayes
Turn now to the naive Bayes classifier. This assumes that attributes are conditionally independent given a particular class value. This means
that the overall class probability is obtained by
simply multiplying the per-attribute conditional
probabilities together. In other words, with two
attributes, if you know the class probabilities along
the x-axis and along the y-axis, you can calculate
the value for any point in space by multiplying
them together. This is easier to understand if you
visualize it as a boundary plot.
Paso ahora a los ingenuos clasificador de Bayes.
Esto supone que los atributos son condicionalmente independientes dado un valor de clase especial. Esto significa que la probabilidad de clase
global se obtiene simplemente multiplicando por
el atributo de probabilidades condicionales juntos.
En otras palabras, con dos atributos, no sé si las
probabilidades de clase a lo largo del eje X ya lo
largo del eje, se puede calcular el valor de cualquier
punto del espacio multiplicando juntos. Esto es
más fácil de entender si la visualizan como una
parcela de contorno.
3
Plot the predictions of naive Bayes. But first, you
need to discretize the attribute values. By default,
NaiveBayes assumes that the attributes are normally distributed given the class (i.e., they follow
a bell-shaped distribution). You should override
this by setting useSupervisedDiscretization to
true using the GenericObjectEditor. This will
cause NaiveBayes to discretize the numeric attributes in the data using a supervised discretization technique.3
Parcela las predicciones de Bayes ingenuo. Pero
primero, tiene que discretizar los valores de atributo. De forma predeterminada, NaiveBayes
asume que los atributos tienen una distribución
normal habida cuenta de la clase (es decir, que
siguen una distribución en forma de campana).
Usted debe cambiar este ajuste de useSupervisedDiscretization a true utilizando el GenericObjectEditor. Esto hará que NaiveBayes
para discretizar los atributos numéricos de los
datos mediante una técnica de discretización supervisado.4
In almost all practical applications of NaiveBayes, supervised discretization works better
than the default method, and that is why we consider it here. It also produces a more comprehensible visualization.
En casi todas las aplicaciones prácticas de la
NaiveBayes, discretización supervisado es más
eficaz que el método por defecto, y es por eso que
lo consideramos aquı́. También produce una visualización más comprensible.
Ex. 5: The plot that is generated by visualizing the predicted class probabilities of naive
Bayes for each pixel location is quite different
from anything we have seen so far. Explain
the patterns in it.
Ex. 5: La trama que se genera mediante la visualización de las probabilidades de clase previsto de Bayes ingenuo para cada posición de
pı́xel es muy diferente de todo lo que hemos
visto hasta ahora. Explicar los patrones en
ella.
5
Visualizing decision trees and rule sets
Decision trees and rule sets are similar to nearestneighbor learning in the sense that they are also
quasi-universal: in principle, they can approximate
any decision boundary arbitrarily closely. In this
section, we look at the boundaries generated by
JRip and J48.
Los árboles de decisión y conjuntos de reglas son
similares a los del vecino más próximo de aprendizaje en el sentido de que son también casi universal: en principio, se puede aproximar cualquier
lı́mite de la decisión arbitraria de cerca. En esta
sección, nos fijamos en los lı́mites generados por
JRip y J48.
Generate a plot for JRip, with default options.
Generar una parcela de JRip, con las opciones predeterminadas.
Ex. 6: What do you see? Relate the plot to the
output of the rules that you get by processing
the data in the Explorer.
Ex. 6: Qué ves? La trama a la salida de las normas que se obtiene al procesar los datos en
la Explorer.
Ex. 7: The JRip output assumes that the rules
will be executed in the correct sequence.
Write down an equivalent set of rules that
achieves the same effect regardless of the order in which they are executed.
Ex. 7: La salida JRip asume que las normas se
ejecutará en el orden correcto. Escriba un
conjunto equivalente de las normas que logra
el mismo efecto sin importar el orden en que
se ejecutan.
3 The
technique used is “supervised” because it takes the class labels of the instances into account to find good split
points for the discretization intervals.
4 La técnica utilizada es “supervisada”, porque tiene las etiquetas de clase de las instancias en cuenta para encontrar
buenos puntos de partido para los intervalos de discretización.
4
Generate a plot for J48, with default options.
Generar una parcela de J48, con las opciones predeterminadas.
Ex. 8: What do you see? Relate the plot to the
output of the tree that you get by processing
the data in the Explorer.
Ex. 8: Qué ves? La trama a la salida del árbol
que se obtiene al procesar los datos en la Explorer.
One way to control how much pruning J48 performs before it outputs its tree is to adjust the
minimum number of instances required in a leaf,
minNumbObj.
Una forma de controlar la cantidad de poda J48
realiza antes de que los resultados de su árbol es
para ajustar el número mı́nimo de casos necesarios
en una hoja, minNumbObj.
Ex. 9: Suppose you want to generate trees with
3, 2, and 1 leaf nodes respectively. What are
the exact ranges of values for minNumObj
that achieve this, given default values for all
other parameters?
Ex. 9: Supongamos que desea generar árboles
con 3, 2 y 1 respectivamente nodos de la hoja.
Cuáles son los rangos de los valores exactos
de minNumObj que lograr este objetivo,
los valores por defecto para todos los otros
parámetros?
6
Messing with the data
With the BoundaryVisualizer you can modify
the data by adding or removing points.
Con el BoundaryVisualizer se pueden modificar
los datos, añadiendo o quitando puntos.
Ex. 10: Introduce some “noise” into the data and
study the effect on the learning algorithms
we looked at above. What kind of behavior do you observe for each algorithm as you
introduce more noise?
Ex. 10: Introducir algunos “ruidos” en los datos
y estudiar el efecto sobre los algoritmos de
aprendizaje que vimos anteriormente. Qué
tipo de comportamiento no se observa para
cada algoritmo como introducir más ruido?
7
1R revisited
Return to the 1R rule learner on the reduced iris
dataset used in Section 2 (not the noisy version
you just created). The following questions will require you to think about the internal workings of
1R. (Hint: it will probably be fastest to use the Explorer to look at the rule sets.)
Volver al alumno regla 1R en el iris reducido conjunto de datos utilizado en la Sección 2 (no la
versión ruidosa que acaba de crear). Las siguientes preguntas le exigirá que pensar en el funcionamiento interno de 1R. (Sugerencia: es probable que sea más rápido utilizar el Explorer a ver
algunos de los conjuntos de reglas.)
Ex. 11: You saw in Section 2 that the plot always
has three regions. But why aren’t there more
for small bucket sizes (e.g., 1)? Use what
you know about 1R to explain this apparent
anomaly.
Ex. 11: Se vio en la Sección 2 que la trama siempre tiene tres regiones. Pero por qué no hay
más para las dimensiones de cubo pequeño
(por ejemplo, 1)? Usa lo que sabes sobre 1R
para explicar esta aparente anomalı́a.
5
Ex. 12: Can you set minBucketSize to a value
that results in less than three regions? What
is the smallest possible number of regions?
What is the smallest value for minBucketSize that gives you this number of regions?
Explain the result based on what you know
about the iris data.
Ex. 12: Se puede configurar minBucketSize a
un valor que los resultados en menos de tres
regiones? Cuál es el menor número posible
de regiones? Cuál es el valor más pequeño
de minBucketSize que le da este número
de regiones? Explicar el resultado sobre la
base de lo que sabe acerca de los datos del
iris.
6
Practical Data Mining
Tutorial 4: Preprocessing and Parameter Tuning
Eibe Frank and Ian H. Witten
May 5, 2011
c
2008-2012
University of Waikato
1
Introduction
Data preprocessing is often necessary to get data
ready for learning. It may also improve the outcome of the learning process and lead to more accurate and concise models. The same is true for
parameter tuning methods. In this tutorial we
will look at some useful preprocessing techniques,
which are implemented as WEKA filters, as well
as a method for automatic parameter tuning.
2
Preprocesamiento de datos es a menudo necesario
para obtener los datos listos para el aprendizaje.
También puede mejorar el resultado del proceso de
aprendizaje y dar lugar a modelos más precisos y
concisos. Lo mismo es cierto para los métodos de
ajuste de parámetros. En este tutorial vamos a
ver algunas de las técnicas de preprocesamiento
útil, que se aplican como filtros de WEKA, ası́
como un método para el ajuste automático de los
parámetros.
Discretization
Numeric attributes can be converted into discrete
ones by splitting their ranges into numeric intervals, a process known as discretization. There are
two types of discretization techniques: unsupervised ones, which are “class blind.,” and supervised
one, which take the class value of the instances into
account when creating intervals. The aim with supervised techniques is to create intervals that are
as consistent as possible with respect to the class
labels.
los atributos numéricos se pueden convertir en los
discretos mediante el fraccionamiento de sus áreas
de distribución en intervalos numéricos, un proceso conocido como discretización. Hay dos tipos
de técnicas de discretización: sin supervisión los
que son “de clase ciego,” y una supervisión, que
tienen el valor de clase de las instancias en cuenta
al crear intervalos. El objetivo con las técnicas de
supervisión es la creación de intervalos que sean
tan coherentes como sea posible con respecto a las
etiquetas de clase.
The main unsupervised technique for discretizing numeric attributes in WEKA is
weka.filters.unsupervised.attribute.
Discretize. It implements two straightforward
methods: equal-width and equal-frequency discretization. The first simply splits the numeric
range into equal intervals. The second chooses
the width of the intervals so that they contain
(approximately) the same number of instances.
The default is to use equal width.
El principal técnica unsupervisada para discretizar los atributos numéricos en WEKA
es
weka.filters.unsupervised.attribute.
Discretize. Se implementa dos métodos sencillos: la igualdad de ancho y discretización de igual
frecuencia. El primero, simplemente se divide el
rango numérico en intervalos iguales. El segundo
opta por la amplitud de los intervalos para que los
mismos contienen (aproximadamente) el mismo
número de casos. El valor por defecto es usar la
misma anchura.
Find the glass dataset glass.arff and load it
into the Explorer. Apply the unsupervised discretization filter in the two different modes discussed above.
Encontrar el conjunto de datos de cristal
glass.arff y cargarlo en la Explorer. Aplicar
el filtro de discretización sin supervisión en las dos
modalidades anteriormente expuestas.
Ex. 1: What do you observe when you compare
the histograms obtained? Why is the one for
equal-frequency discretization quite skewed
for some attributes?
Ex. 1: Qué observa al comparar los histogramas
obtenidos? Por qué es la discretización de
la igualdad de frecuencia muy sesgada de algunos atributos?
1
The main supervised technique for discretizing
numeric
attributes
in
WEKA
is
weka.filters.supervised.attribute.
Discretize. Locate the iris data, load it in,
apply the supervised discretization scheme, and
look at the histograms obtained. Supervised
discretization attempts to create intervals such
that the class distributions differ between intervals
but are consistent within intervals.
El principal supervisado técnica para discretizar los atributos numéricos en WEKA
es
weka.filters.supervised.attribute.
Discretize.
Busque los datos del iris, se
carga en, aplicar el esquema de discretización
supervisado, y ver los histogramas obtenidos. Encuadramiento intentos de discretización para crear
intervalos de tal manera que las distribuciones
difieren entre los intervalos de clase, pero son
coherentes dentro de los intervalos.
Ex. 2: Based on the histograms obtained, which
of the discretized attributes would you consider the most predictive ones?
Ex. 2: Con base en los histogramas obtenidos,
que de los atributos discretizados se tiene en
cuenta los más predictivo?
Reload the glass data and apply supervised discretization to it.
Actualizar los datos de vidrio y aplicar discretización supervisada a la misma.
Ex. 3: There is only a single bar in the histograms
for some of the attributes. What does that
mean?
Ex. 3: Sólo hay una sola barra en los histogramas
de algunos de los atributos. Qué significa
eso?
Discretized attributes are normally coded as nominal attributes, with one value per range. However,
because the ranges are ordered, a discretized attribute is actually on an ordinal scale. Both filters
also have the ability to create binary attributes
rather than multi-valued ones, by setting the option makeBinary to true.
Atributos discretizado normalmente codificados
como atributos nominales, con un valor por rango.
Sin embargo, debido a los rangos están ordenados,
un atributo discretizado es en realidad en una escala ordinal. Ambos filtros también tienen la capacidad de crear los atributos binarios en lugar de
los múltiples valores, mediante el establecimiento
de la makeBinary opción de verdad.
Ex. 4: Choose one of the filters and apply it
to create binary attributes. Compare to
the output generated when makeBinary is
false. What do the binary attributes represent?
Ex. 4: Elegir un de los filtros y aplicarlo para
crear atributos binarios. Compare con el
resultado generado cuando makeBinary es
falsa. Qué significan los atributos binarios
representan?
3
More on Discretization
Here we examine the effect of discretization when
building a J48 decision tree for the data in
ionosphere.arff. This dataset contains information about radar signals returned from the ionosphere. “Good” samples are those showing evidence of some type of structure in the ionosphere,
while for “bad” ones the signals pass directly
through the ionosphere. For more details, take a
look the comments in the ARFF file. Begin with
unsupervised discretization.
Aquı́ se examina el efecto de la discretización en
la construcción de un árbol de decisión J48 para
los datos de ionosphere.arff. Este conjunto de
datos contiene información acerca de las señales
de radar de regresar de la ionosfera. “Bueno” son
las muestras que presenten indicios de algún tipo
de estructura de la ionosfera, mientras que para los
“malos” las señales pasan directamente a través de
la ionosfera. Para obtener más información, visita
los comentarios en el archivo ARFF. Comience con
discretización sin supervisión.
2
Ex. 5: Compare the cross-validated accuracy of
J48 and the size of the trees generated for
(a) the raw data, (b) data discretized by the
unsupervised discretization method in default mode, (c) data discretized by the same
method with binary attributes.
Ex. 5: Comparación de la precisión validación
cruzada de J48 y el tamaño de los árboles
generados por (a) los datos en bruto, (b)
los datos discretizados por el método de discretización sin supervisión en el modo por defecto, (c) los datos discretizados por el mismo
método con atributos binarios.
Now turn to supervised discretization. Here a subtle issue arises. If we simply repeated the previous
exercise using a supervised discretization method,
the result would be over-optimistic. In effect, since
cross-validation is used for evaluation, the data in
the test set has been taken into account when determining the discretization intervals. This does not
give a fair estimate of performance on fresh data.
Ahora pasa a la discretización supervisado. Aquı́
surge una cuestión sutil. Si nos limitamos a repetir el ejercicio anterior utilizando un método de
discretización supervisado, el resultado serı́a demasiado optimista. En efecto, ya que la validación
cruzada se utiliza para la evaluación, los datos en
el conjunto de pruebas se ha tenido en cuenta para
determinar los intervalos de discretización. Esto
no da una estimación razonable de rendimiento en
nuevos datos.
To evaluate supervised discretization in a fair fashion, we use the FilteredClassifier from WEKA’s
meta-classifiers. This builds the filter model from
the training data only, before evaluating it on the
test data using the discretization intervals computed for the training data. After all, that is how
you would have to process fresh data in practice.
Para evaluar discretización supervisado de manera justa, se utiliza el FilteredClassifier de meta
de WEKA-clasificadores. Esto se basa el modelo
de filtro de los datos de entrenamiento solamente,
antes de evaluar que en los datos de prueba mediante los intervalos de discretización calculados para
los datos de entrenamiento. Después de todo, que
es como se tendrı́a que procesar los datos frescos
en la práctica.
Ex. 6: Compare the cross-validated accuracy and
the size of the trees generated using the FilteredClassifier and J48 for (d) supervised
discretization in default mode, (e) supervised
discretization with binary attributes.
Ex. 6: Comparación de la precisión validación
cruzada y el tamaño de los árboles generados con el FilteredClassifier y J48 para (d)
discretización supervisado en su modo normal, (e) discretización de supervisión de los
atributos binarios.
Ex. 7: Compare these with the results for the raw
data ((a) above). Can you think of a reason of why decision trees generated from discretized data can potentially be more accurate predictors than those built from raw numeric data?
Ex. 7: Compare estos datos con los resultados de
los datos en bruto ((a) anterior). Puedes
pensar en una razón de por qué los árboles de
decisión generados a partir de datos discretos
pueden ser potencialmente predictores más
fiables que las construye a partir de datos
numéricos en bruto?
3
4
Automatic Attribute Selection
In most practical applications of supervised learning not all attributes are equally useful for predicting the target. Depending on the learning scheme
employed, redundant and/or irrelevant attributes
can result in less accurate models being generated.
The task of manually identifying useful attributes
in a dataset can be tedious, as you have seen in the
second tutorial—but there are automatic attribute
selection methods that can be applied.
En la mayorı́a de las aplicaciones prácticas de
aprendizaje supervisado, no todos los atributos son
igualmente útiles para predecir el destino. Dependiendo de la actividad de aprendizaje empleados, redundantes y/o atributos irrelevantes pueden
dar lugar a modelos menos precisos generando.
La tarea de identificar manualmente los atributos
útiles en un conjunto de datos puede ser tedioso, ya
que hemos visto en el segundo tutorial—pero hay
métodos automáticos de selección de atributos que
se pueden aplicar.
They can be broadly divided into those that rank
individual attributes (e.g., based on their information gain) and those that search for a good subset
of attributes by considering the combined effect
of the attributes in the subset. The latter methods can be further divided into so-called filter and
wrapper methods. Filter methods apply a computationally efficient heuristic to measure the quality
of a subset of attributes. Wrapper methods measure the quality of an attribute subset by building
and evaluating an actual classification model from
it, usually based on cross-validation. This is more
expensive, but often delivers superior performance.
Pueden dividirse en aquellos que se clasifican los
atributos individuales (por ejemplo, sobre la base
de su ganancia de información) y los de búsqueda
que para un subconjunto de los atributos de buena
considerando el efecto combinado de los atributos
en el subconjunto. Estos métodos se pueden dividir en los llamados filtro y contenedor métodos.
métodos de aplicar un filtro eficiente computacionalmente heurı́stica para medir la calidad de un
subconjunto de los atributos. métodos Wrapper
medir la calidad de un subconjunto de atributos
mediante la construcción y evaluación de un modelo de clasificación real de ella, generalmente se
basa en la validación cruzada. Esto es más caro,
pero a menudo ofrece un rendimiento superior.
In the WEKA Explorer, you can use the Select attributes panel to apply an attribute selection method on a dataset. The default is CfsSubsetEval. However, if we want to rank individual attributes, we need to use an attribute
evaluator rather than a subset evaluator, e.g., the
InfoGainAttributeEval. Attribute evaluators
need to be applied with a special “search” method,
namely the Ranker.
En el Explorer WEKA, puede utilizar el panel
de Select attributes de aplicar un método de
selección de atributos en un conjunto de datos.
El valor predeterminado es CfsSubsetEval. Sin
embargo, si queremos clasificar los atributos individuales, tenemos que recurrir a un evaluador
de atributos en vez de un subgrupo evaluador,
por ejemplo, la InfoGainAttributeEval. evaluadores de atributos deben ser aplicados con un especial de “búsqueda” método, a saber, la Ranker.
Ex. 8: Apply this technique to the labour negotiations data in labor.arff. What are the
four most important attributes based on information gain?1
Ex. 8: Aplicar esta técnica para las negociaciones
laborales de datos en labor.arff. Cuáles
son los cuatro atributos más importantes
basadas en el aumento de la información?2
1 Note that most attribute evaluators, including InfoGainAttributeEval, discretize numeric attributes using WEKA’s
supervised discretization method before they are evaluated. This is also the case for CfsSubsetEval.
2 Nota que la mayorı́a de los evaluadores de atributos, incluyendo InfoGainAttributeEval, discretizar los atributos
numéricos mediante el método de discretización supervisado WEKA antes de que se evalúan. Este es también el caso de
CfsSubsetEval.
4
WEKA’s default attribute selection method, CfsSubsetEval, uses a heuristic attribute subset evaluator in a filter search method. It aims to identify a subset of attributes that are highly correlated with the target while not being strongly correlated with each other. By default, it searches
through the space of possible attribute subsets
for the “best” one using the BestFirst search
method.3 You can choose others, like a genetic
algorithm or even an exhaustive search. In fact,
choosing GreedyStepwise and setting searchBackwards to true gives “backwards selection,”
the search method you used manually in the second tutorial.
WEKA atributo por defecto el método de selección, CfsSubsetEval, utiliza un subconjunto
de atributos evaluador heurı́stica en un método de
filtro de búsqueda. Su objetivo es identificar un
subconjunto de los atributos que están muy correlacionados con el objetivo sin ser fuertemente
correlacionados entre sı́. De forma predeterminada, se busca a través del espacio de subconjuntos de atributos posibles para el “mejor” con
el método de búsqueda BestFirst.4 Usted puede
elegir otros, como un algoritmo genético o incluso
una exhaustiva búsqueda. De hecho, la elección
de GreedyStepwise searchBackwards y el establecimiento de verdad da “al revés de selección,”
el método de búsqueda que usa manualmente en el
segundo tutorial.
To use the wrapper method rather than a filter
method like CfsSubsetEval, you need to select
WrapperSubsetEval. You can configure this by
choosing a learning algorithm to apply. You can
also set the number of folds for the cross-validation
that is used to evaluate the model on each subset
of attributes.
Para utilizar el método de envoltura en vez de un
método de filtro como CfsSubsetEval, es necesario seleccionar WrapperSubsetEval. Puede
configurar esta eligiendo un algoritmo de aprendizaje de aplicar. También puede establecer el
número de pliegues para la validación cruzada que
se utiliza para evaluar el modelo en cada subconjunto de atributos.
Ex. 9: On the same data, run CfsSubsetEval
for correlation-based selection, using BestFirst search. Then run the wrapper method
with J48 as the base learner, again using
BestFirst search. Examine the attribute
subsets that are output. Which attributes
are selected by both methods? How do they
relate to the output generated by ranking using information gain?
Ex. 9: En los mismos datos, CfsSubsetEval correr para la selección basada en la correlación,
mediante la búsqueda de BestFirst. A continuación, ejecute el método de envoltura con
J48 como el aprendiz de base, utilizando de
nuevo la búsqueda BestFirst. Examinar
los subconjuntos de atributos que se emiten.
Qué atributos son seleccionados por ambos
métodos? Cómo se relacionan con el resultado generado por el aumento de clasificación
de información utiliza?
5
More on Automatic Attribute Selection
The Select attribute panel allows us to gain insight into a dataset by applying attribute selection
methods to a dataset. However, using this information to reduce a dataset becomes problematic
if we use some of the reduced data for testing the
model (as in cross-validation).
3 This
4 Este
El panel de Select attribute nos permite profundizar en un conjunto de datos mediante la aplicación de métodos de selección de atributos de un
conjunto de datos. Sin embargo, utilizar esta información para reducir un conjunto de datos se
convierte en un problema si utilizamos algunos de
los datos reducidos para probar el modelo (como
en la validación cruzada).
is a standard search method from AI.
es un método de búsqueda estándar de la influenza aviar.
5
The reason is that, as with supervised discretization, we have actually looked at the class labels in
the test data while selecting attributes—the “best”
attributes were chosen by peeking at the test data.
As we already know (see Tutorial 2), using the test
data to influence the construction of a model biases the accuracy estimates obtained: measured
accuracy is likely to be greater than what will be
obtained when the model is deployed on fresh data.
To avoid this, we can manually divide the data into
training and test sets and apply the attribute selection panel to the training set only.
La razón es que, al igual que con discretización supervisado, que se han mirado en las etiquetas de
clase en los datos de prueba, mientras que la selección de los atributos—la “mejor” los atributos
fueron elegidos por espiar a los datos de prueba.
Como ya sabemos (ver Tutorial 2), utilizando los
datos de prueba para influir en la construcción de
un modelo de los sesgos de la exactitud estimaciones obtenidas: La precisión de medida es probable que sea mayor de lo que se obtiene cuando el
modelo se implementa en nuevos datos. Para evitar esto, se puede dividir manualmente los datos en
conjuntos de entrenamiento y de prueba y aplicar
el comité de selección de atributos al conjunto de
entrenamiento solamente.
A more convenient method is to use the
AttributeSelectedClassifer, one of WEKA’s
meta-classifiers. This allows us to specify an attribute selection method and a learning algorithm
as part of a classification scheme. The AttributeSelectedClassifier ensures that the chosen set of
attributes is selected based on the training data
only, in order to give unbiased accuracy estimates.
Un método más conveniente es utilizar el
AttributeSelectedClassifer, uno de los metaclasificadores de WEKA. Esto nos permite especificar un método de selección de atributos y un algoritmo de aprendizaje como parte de un esquema
de clasificación. El AttributeSelectedClassifier
asegura que el conjunto seleccionado de atributos se selecciona basándose en los datos de entrenamiento solamente, a fin de dar estimaciones insesgadas precisión.
Now we test the various attribute selection methods tested above in conjunction with NaiveBayes.
Naive Bayes assumes (conditional) independence
of attributes, so it can be affected if attributes
are redundant, and attribute selection can be very
helpful.
Ahora ponemos a prueba los métodos de selección de atributos diferentes probado anteriormente en relación con NaiveBayes. Bayesiano
asume (condicional) la independencia de los atributos, por lo que puede verse afectado si los atributos son redundantes, y la selección de atributos
puede ser muy útil.
You can see the effect of redundant
attributes
on
naive
Bayes
by
adding
copies of an existing attribute to a
dataset using the unsupervised filter class
weka.filters.unsupervised.attribute.Copy
in the Preprocess panel. Each copy is obviously
perfectly correlated with the original.
Usted puede ver el efecto de los atributos redundantes en Bayes ingenuo mediante la adición de
copias de un atributo existente a un conjunto de
datos utilizando la clase de filtro sin supervisión
weka.filters.unsupervised.attribute.Copy
en el panel de Preprocess. Cada copia es,
obviamente, una correlación perfecta con el
original.
Ex. 10: Load the diabetes classification data in
diabetes.arff and start adding copies of
the first attribute in the data, measuring the
performance of naive Bayes (with useSupervisedDiscretization turned on) using
cross-validation after you have added each
copy. What do you observe?
Ex. 10: carga los datos de clasificación de la diabetes diabetes.arff y comenzar a agregar
copias de la primera cualidad de los datos,
medir el rendimiento de Bayes naive (con
useSupervisedDiscretization encendido)
con validación cruzada después de haber
agregado cada copia. Qué observa?
Let us now check whether the three attribute selection methods from above, used in conjunction
with AttributeSelectedClassifier and NaiveBayes, successfully eliminate the redundant attributes. The methods are:
Vamos ahora a comprobar si los tres métodos
de selección de atributos de arriba, se utiliza junto con AttributeSelectedClassifier y
NaiveBayes, con éxito eliminar los atributos redundantes. Los métodos son:
6
• InfoGainAttributeEval with Ranker (8
attributes)
• InfoGainAttributeEval con Ranker (8
atributos)
• CfsSubsetEval with BestFirst
• CfsSubsetEval con BestFirst
• WrapperSubsetEval with NaiveBayes
and BestFirst.
• WrapperSubsetEval con NaiveBayes y
BestFirst.
Run each method from within AttributeSelectedClassifier to see the effect on cross-validated
accuracy and check the attribute subset selected
by each method. Note that you need to specify the
number of ranked attributes to use for the Ranker
method. Set this to eight, because the original diabetes data contains eight attributes (excluding the
class). Note also that you should specify NaiveBayes as the classifier to be used inside the wrapper method, because this is the classifier that we
want to select a subset for.
Ejecutar cada método dentro de AttributeSelectedClassifier para ver el efecto en la cruzvalidado la exactitud y verificar el subconjunto de
atributos seleccionados por cada método. Tenga
en cuenta que es necesario especificar el número
de atributos clasificó a utilizar para el método de
Ranker. Ponga esto a ocho, porque los datos de
la diabetes original contiene ocho atributos (con
exclusión de la clase). Tenga en cuenta también
que debe especificar NaiveBayes como el clasificador para ser utilizado en el método de envoltura,
porque este es el clasificador que desea seleccionar
un subconjunto de.
Ex. 11: What can you say regarding the performance of the three attribute selection methods? Do they succeed in eliminating redundant copies? If not, why not?
Ex. 11: Qué puede decir respecto al rendimiento
de los tres métodos de selección de atributos? No tienen éxito en la eliminación de las
copias redundantes? Si no, por qué no?
6
Automatic parameter tuning
Many learning algorithms have parameters that
can affect the outcome of learning. For example,
the decision tree learner C4.5 (J48 in WEKA) has
two parameters that influence the amount of pruning that it does (we saw one, the minimum number
of instances required in a leaf, in the last tutorial).
The k-nearest-neighbor classifier IBk has one that
sets the neighborhood size. But manually tweaking
parameter settings is tedious, just like manually
selecting attributes, and presents the same problem: the test data must not be used when selecting
parameters—otherwise the performance estimates
will be biased.
Muchos algoritmos de aprendizaje tienen
parámetros que pueden afectar los resultados
del aprendizaje. Por ejemplo, el árbol de decisión C4.5 alumno (J48 en WEKA) tiene dos
parámetros que influyen en la cantidad de la
poda que hace (hemos visto a uno, el número
mı́nimo de casos necesarios en una hoja, en el
último tutorial). El k -clasificador del vecino más
próximo IBk tiene uno que establece el tamaño de
la vecindad. Pero manualmente modificando los
ajustes de parámetros es tedioso, al igual que los
atributos seleccionar manualmente, y presenta el
mismo problema: los datos de prueba no debe ser
utilizado cuando los parámetros de selección—lo
contrario las estimaciones de rendimiento se hará
con preferencia.
7
WEKA
has
a
“meta”
classifier,
CVParameterSelection,
that automatically
searches for the “best” parameter settings by
optimizing cross-validated accuracy on the training data. By default, each setting is evaluated
using 10-fold cross-validation. The parameters to
optimize re specified using the CVParameters
field in the GenericObjectEditor. For each
one, we need to give (a) a string that names it
using its letter code, (b) a numeric range of values
to evaluate, and (c) the number of steps to try in
this range (Note that the parameter is assumed
to be numeric.) Click on the More button in
the GenericObjectEditor for more information,
and an example.
WEKA
tiene
una
“meta”
clasificador,
CVParameterSelection,
que
busca
automáticamente los “mejores” valores de los
parámetros mediante la optimización de cruzvalidado la exactitud de los datos de entrenamiento.
De forma predeterminada, cada
ajuste se evaluó utilizando 10 veces la validación
cruzada. Los parámetros para volver a optimizar
el uso especificado en el campo CVParameters
GenericObjectEditor. Para cada uno de ellos,
tenemos que dar (a) una cadena que le asigna el
nombre utilizando su código de letras, (b) una
serie de valores numéricos para evaluar, y (c) el
número de medidas para tratar en este rango de
(Tenga en cuenta que el parámetro se supone que
es numérico.) Haga clic en el botón de More
en la GenericObjectEditor para obtener más
información, y un ejemplo.
For the diabetes data used in the previous section,
use CVParameterSelection in conjunction with
IBk to select the “best” value for the neighborhood size, ranging from 1 to 10 in ten steps. The
letter code for the neighborhood size is K. The
cross-validated accuracy of the parameter-tuned
version of IBk is directly comparable with its accuracy using default settings, because tuning is performed by applying inner cross-validation runs to
find the best parameter setting for each training
set occuring in the outer cross-validation—and the
latter yields the final performance estimate.
Para los datos de la diabetes utilizados en la
sección anterior, el uso CVParameterSelection
IBk en conjunto con el fin de seleccionar la
“mejor” valor para el tamaño de la vecindad, que
van desde 1 a 10 en diez pasos. El código de letras para el tamaño de esta zona: K. La precisión
de validación cruzada de la versión parámetro afinado de IBk es directamente comparable con la
precisión con la configuración predeterminada, ya
que ajuste se realiza mediante la aplicación de interior validación cruzada se ejecuta para encontrar
el mejor ajuste de parámetros para cada conjunto
de entrenamiento se producen en el exterior validación cruzada—y los rendimientos de este último
la estimación final de ejecución.
Ex. 12: What accuracy is obtained in each case?
What value is selected for the parametertuned version based on cross-validation on
the full training set? (Note: this value is
output in the Classifier output text area.)
Ex. 12: Qué precisión se obtiene en cada caso?
Qué valor se selecciona para la versión
parámetro afinado sobre la base de la validación cruzada en el conjunto de entrenamiento completo? (Nota: este valor es la
producción en el área de texto Classifier de
salida.)
Now consider parameter tuning for J48. We can
use CVParameterSelection to perform a grid
search on both pruning parameters simultaneously
by adding multiple parameter strings in the CVParameters field. The letter code for the pruning
confidence parameter is C, and you should evaluate values from 0.1 to 0.5 in five steps. The letter
code for the minimum leaf size parameter is M ,
and you should evaluate values from 1 to 10 in ten
steps.
Ahora considere ajuste de parámetros de J48.
Podemos utilizar CVParameterSelection para
realizar una búsqueda de la rejilla en ambos
parámetros al mismo tiempo de poda mediante
la adición de varias cadenas de parámetros en el
campo CVParameters. El código de letras para
el parámetro de la confianza de la poda es de C,
y usted debe evaluar los valores de 0,1 a 0,5 en
cinco pasos. El código de letras para el parámetro
de hoja de tamaño mı́nimo es de M , y se deben
evaluar los valores de 1 a 10 en diez pasos.
8
Ex. 13: Run CVParameterSelection to find
the best parameter values in the resulting
grid. Compare the output you get to that
obtained from J48 with default parameters.
Has accuracy changed? What about tree
size? What parameter values were selected
by CVParameterSelection for the model
built from the full training set?
Ex. 13: Ejecutar CVParameterSelection para
encontrar los mejores valores de parámetros
en la red resultante. Comparar la salida se
llega a la obtenida de J48 con los parámetros
por defecto. Tiene una precisión cambiado?
Qué pasa con el tamaño del árbol? Qué valores de los parámetros han sido seleccionados
por CVParameterSelection para el modelo construido a partir del conjunto de entrenamiento completo?
9
Practical Data Mining
Tutorial 5: Document Classification
Eibe Frank and Ian H. Witten
May 5, 2011
c
2008-2012
University of Waikato
1
Introduction
Text classification is a popular application of machine learning. You may even have used it: email
spam filters are classifiers that divide email messages, which are just short documents, into two
groups: junk and not junk. So-called “Bayesian”
spam filters are trained on messages that have been
manually labeled, perhaps by putting them into
appropriate folders (e.g. “ham” vs “spam”).
Clasificación de texto es una aplicación popular de
aprendizaje automático. Puede que incluso lo han
utilizado: los filtros de spam de correo electrónico
son los clasificadores que dividen a los mensajes
de correo electrónico, que son documentos poco
menos, en dos grupos: basura y no deseado. Los
llamados “Bayesiano” filtros de spam son entrenados en los mensajes que han sido etiquetados
de forma manual, tal vez por su puesta en carpetas correspondientes (por ejemplo, “jamón” vs
“spam”).
In this tutorial we look at how to perform document classification using tools in WEKA. The raw
data is text, but most machine learning algorithms
expect examples that are described by a fixed set
of attributes. Hence we first convert the text data
into a form suitable for learning. This is usually
done by creating a dictionary of terms from all
the documents in the training corpus and making
a numeric attribute for each term. Then, for a
particular document, the value of each attribute is
based on the frequency of the corresponding term
in the document. There is also the class attribute,
which gives the document’s label.
En este tutorial vamos a ver cómo llevar a cabo la
clasificación de documentos usando herramientas
en WEKA. Los datos en bruto es de texto, pero la
mayorı́a de algoritmos de aprendizaje automático
esperar ejemplos que se describen mediante un conjunto fijo de atributos. Por lo tanto, primero convertir los datos de texto en una forma adecuada
para el aprendizaje. Esto suele hacerse mediante
la creación de un diccionario de términos de todos
los documentos en el corpus de entrenamiento y haciendo un atributo numérico de cada término. Entonces, para un documento particular, el valor de
cada atributo se basa en la frecuencia del término
correspondiente en el documento. también existe
el atributo de clase, lo que da la etiqueta del documento.
2
Data with string attributes
WEKA’s
unsupervised
attribute
filter
StringToWordVector can be used to convert
raw text into term-frequency-based attributes.
The filter assumes that the text of the documents
is stored in an attribute of type String, which is
a nominal attribute without a pre-specified set of
values. In the filtered data, this string attribute is
replaced by a fixed set of numeric attributes, and
the class attribute is put at the beginning, as the
first attribute.
Atributo sin supervisión WEKA el filtro
StringToWordVector se puede utilizar para
convertir el texto en bruto en los atributos plazo
basado en la frecuencia. El filtro se supone que
el texto de los documentos se almacena en un
atributo de tipo String, que es un atributo
nominal sin un conjunto previamente especificado
de valores. En los datos filtrados, este atributo
de cadena se sustituye por un conjunto fijo de
atributos numéricos, y el atributo de la clase se
pone al principio, como el primer atributo.
To perform document classification, we first
need to create an ARFF file with a string
attribute that holds the documents’ text—
declared in the header of the ARFF file using
@attribute document string, where document
is the name of the attribute. We also need a nominal attribute that holds the document’s classification.
Para realizar la clasificación de documentos,
primero tenemos que crear un archivo de
ARFF con un atributo de cadena que contiene texto de los documentos—declarado en
el encabezado del archivo ARFF mediante
@attribute document string, donde document
es el nombre del atributo. también necesitamos
un atributo nominal que contiene la clasificación
del documento.
1
Document text
The price of crude oil has increased significantly
Demand of crude oil outstrips supply
Some people do not like the flavor of olive oil
The food was very oily
Crude oil is in short supply
Use a bit of cooking oil in the frying pan
Classification
yes
yes
no
no
yes
no
Table 1: Training “documents”.
Document text
Oil platforms extract crude oil
Canola oil is supposed to be healthy
Iraq has significant oil reserves
There are different types of cooking oil
Classification
Unknown
Unknown
Unknown
Unknown
Table 2: Test “documents”.
Ex. 1: To get a feeling for how this works,
make an ARFF file from the labeled mini“documents” in Table 1 and run StringToWordVector with default options on
this data. How many attributes are generated? Now change the value of the option
minTermFreq to 2. What attributes are
generated now?
Ex. 1: Para tener una idea de cómo funciona
esto, hacer un archivo ARFF de la etiqueta
mini “documentos” en la Table 1 y ejecutar StringToWordVector con las opciones
predeterminadas en estos datos. Cómo se
generan muchos atributos? Ahora cambia
el valor de la opción de minTermFreq 2.
Quéatributos se generan ahora?
Ex. 2: Build a J48 decision tree from the last version of the data you generated. Give the tree
in textual form.
Ex. 2: Construir un árbol de decisión J48 de la
última versión de los datos que generan. Dar
el árbol en forma textual.
Usually, the purpose of a classifier is to classify new
documents. Let’s classify the ones given in Table 2,
based on the decision tree generated from the documents in Table 1. To apply the same filter to both
training and test documents, we can use the FilteredClassifier, specifying the StringToWordVector filter and the base classifier that we want
to apply (i.e., J48).
Por lo general, el objetivo de un clasificador para
clasificar los documentos nuevos. Vamos a clasificar a las dadas en la Table 2, basado en el árbol de
decisión de los documentos generados en la Table 1.
Para aplicar el mismo filtro a los dos documentos de entrenamiento y prueba, podemos usar el
FilteredClassifier, especificando el filtro StringToWordVector y el clasificador base que queremos aplicar (es decir, J48).
Ex. 3: Create an ARFF file from Table 2, using question marks for the missing class labels. Configure the FilteredClassifier using default options for StringToWordVector and J48, and specify your new ARFF
file as the test set. Make sure that you select Output predictions under More options... in the Classify panel. Look at the
model and the predictions it generates, and
verify that they are consistent. What are the
predictions (in the order in which the documents are listed in Table 2)?
Ex. 3: Crear un archivo de ARFF de la Table 2,
con signos de interrogación para las etiquetas de clase perdido. Configurar el FilteredClassifier utilizando las opciones predeterminadas para StringToWordVector
y J48, y especificar el archivo ARFF nuevo
el equipo de prueba. Asegúrese de que selecciona Output predictions en More options... Classify en el panel. Mira el modelo y las predicciones que genera, y verificar
que sean compatibles. Cuáles son las predicciones (en el orden en que los documentos
son enumerados en la Table 2)?
2
3
Classifying actual short text documents
There is a standard collection of newswire
articles that is widely used for evaluating document classifiers.
ReutersCorn-train.arff
and
ReutersGrain-train.arff
are
sets
of training data derived from this collection;
ReutersCorn-test.arff
and
ReutersGrain-test.arff are corresponding
test sets. The actual documents in the corn and
grain data are the same; just the labels differ.
In the first dataset, articles that talk about
corn-related issues have a class value of 1 and the
others have 0; the aim is to build a classifier that
can be used to identify articles that talk about
corn. In the second, the analogous labeling is
performed with respect to grain-related issues,
and the aim is to identify these articles in the test
set.
No es una colección estándar de los artı́culos
agencia de noticias que es ampliamente utilizado para la evaluación de los clasificadores
de documentos.
ReutersCorn-train.arff
y
ReutersGrain-train.arff
son
conjuntos de datos de aprendizaje derivados de
esta colección;
ReutersCorn-test.arff y
ReutersGrain-test.arff son correspondientes
unidades de prueba. Los documentos reales en
los datos de maı́z y el grano son las mismas,
sólo las etiquetas son diferentes. En el primer
conjunto de datos, artı́culos que hablan de temas
relacionados con el maı́z tiene un valor de la clase
de 1 y el resto a 0, el objetivo es construir un
clasificador que se puede utilizar para identificar
los artı́culos que hablan de maı́z. En el segundo,
el etiquetado similar se realiza con respecto a
cuestiones relacionadas con granos, y el objetivo es
identificar estos artı́culos en el equipo de prueba.
Ex. 4: Build document classifiers for the two
training sets by applying the FilteredClassifier with StringToWordVector using (a)
J48 and (b) NaiveBayesMultinomial, in
each case evaluating them on the corresponding test set. What percentage of correct classifications is obtained in the four scenarios?
Based on your results, which classifier would
you choose?
Ex. 4: Construir clasificadores de documentos
para los dos conjuntos de formación mediante la aplicación de la FilteredClassifier
StringToWordVector con el uso (a) J48 y
(b) NaiveBayesMultinomial, en cada caso
a la evaluación en el sistema de la prueba
correspondiente. Qué porcentaje de clasificaciones correctas se obtiene en los cuatro
escenarios? Con base en sus resultados, que
clasificador elegirı́as?
The percentage of correct classifications is not the
only evaluation metric used for document classification. WEKA includes several other per-class
evaluation statistics that are often used to evaluate information retrieval systems like search engines. These are tabulated under Detailed Accuracy By Class in the Classifier output text
area. They are based on the number of true positives (TP), number of false positives (FP), number
of true negatives (TN), and number of false negatives (FN) in the test data. A true positive is
a test instance that is classified correctly as belonging to the target class concerned, while a false
positive is a (negative) instance that is incorrectly
assigned to the target class. FN and TN are defined analogously. The statistics output by WEKA
are computed as follows:
El porcentaje de clasificaciones correctas no es la
métrica de evaluación utilizado para la clasificación
de documentos. WEKA incluye varias otras estadı́sticas de evaluación por cada clase que se utilizan con frecuencia para evaluar los sistemas de
recuperación de información como los motores de
búsqueda. Estos son tabulados en Detailed Accuracy By Class en el área de texto Classifier
output. Se basan en el número de verdaderos positivos (VP), el número de falsos positivos (FP), el
número de verdaderos negativos (VN), y el número
de falsos negativos (FN) en los datos de prueba. A
positivos true es un ejemplo de prueba que está
clasificado correctamente como pertenecientes a la
clase de destino en cuestión, mientras que un falsos positivos es un ejemplo (negativo) que está mal
asignado a la clase de destino. FN y TN se define
de manera similar. La salida de las estadı́sticas por
WEKA se calculan de la siguiente manera:
• TP Rate: TP / (TP + FN)
• TP Precio: TP / (TP + FN)
3
• FP Rate: FP / (FP + TN)
• FP Precio: FP / (FP + TN)
• Precision: TP / (TP + FP)
• Precisión: TP / (TP + FP)
• Recall: TP / (TP + FN)
• Recuperación: TP / (TP + FN)
• F-Measure: the harmonic mean of precision
and recall
• F-Medida: la media armónica de precisión y
recuperación
(2/F = 1/precision + 1/recall).
(2/F = 1/precisión +1/recuperación).
Ex. 5: Based on the formulas, what are the best
possible values for each of the statistics in
this list? Describe in English when these values are attained.
Ex. 5: Con base en las fórmulas, Cuáles son los
mejores valores posibles para cada una de las
estadı́sticas en esta lista? Describa en Inglés
cuando estos valores se alcanzan.
The Classifier Output table also gives the ROC
area, which differs from the other statistics because it is based on ranking the examples in the
test data according to how likely they are to belong to the positive class. The likelihood is given
by the class probability that the classifier predicts.
(Most classifiers in WEKA can produce probabilities in addition to actual classifications.) The ROC
area (which is also known as AUC) is the probability that a randomly chosen positive instance in
the test data is ranked above a randomly chosen
negative instance, based on the ranking produced
by the classifier.
En la tabla Classifier Output también da la
ROC area, que difiere de las estadı́sticas de otros
porque se basa en el ranking de los ejemplos de
los datos de prueba de acuerdo a la probabilidad
que existe de pertenecer a la positivo clase. La
posibilidad está dada por la probabilidad de clase
que el clasificador predice. (La mayorı́a de los
clasificadores en WEKA pueden producir probabilidades, además de las clasificaciones actuales.)
La zona de la República de China (que también
se conoce como AUC) es la probabilidad de que
un ejemplo elegido al azar positivo en los datos
de prueba se clasifica por encima de un ejemplo
elegido al azar negativas, sobre la base de la clasificación producido por el clasificador.
The best outcome is that all positive examples are
ranked above all negative examples. In that case
the AUC is one. In the worst case it is zero. In
the case where the ranking is essentially random,
the AUC is 0.5. Hence we want an AUC that is at
least 0.5, otherwise our classifier has not learned
anything from the training data.
El mejor resultado es que todos los ejemplos positivos se sitúa por encima de todos los ejemplos
negativos. En ese caso las AUC es uno. En el peor
de los casos es cero. En el caso de que la clasificación es esencialmente al azar, las AUC es de
0,5. Por lo tanto queremos una AUC, que es al
menos 0,5, de lo contrario nuestro clasificador no
ha aprendido nada de los datos de entrenamiento.
Ex. 6: Which of the two classifiers used above
produces the best AUC for the two Reuters
datasets? Compare this to the outcome for
percent correct. What do the different outcomes mean?
Ex. 6: Cuál de los dos clasificadores utilizados
anterior produce los mejores AUC para los
dos conjuntos de datos de Reuters? Compare esto con los resultados de porcentaje de
respuestas correctas. Quésignifican los diferentes resultados?
4
Ex. 7: Interpret in your own words the difference
between the confusion matrices for the two
classifiers.
Ex. 7: Interpretar en sus propias palabras la
diferencia entre las matrices de confusión
para los dos clasificadores.
There is a close relationship between ROC Area
and the ratio TP Rate/FP Rate. Rather than
just obtaining a single pair of values for the true
and false positive rates, a whole range of value
pairs can be obtained by imposing different classification thresholds on the probabilities predicted
by the classifier.
Existe una relación estrecha entre ROC Area y la
relación de TP Rate/FP Rate. En lugar de simplemente obtener un solo par de valores para las
tasas de positivos verdaderos y falsos, toda una serie de pares de valores se puede obtener mediante la
imposición de diferentes umbrales de clasificación
de las probabilidades predichas por el clasificador.
By default, an instance is classified as “positive”
if the predicted probability for the positive class is
greater than 0.5; otherwise it is classified as negative. (This is because an instance is more likely
to be positive than negative if the predicted probability for the positive class is greater than 0.5.)
Suppose we change this threshold from 0.5 to some
other value between 0 and 1, and recompute the ratio TP Rate/FP Rate. Repeating this with different thresholds produces what is called an ROC
curve. You can show it in WEKA by right-clicking
on an entry in the result list and selecting Visualize threshold curve.
De forma predeterminada, una instancia se clasifica como “positivo” si la probabilidad predicha
para la clase positivo es superior a 0,5, de lo contrario se clasifica como negativa. (Esto se debe
a un caso es más probable que sea positivo que
negativo si la probabilidad predicha para la clase
positivo es superior a 0.5.) Supongamos que el
cambio de este umbral de 0,5 a algún otro valor
entre 0 y 1, y volver a calcular la proporción de
TP Rate/FP Rate. Repetir esto con diferentes
umbrales produce lo que se llama ROC curve.
Se puede mostrar en WEKA haciendo clic derecho sobre una entrada en la lista de resultados y
la selección de Visualize threshold curve.
When you do this, you get a plot with FP Rate on
the x axis and TP Rate on the y axis. Depending
on the classifier you use, this plot can be quite
smooth, or it can be fairly discrete. The interesting
thing is that if you connect the dots shown in the
plot by lines, and you compute the area under the
resulting curve, you get the ROC Area discussed
above! That is where the acronym AUC for the
ROC Area comes from: “Area Under the Curve.”
Al hacer esto, se obtiene una parcela con FP Rate
en el eje x y TP Rate en el y eje. En función del
clasificador que usa, esta parcela puede ser muy
suave, o puede ser bastante discretos. Lo interesante es que si se conecta los puntos de muestra en
el gráfico por las lı́neas, y calcular el área bajo la
curva resultante, se obtiene el ROC Area discutido arriba! Ahı́ es donde la AUC acrnimo de la
Área de la ROC viene de: “Área bajo la curva.”
Ex. 8: For the Reuters dataset that produced the
most extreme difference in Exercise 6 above,
look at the ROC curves for class 1. Make a
very rough estimate of the area under each
curve, and explain it in words.
Ex. 8: Para el conjunto de datos producidos a
Reuters que la diferencia más extrema en el
ejercicio 6 anterior, visita las curvas ROC
para la clase 1. Hacer una estimación muy
aproximada del área debajo de cada curva, y
explicarlo con palabras.
Ex. 9: What does the ideal ROC curve corresponding to perfect performance look like (a
rough sketch, or a description in words, is
sufficient)?
Ex. 9: Quéhace el ideal de la curva ROC correspondiente a buscar un rendimiento perfecto
como (un boceto o una descripción verbal, es
suficiente)?
5
Using the threshold curve GUI, you can also plot
other types of curves, e.g. a precision/recall curve,
with Recall on the x axis and Precision on the
y axis. This plots precision against recall for each
probability threshold evaluated.
Utilizando la curva de umbral de interfaz gráfica
de usuario, también puede trazar otros tipos de
curvas, por ejemplo, una precisión/recuperación
curva, con Recall en el eje x y Precision en el
y eje. Este gráfico de precisión contra el recuerdo
de cada umbral de probabilidad evaluada.
Ex. 10: Change the axes to obtain a precision/recall curve. What shape does the ideal
precision/recall curve corresponding to perfect performance have (again a rough sketch
or verbal description is sufficient)?
Ex. 10: Cambiar los ejes para obtener una precisión/recuperación curva. Quéforma tiene
la ideal precisión/recuperación curva que
corresponde a un rendimiento perfecto que
(de nuevo un croquis o descripción verbal es
suficiente)?
4
Exploring the StringToWordVector filter
By default, the StringToWordVector filter simply makes the attribute value in the transformed
dataset 1 or 0 for all raw single-word terms, depending on whether the word appears in the document or not. However, there are many options
that can be changed, e.g:
De forma predeterminada, el filtro de StringToWordVector, simplemente hace que el valor
del atributo en el conjunto de datos transformados 1 o 0 para todos los términos primas de una
sola palabra, dependiendo de si la palabra aparece
en el documento o no. Sin embargo, hay muchas
opciones que se pueden cambiar, por ejemplo:
• outputWordCounts causes actual word
counts to be output.
• outputWordCounts causas palabra real
cuenta de la salida.
• IDFTransform and TFTransform: when
both are set to true, term frequencies are
transformed into so-called T F × IDF values
that are popular for representing documents
in information retrieval applications.
• IDFTransform y TFTransform: cuando
ambos se ponen a true, las frecuencias plazo
se transforman en los llamados T F × F DI
valores que son populares para la representación de documentos en aplicaciones de
recuperación de información.
• stemmer allows you to choose from different
word stemming algorithms that attempt to
reduce words to their stems.
• stemmer le permite elegir entre diferentes
palabras derivadas algoritmos que tratan de
reducir las palabras a sus tallos.
• useStopList allows you determine whether
or not stop words are deleted. Stop words are
uninformative common words (e.g. a, the).
• useStopList le permite determinar si se detiene se suprimirán las palabras. Las palabras vacı́as son poco informativos palabras
comunes (por ejemplo, a, la).
• tokenizer allows you to choose a different tokenizer for generating terms, e.g. one
that produces word n-grams instead of single
words.
• tokenizer le permite elegir un analizador de
términos diferentes para generar, por ejemplo, que produce la palabra n-gramos en lugar de palabras sueltas.
6
There are several other useful options. For more
information, click on More in the GenericObjectEditor.
Hay varias opciones útiles. Para obtener más información, haga clic en More en la GenericObjectEditor.
Ex. 11: Experiment with the options that are
available. What options give you a good
AUC value for the two datasets above, using
NaiveBayesMultinomial as the classifier?
(Note: an exhaustive search is not required.)
Ex. 11: Experimento con las opciones que están
disponibles. Quéopciones le dan un buen
valor de AUC para los dos conjuntos de datos
anterior, con NaiveBayesMultinomial en
el clasificador? (Nota: una búsqueda exhaustiva no es necesario.)
Often, not all attributes (i.e., terms) are important
when classifying documents, because many words
may be irrelevant for determining the topic of an
article. We can use WEKA’s AttributeSelectedClassifier, using ranking with InfoGainAttributeEval and the Ranker search, to try and
eliminate attributes that are not so useful. As
before we need to use the FilteredClassifier to
transform the data before it is passed to the AttributeSelectedClassifier.
A menudo, no todos los atributos (es decir,
términos) son importantes para la clasificación
de documentos, ya que muchas palabras pueden
ser irrelevantes para determinar el tema de un
artı́culo. Podemos utilizar AttributeSelectedClassifier WEKA, utilizando ranking con InfoGainAttributeEval Ranker y la búsqueda, para
tratar de eliminar los atributos que no son tan
útiles. Al igual que antes tenemos que utilizar
el FilteredClassifier para transformar los datos
antes de que se pasa al AttributeSelectedClassifier.
Ex. 12: Experiment with this set-up, using default options for StringToWordVector
and NaiveBayesMultinomial as the classifier. Vary the number of most-informative
attributes that are selected from the infogain-based ranking by changing the value
of the numToSelect field in the Ranker.
Record the AUC values you obtain. What
number of attributes gives you the best AUC
for the two datasets above? What AUC
values are the best you manage to obtain?
(Again, an exhaustive search is not required.)
Ex. 12: Experimento con esta puesta en marcha,
utilizando las opciones predeterminadas para
StringToWordVector y NaiveBayesMultinomial en el clasificador. Variar el
número de los atributos más informativo
que se seleccionan de la clasificación de
información de ganancia basado en cambiar
el valor del campo en el numToSelect
Ranker. Registre los valores del AUC de
obtener. Quénúmero de atributos que ofrece
la mejor AUC para los dos conjuntos de
datos anteriores? Quévalores AUC son los
mejores que logran obtener? (De nuevo, una
búsqueda exhaustiva no es necesario.)
7
Practical Data Mining
Tutorial 6: Mining Association Rules
Eibe Frank and Ian H. Witten
May 5, 2011
c
2008-2012
University of Waikato
1
Introduction
Association rule mining is one of the most prominent data mining techniques. In this tutorial, we
will work with Apriori—the association rule mining algorithm that started it all. As you will see, it
is not straightforward to extract useful information
using association rule mining.
2
La minerı́a de reglas de asociación es una de las
técnicas de minerı́a de datos más destacados. En
este tutorial, vamos a trabajar con Apriori—la
regla de asociación algoritmo de minerı́a de datos
que lo empezó todo. Como se verá, no es fácil de
extraer información útil con la minerı́a de reglas
de asociación.
Association rule mining in WEKA
In WEKA’s Explorer, techniques for association
rule mining are accessed using the Associate
panel. Because this is a purely exploratory data
mining technique, there are no evaluation options,
and the structure of the panel is simple. The default method is Apriori, which we use in this tutorial. WEKA contains a couple of other techniques
for learning associations from data, but they are
probably more interesting to researchers than practitioners.
En Explorer WEKA, técnicas para la extracción
de reglas de asociación se accede mediante el panel
de Associate. Debido a que esta es una técnica de
minerı́a de datos puramente exploratoria, no hay
opciones de evaluación, y la estructura del panel
es simple. El método predeterminado es Apriori,
que utilizamos en este tutorial. WEKA contiene
un par de otras técnicas para el aprendizaje de las
asociaciones de los datos, pero son probablemente
más interesante para los investigadores de los profesionales.
To get a feel for how to apply Apriori, we start
by mining rules from the weather.nominal.arff
data that we used in Tutorial 1. Note that this algorithm expects data that is purely nominal: numeric attributes must be discretized first. After
loading the data in the Preprocess panel, hit
the Start button in the Associate panel to run
Apriori with default options. It outputs ten rules,
ranked according to the confidence measure given
in parentheses after each one. The number following a rule’s antecedent shows how many instances
satisfy the antecedent; the number following the
conclusion shows how many instances satisfy the
entire rule (this is the rule’s “support”). Because
both numbers are equal for all ten rules, the confidence of every rule is exactly one.
Para tener una idea de cómo aplicar Apriori,
empezamos por las normas de la minerı́a de la
weather.nominal.arff datos que se utilizó en el
Tutorial 1. Tenga en cuenta que este algoritmo espera de datos que es puramente nominal: los atributos numéricos deben ser discretos en primer lugar.
Después de cargar los datos en el panel de Preprocess, pulsa el botón Start en el panel de Associate para ejecutar Apriori con las opciones predeterminadas. Hace salir diez reglas, ordenadas de
acuerdo a la medida de confianza entre paréntesis
después de cada uno. El número siguiente antecedente de una regla se muestra cómo muchos
casos cumplen el antecedente, el número después
de la conclusión muestra cuántas instancias satisfacer toda la regla (esta es la regla de “apoyo”).
Debido a que ambos números son iguales para todas las diez reglas, la confianza de cada regla es
exactamente uno.
1
In practice, it is tedious to find minimum support and confidence values that give satisfactory
results. Consequently WEKA’s Apriori runs the
basic algorithm several times. It uses same userspecified minimum confidence value throughout,
given by the minMetric parameter. The support level is expressed as a proportion of the total
number of instances (14 in the case of the weather
data), as a ratio between 0 and 1. The minimum
support level starts at a certain value (upperBoundMinSupport, which should invariably be
left at 1.0 to include the entire set of instances).
In each iteration the support is decreased by a
fixed amount (delta, default 0.05, 5% of the instances) until either a certain number of rules has
been generated (numRules, default 10 rules) or
the support reaches a certain “minimum minimum” level (lowerBoundMinSupport, default
0.1—typically rules are uninteresting if they apply
to only 10% of the dataset or less). These four
values can all be specified by the user.
En la práctica, es tedioso para encontrar un apoyo
mı́nimo y los valores de la confianza que dan resultados satisfactorios. En consecuencia WEKA’s
Apriori corre el algoritmo básico en varias ocasiones. Utiliza el mismo valor mı́nimo especificado
por el usuario a través de la confianza, dado por
el parámetro minMetric. El nivel de soporte se
expresa como un porcentaje del número total de
casos (14 en el caso de los datos meteorológicos),
como una relación entre 0 y 1. El nivel mı́nimo
de apoyo se inicia en un determinado valor (upperBoundMinSupport, que invariablemente se
debe dejar en 1.0 para incluir todo el conjunto
de casos). En cada iteración el apoyo se reduce
en una cantidad fija (delta, por defecto 0.05, 5%
de los casos) hasta que un cierto número de reglas se ha generado (numRules, por defecto 10
normas) o el apoyo llega a un cierto “mı́nimo
mı́nimo “nivel (lowerBoundMinSupport, por
defecto 0.1—normalmente reglas son poco interesantes si se aplican a sólo el 10% del conjunto de
datos o menos). Estos cuatro valores pueden ser
especificados por el usuario.
This sounds pretty complicated, so let us examine
what happens on the weather data. From the output in the Associator output text area, we see
that the algorithm managed to generate ten rules.
This is based on a minimum confidence level of 0.9,
which is the default, and is also shown in the output. The Number of cycles performed, which
is shown as 17, tells us that Apriori was actually
run 17 times to generate these rules, with 17 different values for the minimum support. The final
value, which corresponds to the output that was
generated, is 0.15 (corresponding to 0.15 ∗ 14 ≈ 2
instances).
Esto suena bastante complicado, ası́ que vamos
a examinar lo que sucede en los datos meteorológicos. Desde la salida en el área de texto
Associator output, vemos que el algoritmo de
gestión para generar diez reglas. Esto se basa en
un nivel de confianza mı́nimo de 0.9, que es el predeterminado, y también se muestra en la salida.
El Number of cycles performed, que se muestra
como 17, nos dice que Apriori era en realidad ejecuta 17 veces para generar estas normas, con 17
valores diferentes de la ayuda mı́nima. El coste
final, que corresponde a la salida que se ha generado, es de 0,15 (que corresponde a 0.15 ∗ 14 ≈ 2
instances).
By looking at the options in the GenericObjectEditor, we can see that the initial value for
the minimum support (upperBoundMinSupport) is 1 by default, and that delta is 0.05. Now,
1 − 17 × 0.05 = 0.15, so this explains why a minimum support value of 0.15 is reached after 17 iterations. Note that upperBoundMinSupport is
decreased by delta before the basic Apriori algorithm is run for the first time.
Al mirar las opciones de la GenericObjectEditor, podemos ver que el valor inicial de la ayuda
mı́nima (upperBoundMinSupport) es 1 por defecto, y que delta es de 0,05. Ahora, 1−17×0.05 =
0, 15, ası́ que esto explica por qué un valor mı́nimo
de apoyo de 0,15 que se llegó después de 17 iteraciones. Tenga en cuenta que upperBoundMinSupport delta es disminuido por antes de la base
Apriori algoritmo se ejecuta por primera vez.
2
Minimum confidence
0.9
0.9
0.9
0.8
0.8
0.8
0.7
0.7
0.7
Minimum support
0.3
0.2
0.1
0.3
0.2
0.1
0.3
0.2
0.1
Number of rules
Table 1: Total number of rules for different values of minimum confidence and support
The Associator output text area also shows the
number of frequent item sets that were found,
based on the last value of the minimum support
that was tried (i.e. 0.15 in this example). We
can see that, given a minimum support of two instances, there are 12 item sets of size one, 47 item
sets of size two, 39 item sets of size three, and 6
item sets of size four. By setting outputItemSets
to true before running the algorithm, all those different item sets and the number of instances that
support them are shown. Try this.
El área de texto Associator output también
muestra el número de conjuntos de ı́tems frecuentes que se encontraron, con base en el último
valor de la ayuda mı́nima que fue juzgado (es decir, 0.15 en este ejemplo). Podemos ver que, dado
un apoyo mı́nimo de dos casos, hay 12 conjuntos de punto del tamaño de una, 47 conjuntos de
punto del tamaño de dos, 39 conjuntos de punto
del tamaño de tres, y seis conjuntos de punto del
tamaño de cuatro. Al establecer outputItemSets
a true antes de ejecutar el algoritmo, todos los
conjuntos de ı́tems diferentes y el número de casos
que los apoyan se muestran. Pruebe esto.
Ex. 1: Based on the output, what is the support
of the item set
Ex. 1: Sobre la base de la salida, lo que es el soporte del tema conjunto
outlook=rainy
perspectivas=lluvias
humidity=normal
humedad=normal
windy=FALSE
ventoso=FALSO
play=yes?
jugar=sı̀?
Ex. 2: Suppose we want to generate all rules with
a certain confidence and minimum support.
This can be done by choosing appropriate
values for minMetric, lowerBoundMinSupport, and numRules. What is the total number of possible rules for the weather
data for each combination of values in Table 1?
Ex. 2: Supongamos que desea generar todas
las reglas con cierta confianza y el apoyo
mı́nimo. Esto se puede hacer eligiendo valores adecuados para minMetric, lowerBoundMinSupport, y numRules. Cuál
es el número total de posibles reglas para los
datos del tiempo para cada combinación de
valores de la Table 1?
3
Apriori has some further parameters. If significanceLevel is set to a value between zero and
one, the association rules are filtered based on a
χ2 test with the chosen significance level. However, applying a significance test in this context
is problematic because of the so-called “multiple
comparison problem”: if we perform a test hundreds of times for hundreds of association rules, it
is likely that a significant effect will be found just
by chance (i.e., an association seems to be statistically significant when really it is not). Also, the
χ2 test is inaccurate for small sample sizes (in this
context, small support values).
Apriori tiene algunos parámetros más. Si significanceLevel se establece en un valor entre cero
y uno, las reglas de asociación se filtran sobre la
base de un χ2 la prueba con el nivel de significación
elegido. Sin embargo, la aplicación de una prueba
de significación en este contexto es problemático
debido a los llamados “problemas de comparación
múltiple”: si realizamos una prueba cientos de veces por cientos de reglas de asociación, es probable
que un efecto significativo se encuentran sólo por
casualidad (es decir, una asociación parece ser estadı́sticamente significativa, cuando en realidad no
lo es). Además, el χ2 la prueba es inexacto para
pequeños tamaños de muestra (en este contexto,
los valores de apoyar a los pequeños).
There are alternative measures for ranking rules.
As well as Confidence, Apriori supports Lift,
Leverage, and Conviction. These can be selected using metricType. More information is
available by clicking More in the GenericObjectEditor.
Hay medidas alternativas para las reglas de clasificación. Además de Confidence, Apriori Lift
apoya, Leverage y Conviction. Estos pueden ser
seleccionados con metricType. Más información
está disponible haciendo clic More en el GenericObjectEditor.
Ex. 3: Run Apriori on the weather data with
each of the four rule ranking metrics, and
default settings otherwise. What is the topranked rule that is output for each metric?
Ex. 3: Ejecutar Apriori en la información del
tiempo con cada uno de los cuatro indicadores regla de clasificación, y la configuración por defecto de otra manera. Cuál es
la primera regla de clasificación que se emite
para cada métrica?
3
Mining a real-world dataset
Now consider a real-world dataset, vote.arff,
which gives the votes of 435 U.S. congressmen on
16 key issues gathered in the mid-80s, and also includes their party affiliation as a binary attribute.
This is a purely nominal dataset with some missing values (actually, abstentions). It is normally
treated as a classification problem, the task being
to predict party affiliation based on voting patterns. However, we can also apply association rule
mining to this data and seek interesting associations. More information on the data appears in
the comments in the ARFF file.
Consideremos ahora un conjunto de datos del
mundo real, vote.arff, lo que da los votos de 435
congresistas EE.UU. el 16 de cuestiones clave se
reunieron a mediados de los años 80, y también incluye su afiliación a un partido como un atributo
binario. Se trata de un conjunto de datos puramente nominal con algunos valores que faltan (de
hecho, abstenciones). Normalmente se trata como
un problema de clasificación, la tarea que para predecir afiliación a un partido basado en los patrones
de voto. Sin embargo, también podemos aplicar
la minerı́a de reglas de asociación a estos datos y
buscar asociaciones interesantes. Más información
sobre los datos aparecen en los comentarios en el
archivo ARFF.
Ex. 4: Run Apriori on this data with default settings. Comment on the rules that are generated. Several of them are quite similar. How
are their support and confidence values related?
Ex. 4: Ejecutar Apriori en estos datos con la
configuración predeterminada. Opina sobre
las reglas que se generan. Varios de ellos
son bastante similares. Cómo son su apoyo
y confianza de los valores asociados?
4
Ex. 5: It is interesting to see that none of
the rules in the default output involve
Class=republican. Why do you think that
is?
4
Ex. 5: Es interesante ver que ninguna de las reglas en la salida predeterminada implican
Clase=republicana. Por qué crees que es?
Market basket analysis
A popular application of association rule mining is
market basket analysis—analyzing customer purchasing habits by seeking associations in the items
they buy when visiting a store. To do market basket analysis in WEKA, each transaction is coded
as an instance whose attributes represent the items
in the store. Each attribute has only one value: if a
particular transaction does not contain it (i.e., the
customer did not buy that particular item), this is
coded as a missing value.
Una aplicación popular de la minerı́a de reglas
de asociación es el análisis de la cesta—analizar
los hábitos de compra de los clientes mediante
la búsqueda de asociaciones en los productos que
compran al visitar una tienda. Para hacer análisis
de la cesta de WEKA, cada transacción se codifica como una instancia cuyos atributos representan los artı́culos de la tienda. Cada atributo tiene
un único valor: si una transacción en particular
no lo contiene (es decir, el cliente no comprar ese
artı́culo en particular), esto se codifica como un
valor que falta.
Your job is to mine supermarket checkout data for
associations. The data in supermarket.arff was
collected from an actual New Zealand supermarket. Take a look at this file using a text editor
to verify that you understand the structure. The
main point of this exercise is to show you how difficult it is to find any interesting patterns in this
type of data!
Su trabajo consiste en extraer datos supermercado para las asociaciones.
Los datos de
supermarket.arff se obtuvo de un verdadero supermercado de Nueva Zelanda. Echa un vistazo
a este archivo utilizando un editor de texto para
comprobar que entender la estructura. El punto
principal de este ejercicio es mostrar lo difı́cil que
es encontrar cualquier patrones interesantes en este
tipo de datos!
Ex. 6: Experiment with Apriori and investigate
the effect of the various parameters discussed
above. Write a brief report on your investigation and the main findings.
Ex. 6: Experimente con Apriori e investigar el
efecto de la diversos parmetros discutidos anteriormente. Escriba un breve informe en su
investigacin y las conclusiones principales.
5