You are on page 1of 59

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 in-
terface for accessing WEKAs 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 graca de usuario
principal para acceder a las instalaciones de
WEKA, llamado Explorer WEKA. Vamos a tra-
bajar 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 u INICIO de Win-
dows (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 boton
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; Knowledge-
Flow is a component-based interface that has a
similar functionality as the Explorer; and Sim-
ple CLI opens a command-line interface that em-
ulates a terminal and lets you interact with WEKA
in this fashion.
Solo en caso de que usted se esta 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 funcionali-
dad similar a la de Explorer; y Simple CLI se
abre un comando-lnea 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 win-
dow. The Preprocess panel is the one that is
open when the Explorer is rst started. This
tutorial will introduce you to two others as well:
Classify and Visualize. (The remaining three
panels are explained in later tutorials.) Heres 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 Prepro-
cess es la que esta abierta cuando la Explorer por
primera vez. Este tutorial le introducira a otros
dos, as: Classify y Visualize. (Los otros tres
paneles se explican en tutoriales mas tarde.) He
aqu una breve descripcion de las funciones que es-
tos 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 modied, either by editing
it manually or by applying a lter, and the
modied version can be saved. As an alter-
native to loading a pre-existing dataset, an
articial one can be created by using a gen-
erator. 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 infor-
macion sobre
`
Al. El conjunto de datos puede
ser modicado, ya sea mediante la edicion
de forma manual o mediante la aplicacion de
un ltro, y la version modicada se puede
guardar. Como alternativa a la carga de un
conjunto de datos pre-existentes, una arti-
cial se pueden crear mediante el uso de un
generador. Tambien es posible cargar datos
desde una URL o desde una base de datos.
1
Classify is where you invoke the classication
methods in WEKA. Several options for the
classication process can be set, and the re-
sult of the classication can be viewed. The
training dataset used for classication is the
one loaded (or generated) in the Preprocess
panel.
Classify es donde se invoca a los metodos de clasi-
cacion en WEKA. Varias opciones para el
proceso de clasicacion se puede establecer,
y el resultado de la clasicacion se puede ver.
El conjunto de datos de entrenamiento uti-
lizados para la clasicacion es la carga (o gen-
erada) en el panel de Preprocess.
Visualize is where you can visualize the dataset
loaded in the Preprocess panel as two-
dimensional 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 dispersion de dos dimen-
siones. 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.
Preprocess es el panel que se abre cuando el Ex-
plorer WEKA se ha iniciado.
3.1 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 le... button in the top
left corner of the panel. Look around for the
folder containing datasets, and locate a le named
weather.nominal.arff (this le is in the data
folder that is supplied when WEKA is installed).
This contains the nominal version of the standard
weather dataset. Open this le. Now your
screen will look like Figure 1.
Antes de cambiar a cualquier otro panel, el Ex-
plorer debe tener un conjunto de datos para tra-
bajar. Para cargar una, haga clic en el boton de
Open le... en la esquina superior izquierda del
panel. Mire a su alrededor para la carpeta que con-
tiene los conjuntos de datos y busque un archivo
llamado weather.nominal.arff (este archivo esta
en el carpeta de data que se suministra cuando
WEKA se instala). Este contiene la version nomi-
nal de la norma tiempo conjunto de datos. Abrir
archivo. Ahora la pantalla se vera como la Fig-
ure 1.
The weather data is a small dataset with only 14
examples for learning. Because each row is an in-
dependent example, the rows/examples are called
instances. The instances of the weather dataset
have 5 attributes, with names outlook, temper-
ature, 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 no con solo 14 ejemplos para el aprendizaje.
Debido a que cada la es un ejemplo independi-
ente, las las/ejemplos son llamados casos. Los
casos del conjunto de datos meteorologicos tienen
5 atributos, con perspectivas nombres , la tem-
peratura, humedad, jugar con mucho viento
y. Si hace clic en el nombre de un atributo en
el sub-panel de la izquierda, la informacion 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 informacion se muestra
tambien en la forma de un histograma.
2
Figure 1: The Explorers Preprocess panel.
All attributes in this dataset are nominal, i.e.
they have a predened nite set of values. Each
instance describes a weather forecast for a particu-
lar 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 attributeit classies 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.
Todos los atributos de este conjunto de datos son
nominales, es decir, tienen un conjunto nito de
valores predenidos. Cada instancia se describe
un pronostico del tiempo para un da en particular
y si a jugar un cierto juego en ese da. No esta
muy claro lo que el juego es, pero supongamos que
es el golf. Jugar el ultimo atributo es el atrib-
uto classque clasica la instancia. Su valor
puede ser si o no. S signica que las condi-
ciones climaticas estan bien para jugar al golf, y
no signica que no estan bien.
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 tuto-
rial 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 tu-
torial se dan al nal.
Ex. 1: What are the values that the attribute
temperature can have?
Ex. 1: Cuales son los valores que la temperatura
el atributo puede tener?
3
Ex. 2: Load a new dataset. Press the Open le
button and select the le iris.arff. How
many instances does this dataset have? How
many attributes? What is the range of pos-
sible values of the attribute petallength ?
Ex. 2: Carga un nuevo conjunto de datos. Pulse
el boton Abrir el archivo y seleccione el
archivo iris.arff. Cuantos casos se han
esta base de datos? Como muchos atribu-
tos? Cual es el rango de valores posibles de
petallength el atributo?
3.3 The dataset editor
It is possible to view and edit an entire dataset
from within WEKA. To experiment with this, load
the le 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).
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 boton de Edit... de la la de
botones en la parte superior del panel de Pre-
process. Esto abre una nueva ventana llamada
Viewer, que enumera todas las instancias de los
datos meteorologicos (vease la Figure 2).
3.3.1 Exercises
Ex. 3: What is the function of the rst column in
the Viewer?
Ex. 3: Cual es la funcion 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 meteo-
rologicos, cual es el valor de la clase de
n umero de instancia 8?
Ex. 5: Load the iris data and open it in the edi-
tor. How many numeric and how many nom-
inal attributes does this dataset have?
Ex. 5: Carga los datos de iris y abrirlo en el ed-
itor. Como los atributos nominales muchas
numerico y el n umero de este conjunto de
datos se tienen?
3.4 Applying a lter
In WEKA, lters are methods that can be used
to modify datasets in a systematic fashionthat
is, they are data preprocessing tools. WEKA
has several lters for dierent tasks. Reload the
weather.nominal dataset, and lets remove an at-
tribute from it. The appropriate lter is called
Remove; its full name is:
En WEKA, ltros son metodos que se pueden
utilizar para modicar bases de datos de manera
sistematicaes decir, son datos del proceso pre-
vio herramientas. WEKA tiene varios ltros para
diferentes tareas. Actualizar el weather.nominal
conjunto de datos, y vamos a eliminar un atributo
de ella. El ltro 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 dont 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 primar-
ily on instances/rows (the instance category).
Examine cuidadosamente este nombre. Los ltros
estan organizados en una estructura jerarquica,
cuya raz es weka. Los que estan en la categora de
unsupervised no requieren un atributo de clase
que se establece, los de la categora supervised
hacer. Los ltros se dividen en los que operan prin-
cipalmente en los atributos/columnas (la categora
attribute) y los que operan principalmente en ca-
sos/las (la categora instance).
If you click the Choose button in the Preprocess
panel, a hierarchical editor opens in which you se-
lect a lter by following the path corresponding to
its full name. Use the path given in the full name
above to select the Remove lter. Once it is se-
lected, the text Remove will appear in the eld
next to the Choose button.
Si hace clic en el boton Choose en el panel de
Preprocess, se abre un editor jerarquico en el que
se selecciona un ltro, siguiendo la ruta de acceso
correspondiente a su nombre completo. Utilice la
ruta dada en por encima del nombre completo para
seleccionar el ltro de Remove. Una vez que se se-
lecciona, el texto Eliminar aparecera en el campo
situado junto al boton de Choose.
5
Click on the eld 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 explana-
tion of the Remove lterclick More to get a
fuller description. Underneath there are two elds
in which the options of the lter can be set. The
rst option is a list of attribute numbers. The sec-
ond optionInvertSelectionis a switch. If it
is false, the specied 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 GenericObjectE-
ditor, que se utiliza en todo WEKA para estable-
cer valores de los parametros de todas las her-
ramientas. Contiene una breve explicacion del l-
tro de Removehaga clic More para obtener una
descripcion mas completa. Debajo hay dos campos
en los que las opciones del ltro se puede estable-
cer. La primera opcion es una lista de n umeros de
atributo. La segunda opcionInvertSelection
es un interruptor. Si se trata de falsos, los atribu-
tos especicados se quitan, si es verdadero, estos
atributos no se quitan.
Enter 3 into the attributeIndices eld and
click the OK button. The window with the l-
ter options closes. Now click the Apply button
on the right, which runs the data through the l-
ter. The lter 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
aect the dataset in the le; it only applies to the
data held in memory. The changed dataset can be
saved to a new ARFF le by pressing the Save...
button and entering a le name. The action of the
lter 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 boton de OK. La ventana con las op-
ciones de ltro se cierra. Ahora haga clic en el
boton de Apply a la derecha, es decir, los datos a
traves del ltro. El ltro 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, solo se
aplica a los datos recogidos en la memoria. El con-
junto de datos modicado se puede guardar en un
archivo ARFF nuevo pulsando el boton de Save...
y entrar en un nombre de archivo. La accion del l-
tro se puede deshacer pulsando el boton de Undo.
Una vez mas, esto se aplica a la version de los datos
contenidos en la memoria.
What we have described illustrates how lters in
WEKA are applied to data. However, in the par-
ticular case of Remove, there is a simpler way of
achieving the same eect. Instead of invoking the
Remove lter, attributes can be selected using the
small boxes in the Attributes sub-panel and re-
moved using the Remove button that appears at
the bottom, below the list of attributes.
Lo que hemos descrito se muestra como los ltros
en WEKA se aplican a los datos. Sin embargo,
en el caso particular de Remove, hay una man-
era mas sencilla de lograr el mismo efecto. En lu-
gar de invocar el Remove ltro, los atributos se
pueden seleccionar con los cuadros peque nos en la
Attributes sub-panel y eliminar con el boton 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
dataset is loaded. Use the lter
weka.unsupervised.instance.RemoveWithValues
to remove all instances in which the humid-
ity attribute has the value high. To do
this, rst make the eld next to the Choose
button show the text RemoveWithValues.
Then click on it to get the GenericOb-
jectEditor window and gure out how to
change the lter settings appropriately.
Ex. 6: Aseg urese de que el weather.nominal
conjunto de datos se carga. Utilice el ltro
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 boton de Choose mostrara el
texto RemoveWithValues, a continuacion,
haga clic en ella para mostrar la ventana
de GenericObjectEditor y encontrar la
manera de cambiar la conguracion del ltro
adecuadamente.
6
Ex. 7: Undo the change to the dataset that you
just performed, and verify that the data is
back in its original state.
Ex. 7: Deshacer el cambio en el conjunto de datos
que acaba de realizar, y vericar que los
datos vuelve a su estado original.
4 The Visualize panel
We now take a look at WEKAs 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 visualizacion de datos. Estos funcio-
nan mejor con datos numericos, por lo que utilizar
los datos del iris.
First, load iris.arff. This data contains ower
measurements. Each instance is classied as one
of three types: iris-setosa, iris-versicolor and iris-
virginica. The dataset has 50 examples of each
type: 150 instances in all.
En primer lugar, la carga iris.arff. Estos datos
contienen mediciones de ores. Cada caso se clasi-
ca como uno de tres tipos: setosa iris, iris versi-
color 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 visual-
ization panel. It shows a grid containing 25 two-
dimensional scatter plots, with every possible com-
bination of the ve attributes of the iris data on
the x and y axes. Clicking the rst plot in the sec-
ond 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
instances class. The x axis shows the sepallength
attribute, and the y axis shows petalwidth.
Haga clic en la cha Visualize para que aparezca
el panel de visualizacion. Muestra una cuadrcula
que contiene 25 gracos de dispersion de dos di-
mensiones, 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 la se abre una ventana que muestra una
trama ampliada con los ejes seleccionados. Las in-
stancias se muestran como peque nas cruces cuyo
color depende de la clase de cruz de la instancia.
El eje x muestra el atributo sepallength, y petal-
width muestra el y eje.
Clicking on one of the crosses opens up an In-
stance Info window, which lists the values of all
attributes for the selected instance. Close the In-
stance Info window again.
Al hacer clic en una de las cruces se abre una ven-
tana 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 elds 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 petal-
length. The eld showing Colour: class (Num)
can be used to change the colour coding.
Los campos de seleccion en la parte superior de
la ventana que contiene el diagrama de dispersion
se puede utilizar para cambiar los atributos uti-
lizados 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 uti-
lizar para cambiar el codigo de colores.
Each of the colorful little bar-like plots to the right
of the scatter plot window represents a single at-
tribute. 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 graco de
dispersion representa un unico atributo. Haciendo
clic en un bar que utiliza atributos para los x eje
del diagrama de dispersion. 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 in-
stance 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 posicion, y
puede revelar las situaciones en que casos se en-
cuentran en la parte superior de uno al otro. Ex-
perimente 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 rect-
angle are deleted. You could use Save to save the
modied dataset to a le, while Reset restores the
original dataset.
El boton 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 demas. Pruebe la opcion Rectangle:
seleccionar un area por la izquierda haciendo clic
y arrastrando el raton. El Reset boton ahora se
transforma en un boton de Submit. Haga clic en
el, y todos los casos fuera del rectangulo se elim-
inan. Usted podra utilizar Save para guardar el
conjunto de datos modicados en un archivo, mien-
tras que Reset restaura el conjunto de datos orig-
inal.
5 The Classify panel
Now you know how to load a dataset from a le
and visualize it as two-dimensional plots. In this
section we apply a classication algorithmcalled
a classier in WEKAto the data. The clas-
sier builds (learns) a classication model from
the data.
Ahora usted sabe como cargar un conjunto de
datos de un archivo y visualizarlo como parce-
las de dos dimensiones. En esta seccion se aplica
un algoritmo de clasicaciondenominado clasi-
cador en WEKAa los datos. El clasicador se
basa (aprende) un modelo de clasicacion 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 classiers, even if they are
used to predict a numeric targetwhereas other
people often describe such situations as numeric
prediction or regression. The reason is that,
in the context of machine learning, numeric pre-
diction has historically been called classication
with continuous classes.
En WEKA, todos los esquemas para predecir el
valor de un atributo unico, basado en los valores
de algunos atributos de otros se llaman clasi-
cadores, incluso si se utilizan para predecir
un objetivo numericomientras que otras per-
sonas a menudo describen situaciones tales como
numerica prediccion o regresion. La razon es
que, en el contexto de aprendizaje de maquina,
la prediccion numerica historicamente ha sido lla-
mada la clasicacion con clases continuas.
Before getting started, load the weather
data again. Go to the Preprocess panel,
click the Open le button, and select
weather.nominal.arff from the data direc-
tory. Then switch to the classication panel
by clicking the Classify tab at the top of the
window. The result is shown in Figure 3.
Antes de empezar, carga la informacion del
tiempo nuevo. Ir al panel de Preprocess,
haga clic en el boton de Open le, y selec-
cione weather.nominal.arff desde el directorio
de datos. Luego cambiar a la mesa de clasicacion,
haga clic en la cha Classify en la parte supe-
rior de la ventana. El resultado se muestra en la
Figura 3.
8
Figure 3: The Classify panel.
5.1 Using the C4.5 classier
A popular machine learning method for data min-
ing is called the C4.5 algorithm, and builds de-
cision trees. In WEKA, it is implemented in a
classier called J48. Choose the J48 classier
by clicking the Choose button near the top of the
Classier tab. A dialogue window appears show-
ing various types of classier. Click the trees entry
to reveal its subentries, and click J48 to choose the
J48 classier. Note that classiers, like lters, are
organized in a hierarchy: J48 has the full name
weka.classifiers.trees.J48.
Una maquina popular metodo de aprendizaje para
la minera de datos se denomina el algoritmo C4.5,
y construye arboles de decision. En WEKA, se
implementa en un clasicador llamado J48. Se-
leccione el clasicador J48 haciendo clic en el boton
de Choose en la parte superior de la cha Clas-
sier. Una ventana de dialogo aparece mostrando
los diferentes tipos de clasicadores. Haga clic en
la entrada trees a revelar sus subentradas, y haga
clic en J48 elegir el clasicador J48. Tenga en
cuenta que los clasicadores, como los ltros, estan
organizados en una jerarqua: J48 tiene el nombre
completo weka.classifiers.trees.J48.
The classier 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 classier. We can ignore these, be-
cause they rarely require changing to obtain good
performance from C4.5.
El clasicador se muestra en el cuadro de texto
junto al boton Choose: J48 C 0.25 M 2 se
sustituira por el texto. El texto despues de J48
da la conguracion de los parametros por defecto
para este clasicador. 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 classication
model. Ideally, models should be able to predict
the class values of new, previously unseen instances
with high accuracy. In classication tasks, accu-
racy is often measured as the percentage of cor-
rectly classied instances. Once a model has been
learned, we should test it to see how accurate it is
when classifying instances.
Los arboles de decision son un tipo especial de
modelo de clasicacion. Idealmente, los modelos
deben ser capaces de predecir los valores de la clase
de nuevo, no visto previamente casos con gran pre-
cision. En las tareas de clasicacion, la precision
se mide como el porcentaje de casos clasicados
correctamente. Una vez que un modelo que se ha
aprendido, hay que probarlo para ver como es ex-
acto es la hora de clasicar los casos.
One option in WEKA is to evaluate performance
on the training setthe data that was used to
build the classier. 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 learn-
ing, but this tells us nothing about performance
on new data that might be encountered when the
model is applied in practice. Nevertheless, for il-
lustrative purposes it is instructive to consider per-
formance on the training data.
Una opcion en WEKA es evaluar el rendimiento
en el conjunto de entrenamientolos datos que
se utilizo para construir el clasicador. Esto no
es generalmente una buena idea porque conduce a
las estimaciones de rendimiento irrealmente opti-
mista. Usted puede obtener el 100% de precision
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
practica. No obstante, a ttulo ilustrativo es in-
structivo considerar el rendimiento de los datos de
entrenamiento.
In WEKA, the data that is loaded using the Pre-
process panel is the training data. To eval-
uate on the training set, choose Use training
set from the Test options panel in the Clas-
sify panel. Once the test strategy has been set,
the classier is built and evaluated by pressing the
Start button. This processes the training set us-
ing the currently selected learning algorithm, C4.5
in this case. Then it classies all the instances in
the training databecause this is the evaluation
option that has been chosenand outputs perfor-
mance statistics. These are shown in Figure 4.
En WEKA, los datos que se carga mediante
el panel de Preprocess es el datos de entre-
namiento. Para evaluar el conjunto de entre-
namiento, 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
clasicador se construye y se evaluo con el boton
Start. Este proceso conjunto de entrenamiento
utilizando el algoritmo seleccionado aprendizaje,
C4.5 en este caso. Luego se clasica a todas las
instancias en los datos de entrenamientoporque
esta es la opcion de evaluacion que se ha elegido
y estadsticas de resultados de desempe no. Estos
se muestran en la Figure 4.
5.2 Interpreting the output
The outcome of training and testing appears in
the Classier 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 formacion y la prueba aparece
en el cuadro de Classier output a la derecha.
Puede desplazarse por el texto para examinarla.
En primer lugar, busque en la parte que describe
el arbol de decision 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 classier.
Number of Leaves : 5
Size of the tree : 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 classier 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 win-
dow 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 en-
abling you to auto-scale the view, or force the tree
to t into view. You can pan around by dragging
the mouse.
Esto representa el arbol de decision que fue con-
struido, incluyendo el n umero de casos que corre-
sponden a cada hoja. La representacion textual es
torpe de interpretar, pero WEKA puede generar
una representacion graca equivalente. Puede
haber notado que cada vez que el boton se pulsa
Start y un clasicador de nueva construccion y se
evaluo, una nueva entrada aparece en el panel de
Result List en la esquina inferior izquierda de la
Figure 4. Para ver el arbol, haga clic en la entrada
trees.J48 que acaba de ser a nadido a la lista de re-
sultados, y elija Visualize tree. Aparece una ven-
tana que muestra el arbol de decision en la forma
ilustrada en la Figure 5. Haga clic en un punto en
blanco en esta ventana para que aparezca un nuevo
men u que le permite auto-escala de la vista, o la
fuerza del arbol para ajustarse a la vista. Puede
desplazarse por arrastrando el raton.
11
Figure 5: The decision tree that has been built.
This tree is used to classify test instances. The
rst condition is the one in the so-called root
node at the top. In this case, the outlook at-
tribute 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 rectan-
gular 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 arbol se utiliza para clasicar los casos de
prueba. La primera condicion es la de la llamada
raz del nodo en la parte superior. En este caso,
el atributo perspectivas se prueba en el nodo raz
y, dependiendo del resultado, la prueba contin ua
por una de las tres ramas. Si el valor es cubierto,
naliza 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
raz, si el atributo perspectivas tiene un valor
sol, el atributo humedad se prueba, y si per-
spectivas tiene un valor de lluvias, el atributo
viento se prueba. No hay caminos a traves de
este arbol en particular tiene mas de dos pruebas.
Now let us consider the remainder of the infor-
mation in the Classier output area. The next
two parts of the output report on the quality of the
classication model based on the testing option we
have chosen.
Consideremos ahora el resto de la informacion en
el area de Classier output. Las dos siguientes
partes del informe de salida en la calidad del mod-
elo de clasicacion basado en la opcion de prueba
que hemos elegido.
The following states how many and what propor-
tion of test instances have been correctly classied:
Los siguientes estados cuantos y que proporcion de
casos de prueba han sido correctamente clasica-
dos:
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 perfor-
mance measures in the text output area, which we
wont discuss here.
Esta es la precision del modelo sobre los datos
utilizados para la prueba. Es totalmente preciso
(100%), que es a menudo el caso cuando el con-
junto de entrenamiento se utiliza para la prueba.
Hay algunas medidas de desempe no en la zona de
salida de texto, que no vamos a discutir aqu.
At the bottom of the output is the confusion ma-
trix:
En la parte inferior de la salida es la matriz de
confusion:
=== 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 rep-
resent the predicted classes. As you can see, all 9
yes instances have been predicted as yes, and all
5 no instances as no.
Cada elemento de la matriz es un recuento de los
casos. Las las 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.
5.2.1 Exercise
Ex 8: How would the following instance be clas-
sied using the decision tree?
outlook = sunny, temperature = cool, hu-
midity = high, windy = TRUE
Ex. 8: Como sera la siguiente instancia se clasi-
caran con el arbol de decision?
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 train-
ing set is then printed into the Classier output
area: this may involve running the learning algo-
rithm one nal time.
Cuando el boton se pulsa Start, el algoritmo de
aprendizaje seleccionadas se inicia y el conjunto
de datos que se cargo 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 area de Classier out-
put: esto puede implicar que ejecuta el algoritmo
de aprendizaje por ultima vez.
The remainder of the output in the Classier
output area depends on the test protocol that
was chosen using Test options. The Test op-
tions box gives several possibilities for evaluating
classiers:
El resto de la produccion en el area de Classier
output depende del protocolo de prueba que fue
elegido con Test options. El cuadro de Test op-
tions da varias posibilidades para la evaluacion de
los clasicadores:
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 recom-
mended because it gives over-optimistic per-
formance estimates.
Usar el conjunto de la formacion Utiliza el
mismo conjunto de datos que se utilizo para
la formacion (la que se cargo en el panel
de Preprocess). Esta es la opcion que
usamos anteriormente. Por lo general, no
se recomienda porque da estimaciones de
rendimiento demasiado optimistas.
Supplied test set Lets you select a le contain-
ing 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 rst splits
the training set into disjoint subsets called
folds. The number of subsets can be en-
tered in the Folds eld. Ten is the de-
fault, 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 train-
ing 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 let-
out fold. Once this has been done for the
rst test fold, a new fold is selected for test-
ing and the remaining folds used for train-
ing. This is repeated until all folds have
been used for testing. In this way each in-
stance in the full dataset is used for testing
exactly once, and an instance is only used
for testing when it is not used for train-
ing. WEKAs cross-validation is a strat-
ied cross-validation, which means that
the class proportions are preserved when di-
viding the data into folds: each class is rep-
resented by roughly the same number of in-
stances in each fold. This gives slightly im-
proved performance estimates compared to
unstratied cross-validation.
La validacion cruzada Esta es la opcion por de-
fecto, y el mas com unmente utilizado. En
primer lugar, se divide el conjunto de entre-
namiento en subconjuntos disjuntos llama-
dos pliegues. El n umero de subconjun-
tos se pueden introducir en el campo Folds.
Diez es el valor predeterminado, y en gen-
eral proporciona mejores estimaciones que
otras opciones. Una vez que los datos se
ha dividido en los pliegues de (aproximada-
mente) igual tama no, todos menos uno de
los pliegues se utilizan para la formacion y el
restante a cabo, a la izquierda-, uno se utiliza
para la prueba. Esto implica la construccion
de un nuevo modelo a partir de cero desde el
subconjunto de datos correspondientes y la
evaluacion que sobre la que-a veces. Una vez
que esto se ha hecho para la primera prueba
doble, una nueva tapa esta 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 instan-
cia del conjunto de datos completo se utiliza
para probar una sola vez, y una instancia
solo se utiliza para la prueba cuando no se
utiliza para el entrenamiento. WEKA cruz
de la validacion es una stratied cross-
validation, lo que signica que las propor-
ciones de clase se conservan al dividir los
datos en los pliegues: cada clase esta rep-
resentada por aproximadamente el mismo
n umero de casos en cada pliegue. Esto
proporciona un rendimiento mejorado liger-
amente en comparacion con las estimaciones
sin estraticar la validacion cruzada.
14
Percentage split Shues the data randomly
and then splits it into a training and a test
set according to the proportion specied. In
practice, this is a good alternative to cross-
validation if the size of the dataset makes
cross-validation too slow.
Shues Porcentaje dividir los datos al azar y
luego se divide en un entrenamiento y un
conjunto de pruebas de acuerdo a la pro-
porcion especicada. En la practica, esta es
una buena alternativa a la validacion cruzada
si el tama no del conjunto de datos hace que
la validacion cruzada demasiado lento.
The rst two testing methods, evaluation on the
training set and using a supplied test set, involve
building a model only once. Cross-validation in-
volves building a model N+1 times, where N is the
chosen number of folds. The rst N times, a frac-
tion (N 1)/N (90% for ten-fold cross-validation)
of the data is used for training, and the nal
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 metodos de prueba, la evaluacion
en el conjunto de entrenamiento y el uso de una
unidad de prueba suministrada, implicara la con-
struccion de un modelo de una sola vez. La val-
idacion cruzada consiste en la construccion de un
modelo de N + 1 veces, donde N es el n umero
elegido de los pliegues. Los primeros N veces, una
fraccion (N 1)/N (90% de diez veces la vali-
dacion cruzada) de los datos se utiliza para el en-
trenamiento y el tiempo nal del conjunto de datos
completo se utiliza. El metodo de dividir el por-
centaje implica la construccion del modelo en dos
ocasiones, una vez en el conjunto de datos reduci-
dos y de nuevo en el conjunto de datos completo.
5.3.1 Exercise
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
classications for (a) and (b)? Which esti-
mate is more realistic?
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 validacion cruzada. Cual es el por-
centaje estimado de clasicaciones correctas
para (a) y (b)? Que estiman es mas realista?
5.4 Visualizing classication errors
WEKAs Classify panel provides a way of visu-
alizing classication errors. To do this, right-click
the trees.J48 entry in the result list and choose
Visualize classier errors. A scatter plot win-
dow pops up. Instances that have been classied
correctly are marked by little crosses; whereas ones
that have been classied incorrectly are marked by
little squares.
Panel de WEKA de Classify proporciona una
manera de visualizar los errores de clasicacion.
Para ello, haga clic en la entrada trees.J48 en
la lista de resultados y elegir Visualize classi-
er errors. Una ventana graca de dispersion
aparece. Casos que han sido clasicados correc-
tamente marcadas por peque nas cruces, mientras
que los que han sido clasicados incorrectamente
estan marcados por peque nos cuadrados.
5.4.1 Exercise
15
Ex 10: Use the Visualize classier errors func-
tion to nd the wrongly classied test in-
stances for the cross-validation performed in
Exercise 9. What can you say about the lo-
cation of the errors?
Ex. 10: Utilice la funcion de Visualize classi-
er errors para encontrar las instancias de
prueba de mal clasicadas para la validacion
cruzada realizada en el ejercicio 9. Que
puede decir acerca de la ubicacion de los er-
rores?
16
6 Answers To Exercises
1. Hot, mild and cool. 1. caliente, suave y fresco.
2. The iris dataset has 150 instances and 5 at-
tributes. So far we have only seen nomi-
nal 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 Mini-
mum and Maximum in the right panel).
2. El conjunto de datos del iris tiene 150 casos y
atributos 5. Hasta ahora solo hemos visto
los valores de nominal, pero petallength el
atributo es un atributo de numeric y con-
tiene valores numericos. En este conjunto
de datos los valores de este atributo se en-
cuentran entre 1.0 y 6.9 (vease Minimum
Maximum y en el panel derecho).
3. The rst column is the number given to an in-
stance when it is loaded from the ARFF le.
It corresponds to the order of the instances
in the le.
3. La primera columna es el n umero 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 rst column is the
instance with instance number 8.
4. El valor de la clase de esta instancia es no. La
la con el n umero 8 en la primera columna
es la instancia con el n umero 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 facilmente en la ventana de
Viewer. El conjunto de datos del iris tiene
cuatro numerico y un atributo nominal. El
atributo nominal es el atributo de clase.
6. Select the RemoveWithValues lter after
clicking the Choose button. Click on the
eld that is located next to the Choose but-
ton and set the eld attributeIndex to 3
and the eld nominalIndices to 1. Press
OK and Apply.
6. Seleccione el RemoveWithValues ltro de-
spues de hacer clic en el boton de Choose.
Haga clic en el campo que se encuentra
al lado del boton 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 boton de Undo.
8. The test instance would be classied as no. 8. La instancia de prueba sera clasicado 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 entre-
namiento es de 98%. Porcentaje de respues-
tas correctas en la validacion cruzada es del
96%. La estimacion de la validacion cruzada
es mas realista.
10. The errors are located at the class boundaries. 10. Los errores se encuentran en los lmites 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 classication and decision tree learning.
For most of it we use a real-world forensic glass
classication dataset.
En este tutorial podras experimentar con la clasi-
cacion mas cercano vecino y arbol de decision
aprendizaje. Para la mayora de los que usamos
un mundo real forenses conjunto de datos de clasi-
cacion de vidrio.
We begin by taking a preliminary look at this
dataset. Then we examine the eect of selecting
dierent attributes for nearest neighbor classica-
tion. 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 classication 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 continuacion, examinamos el
efecto de la seleccion de atributos diferentes para
la clasicacion del vecino mas cercano. A contin-
uacion se estudia el ruido de clase y su impacto
en el rendimiento predictivo del metodo del ve-
cino mas cercano. Despues de que variar el tama no
del conjunto de la formacion, tanto para la clasi-
cacion del vecino mas cercano y el arbol de decision
aprendizaje. Por ultimo, se le pide para construir
de forma interactiva un arbol de decision para un
conjunto de datos de segmentacion de la imagen.
Before continuing with this tutorial you should re-
view in your mind some aspects of the classication
task:
Antes de continuar con este tutorial es necesario
que revise en su mente algunos aspectos de la tarea
de clasicacion:
How is the accuracy of a classier measured? Como es la precision de un clasicador de
medir?
What are irrelevant attributes in a data set,
and can additional attributes be harmful?
Cuales son los atributos irrelevantes en un
conjunto de datos y atributos adicionales
pueden ser perjudiciales?
What is class noise, and how would you mea-
sure its eect on learning?
Cual es el ruido de clase, y como medir su
efecto en el aprendizaje?
What is a learning curve? Que es una curva de aprendizaje?
If you, personally, had to invent a decision
tree classier for a particular dataset, how
would you go about it?
Si usted, personalmente, tena que inventar
un clasicador de arbol de decision para un
conjunto de datos particular, como hacerlo?
1
2 The glass dataset
The glass dataset glass.arff from the US Foren-
sic 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 dierent 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 refraccion y los elementos
qumicos que contiene, y el objetivo es clasicar
los diferentes tipos de vidrio sobre la base de es-
tas caractersticas. Este conjunto de datos se ha
tomado de los conjuntos de datos de la UCI, que
han sido recogidos por la Universidad de Califor-
nia en Irvine y estan disponibles libremente en la
World Wide Web. A menudo se utilizan como ref-
erencia para comparar los algoritmos de minera
de datos.
Find the dataset glass.arff and load it into the
WEKA Explorer. For your own information, an-
swer the following questions, which review material
covered in Tutorial 1.
Encontrar el conjunto de datos glass.arff y car-
garlo en la Explorer WEKA. Para su propia in-
formacion, 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: Como los atributos con los que cuenta el
conjunto de datos de cristal? Cuales son sus
nombres? Cual es el atributo de la clase?
Run the classication algorithm IBk
(weka.classifiers.lazy.IBk). Use cross-
validation to test its performance, leaving the
number of folds at the default value of 10. Recall
that you can examine the classier options in
the GenericObjectEditor window that pops
up when you click the text beside the Choose
button. The default value of the KNN eld is 1:
this sets the number of neighboring instances to
use when classifying.
Ejecutar el algoritmo de clasicacion IBK
(weka.classifiers.lazy.IBk). Utilice la vali-
dacion cruzada para probar su funcionamiento, de-
jando el n umero de pliegues en el valor predeter-
minado de 10. Recuerde que usted puede exami-
nar las opciones del clasicador en la ventana de
GenericObjectEditor que aparece al hacer clic
en el texto junto al boton Choose. El valor por
defecto del campo KNN es una: este establece el
n umero de casos de vecinos a utilizar en la clasi-
cacion.
Ex. 2: What is the accuracy of IBk (given in the
Classier output box)?
Ex. 2: Que es la exactitud de IBk (que guran
en el cuadro de Classier output)?
Run IBk again, but increase the number of neigh-
boring instances to k = 5 by entering this value in
the KNN eld. Here and throughout this tutorial,
continue to use cross-validation as the evaluation
method.
Ejecutar IBK otra vez, pero aumentar el n umero
de casos de vecinos a k = 5 por entrar en este valor
en el campo KNN. Aqu ya lo largo de este tuto-
rial, seguir utilizando la validacion cruzada como
el metodo de evaluacion.
Ex. 3: What is the accuracy of IBk with 5 neigh-
boring instances (k = 5)?
Ex. 3: Que es la exactitud de IBk con 5 casos de
vecinos (k = 5)?
2
3 Attribute selection for glass classication
Now we nd what subset of attributes produces
the best cross-validated classication accuracy for
the IBk nearest neighbor algorithm with k = 1 on
the glass dataset. WEKA contains automated at-
tribute selection facilities, which we examine in a
later tutorial, but it is instructive to do this man-
ually.
Ahora nos encontramos con lo subconjunto de los
atributos produce la exactitud de la clasicacion
mejor validacion cruzada para el algoritmo de ve-
cino mas cercano IBk con k = 1 en el conjunto
de datos de vidrio. WEKA contiene automatizado
instalaciones para la seleccion de atributos, que se
examinan mas adelante en un tutorial, pero es in-
structivo para hacerlo manualmente.
Performing an exhaustive search over all possi-
ble subsets of the attributes is infeasible (why?),
so we apply a procedure called backwards selec-
tion. To do this, rst consider dropping each
attribute individually from the full dataset con-
sisting 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
nd the best 7-attribute dataset, and so on.
Realizacion de una b usqueda exhaustiva sobre to-
dos los posibles subconjuntos de los atributos no es
factible (por que?), por lo que aplicar un proced-
imiento llamado al reves de seleccion. Para ello,
en primer lugar considerar abandonar cada atrib-
uto individual del conjunto de datos completa que
consiste en nueve atributos (ademas de la clase), y
ejecutar una validacion cruzada para cada version
reducida. Una vez que haya determinado el con-
junto de datos mas de 8 atributo, repita el proced-
imiento con este conjunto de datos reduce a en-
contrar 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 precision obtenida
en cada iteracion.
Table 1: Accuracy obtained using IBk, for dierent attribute subsets
Subset size Attributes in best subset Classication accuracy
9 attributes
8 attributes
7 attributes
6 attributes
5 attributes
4 attributes
3 attributes
2 attributes
1 attribute
0 attributes
The best accuracy obtained in this process is quite
a bit higher than the accuracy obtained on the full
dataset.
La mejor precision obtenida en este proceso es un
poco mayor que la precision obtenida en el con-
junto de datos completo.
Ex. 5: Is this best accuracy an unbiased estimate
of accuracy on future data? Be sure to ex-
plain your answer.
Ex. 5: Es esto mejor precision una estimacion no
sesgada de precision en los datos de futuro?
Aseg urese 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 classication model for
which we want to obtain the estimate.)
(Sugerencia: para obtener una estimacion objetiva
de la exactitud en los datos de futuro, no debemos
mirar el at all datos de prueba cuando se pro-
duce el modelo de clasicaci on para la que quer-
emos obtener la estimacion.)
4 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 eect on
classication performance.
Aprendizaje mas cercana al vecino, al igual que
otras tecnicas, es sensible al ruido en los datos de
entrenamiento. En esta seccion se inyectan canti-
dades variables de class noise en los datos de en-
trenamiento y observar el efecto en el rendimiento
de la clasicacion.
You can ip a certain percentage of class labels in
the data to a randomly chosen other value using an
unsupervised attribute lter called AddNoise, in
weka.filters.unsupervised.attribute. How-
ever, for our experiment it is important that the
test data remains unaected by class noise.
Puede invertir un cierto porcentaje de las eti-
quetas de clase en los datos a un valor es-
cogido de forma aleatoria otras mediante un atrib-
uto sin supervision ltro 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 ltering the
test data is a common requirement, and is achieved
using a meta classier called FilteredClassi-
er, in weka.classifiers.meta. This meta clas-
sier should be congured to use IBk as the clas-
sier and AddNoise as the lter. The Filtered-
Classier applies the lter to the data before run-
ning the learning algorithm. This is done in two
batches: rst the training data and then the test
data. The AddNoise lter only adds noise to the
rst batch of data it encounters, which means that
the test data passes through unchanged.
Filtrado de los datos de entrenamiento sin l-
trar los datos de prueba es un requisito com un, y
se realiza con un meta clasicador denominado
FilteredClassier, en weka.classifiers.meta.
Este clasicador meta debe estar congurado para
utilizar como IBk AddNoise el clasicador y el
ltro. El FilteredClassier se aplica el ltro a
los datos antes de ejecutar el algoritmo de apren-
dizaje. Esto se hace en dos tandas: en primer lugar
los datos de entrenamiento y, a continuacion los
datos de prueba. El AddNoise ltro solo haca
que el primer lote de datos que encuentra, lo que
signica que los datos de prueba pasa a traves de
cambios.
Table 2: Eect of class noise on IBk, for dierent neighborhood sizes
Percent noise k = 1 k = 3 k = 5
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
4
Ex. 6: Reload the original glass dataset, and
record in Table 2 the cross-validated accu-
racy estimate of IBk for 10 dierent percent-
ages of class noise and neighborhood sizes
k = 1, k = 3, k = 5 (determined by the value
of k in the k-nearest-neighbor classier).
Ex. 6: Actualizar el conjunto de datos de vidrio
original, y registrar en la Table 2 la exactitud
validacion cruzada estimacion de IBk por 10
diferentes porcentajes de ruido de la clase y
el barrio tama nos k = 1, k = 3, k = 5 (de-
terminado por el valor de k en el clasicador
k vecino mas cercano).
Ex. 7: What is the eect of increasing the amount
of class noise?
Ex. 7: Cual es el efecto de aumentar la cantidad
de ruido de clase?
Ex. 8: What is the eect of altering the value of
k?
Ex. 8: Que elemento es el efecto de modicar el
valor de k?
5 Varying the amount of training data
In this section we consider learning curves,
which show the eect 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 seccion tenemos en cuenta las curvas de
aprendizaje, que muestran el efecto de aumen-
tar gradualmente la cantidad de datos de entre-
namiento. Una vez mas se utilizan los datos de
vidrio, pero esta vez con dos IBk y la decision C4.5
alumno arbol, implementado en WEKA como J48.
To obtain learning curves, use the Filtered-
Classier again, this time in conjunction with
weka.filters.unsupervised.instance.Resample,
which extracts a certain specied percentage of a
given dataset and returns the reduced dataset.
1
Again this is done only for the rst batch to which
the lter is applied, so the test data passes un-
modied through the FilteredClassier before
it reaches the classier.
Para obtener las curvas de aprendizaje, el uso de
la FilteredClassier, esta vez en relacion con el
weka.filters.unsupervised.instance.Resample,
que extrae un porcentaje especicado de un con-
junto de datos y devuelve el conjunto de datos
reducidos.
2
Una vez mas esto se hace solo para el
primer grupo al que se aplica el ltro, por lo que
los datos de prueba pasa sin modicar a traves
de la FilteredClassier antes que alcanza el
clasicador.
Ex. 9: Record in Table 3 the data for learn-
ing curves for both the one-nearest-neighbor
classier (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 uno-
clasicador del vecino mas cercano (es decir,
IBk con k = 1) y J48.
1
This lter performs sampling with replacement, rather than sampling without replacement, but the eect is minor and
we will ignore it here.
2
Este ltro realiza el muestreo con reemplazo, en lugar de muestreo sin reemplazo, pero el efecto es menor y se lo ignora
aqu.
5
Table 3: Eect of training set size on IBk and J48
Percentage of training set IBk J48
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
Ex. 10: What is the eect of increasing the
amount of training data?
Ex. 10: Cual es el efecto de aumentar la cantidad
de datos de entrenamiento?
Ex. 11: Is this eect more pronounced for IBk or
J48?
Ex. 11: Es este tema efecto mas pronunciado para
IBk o J48?
6 Interactive decision tree construction
One of WEKAs classiers is interactive: it lets
the useri.e., you!construct your own classier.
Heres a competition: lets see who can build a
classier with the highest predictive accuracy!
Uno de los clasicadores WEKA es interactiva:
permite que el usuarioes decir, queconstruir
su propio clasicador. Aqu hay una competen-
cia: a ver quien puede construir un clasicador
con mayor precision de prediccion!
Load the le segment-challenge.arff (in the
data folder that comes with the WEKA distribu-
tion). This dataset has 20 attributes and 7 classes.
It is an image segmentation problem, and the task
is to classify images into seven dierent groups
based on properties of the pixels.
Cargar el archivo segment-challenge.arff (en
la carpeta de datos que viene con la distribucion
de WEKA). Este conjunto de datos cuenta con 20
atributos y las clases 7. Se trata de un problema
de segmentacion de la imagen, y la tarea consiste
en clasicar las imagenes en siete grupos diferentes
basados en las propiedades de los pxeles.
Set the classier to UserClassier, in the
weka.classifiers.trees package. We will use a
supplied test set (performing cross-validation with
the user classier 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 le... and browse to the le
segment-test.arff (also in the WEKA distribu-
tions data folder). On clicking Open, the small
window updates to show the number of instances
(810) and attributes (20); close it.
Ajuste el clasicador a UserClassier, en el
weka.classifiers.trees paquete. Vamos a uti-
lizar una unidad de prueba suministrada (realizar
la validacion cruzada con el clasicador de usuario
es muy aburrido!). En el cuadro de Test op-
tions, seleccione la opcion de Supplied test set
y haga clic en el boton de Set.... Aparecera una
peque na ventana en la que usted elija el equipo
de prueba. Haga clic en Open le... y busque
el archivo segment-test.arff (tambien en la car-
peta de datos de la distribucion de WEKA). Al
hacer clic en Open, las actualizaciones peque na
ventana para mostrar el n umero de casos (810) y
atributos (20), cierrelo.
6
Click Start. The behaviour of UserClassier dif-
fers from all other classiers. A special window ap-
pears and WEKA waits for you to use it to build
your own classier. The tabs at the top of the
window switch between two views of the classier.
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 nodethe root
nodecontaining 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 User-
Classier se diferencia de todos los otros clasi-
cadores. Una ventana especial aparece y WEKA
espera a que se utilizar para construir su propio
clasicador. Las pesta nas en la parte superior del
interruptor de la ventana entre dos puntos de vista
del clasicador. El punto de vista Tree visual-
izer muestra el estado actual de su arbol, y los
nodos dar el n umero de valores de clase all. El
objetivo es llegar a un arbol donde los nodos hoja
son tan puros como sea posible. Para empezar, el
arbol tiene un solo nodoel nodo razque con-
tiene todos los datos. Mas nodos aparecera 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 cha Data visualizer para ver un
graco 2D en el que los puntos de datos estan cod-
icados por colores seg un la clase. Puede cambiar
los atributos utilizados para los ejes, ya sea con la
X e Y men us desplegables en la parte superior, o
presionando el boton izquierdo (para X) o el boton
derecho del raton (para Y) las tiras horizontales a
la derecha del area de trazado . Estas tiras mues-
tran la propagacion de casos a lo largo de cada
atributo en particular.
You need to try dierent combinations of X and
Y axes to get the clearest separation you can nd
between the colours. Having found a good separa-
tion, 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 sep-
arated from the rest of the classes at the top of the
plot.
Tendra que probar diferentes combinaciones de
ejes X e Y para obtener la mas clara la separacion
que se encuentran entre los colores. Cuando exista
una buena separacion, a continuacion, debera se-
leccionar una region en la trama: esto creara una
rama en el arbol. Aqu esta una sugerencia para
comenzar: parcela region-centroid-row en el eje
X y intensity-media en el eje. Usted vera que la
clase de color rojo (cielo) esta 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 seleccion de las
regiones en el graco, elegidos mediante el men u
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 rectangulo alrededor de ellos.
2. Polygon allows you to select points by draw-
ing a free-form polygon. Left-click to add
vertices; right-click to complete the polygon.
The polygon will be closed o by connecting
the rst and last points.
2. Polygon le permite seleccionar los puntos
dibujando un polgono de forma libre. Haga
clic izquierdo para a nadir vertices, haga clic
para completar el polgono. El polgono se
cierran mediante la conexion de los puntos
primero y el ultimo.
7
3. Polyline allows you to select points by draw-
ing 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 polilnea de forma libre. Haga
clic izquierdo para a nadir vertices, haga clic
para completar la forma. La forma re-
sultante es abierto, en comparacion con el
polgono que esta cerrado.
When you have selected an area using any of these
tools, it turns gray. Clicking the Clear button
cancels the selection without aecting the classi-
er. 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 selec-
tion and the other holding all remaining instances.
These nodes correspond to a binary split that per-
forms the chosen geometric test.
Cuando haya seleccionado un area usando
cualquiera de estas herramientas, que se vuelve
gris. Al hacer clic en el boton Clear cancela la
seleccion sin afectar el clasicador. Cuando usted
esta satisfecho con la seleccion, haga clic en Sub-
mit. Esto crea dos nuevos nodos en el arbol,
una celebracion de todos los casos cubiertos por
la seleccion y el otro posee la totalidad de los ca-
sos restantes. Estos nodos se corresponden a una
division binaria que realiza la prueba geometrica
elegida.
Switch back to the Tree visualizer view to ex-
amine the change in the tree. Clicking on dierent
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 over-
t 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 arbol. Al hacer clic
en los nodos diferentes altera el subconjunto de los
datos que se muestra en la seccion de Data visu-
alizer. Contin ue a nadiendo nodos hasta obtener
una buena separacion de las claseses decir, los
nodos hoja en el arbol son en su mayora puro.
Sin embargo, recuerde que usted no desea sobrea-
juste de los datos, ya que el arbol sera evaluado en
un conjunto de prueba independiente.
When you are satised 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 este satisfecho con el arbol, haga clic en
cualquier espacio en blanco en la vista Tree visu-
alizer y elija Accept The Tree. WEKA eval ua el
arbol contra el equipo de prueba y las estadsticas
de resultados que muestran lo bien que hizo.
You are competing for the best accuracy score
of a hand-built UserClassier 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 au-
tomatic decision tree learner performs on the task.
Usted esta compitiendo por la mejor puntuacion
de exactitud de una mano-construido UserClas-
sier conjunto de datos producidos en el segment-
challenge y de prueba en el set del segment-test.
Trate tantas veces como quieras. Un buen resul-
tado es algo cercano a 90% de aciertos o mejor.
Ejecutar J48 en los datos para ver que tan bien
un estudiante de arbol de decision automatica re-
aliza 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 re-
sult buer, and copy it into your answer for
this tutorial.
Ex. 12: Cuando usted piensa que tiene un buen
puntaje, haga clic en la entrada correspondi-
ente en la Result list, guardar el resultado
con Save result buer, y copiarlo en su
respuesta para este tutorial.
8
Practical Data Mining
Tutorial 3: Classication 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 classication
boundaries that are produced by dierent types
of models. To do this, we use WEKAs Bound-
aryVisualizer. This is not part of the WEKA Ex-
plorer 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 vera en los lmites de clasi-
cacion que son producidas por diferentes tipos de
modelos. Para ello, utilizamos BoundaryVisual-
izer 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 u INICIO de Windows
(en Linux o Mac, haga doble clic en weka.jar o
weka.app). En el men u 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 rst two
attributes. To create this from the standard iris
data, start up the Explorer, load iris.arff us-
ing the Open le button and remove the rst
two attributes (sepallength and sepalwidth) by
selecting them and clicking the Remove button
that appears at the bottom. Then save the mod-
ied dataset to a le (using Save) called, say,
iris.2D.arff.
El visualizador muestra los lmites parcelas de dos
dimensiones de los datos, y es mas adecuado para
conjuntos de datos con dos atributos numericos.
Vamos a utilizar una version de los datos del iris,
sin los dos primeros atributos. Para crear esta par-
tir de los datos del iris estandar, la puesta en mar-
cha del Explorer, la carga iris.arff usando el
boton de Open le y quite los dos primeros atrib-
utos (sepallength y sepalwidth), seleccionando y
haciendo clic en el boton que Remove aparece en
la parte inferior. A continuacion, guarde el con-
junto de datos modicados en un archivo (usando
Save) llamado, por ejemplo, iris.2D.arff.
Now leave the Explorer and open this le for vi-
sualization using the boundary visualizers Open
File... button. Initially, the plot just shows the
data in the dataset.
1
Ahora deja el Explorer y abrir este archivo para la
visualizacion mediante el visualizador de Fronteras
boton Open File.... Inicialmente, la trama solo
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 de-
cision boundaries that dierent classiers generate
for the reduced iris dataset.
Solo gracar los datos no es nada nuevo. El ver-
dadero proposito del visualizador lmite es mostrar
la predicciones de un modelo determinado para
cada lugar en el espacio. Los puntos que represen-
tan los datos estan codicados por colores basados
en la prediccion del modelo genera. Vamos a uti-
lizar esta funcionalidad para investigar los lmites
de la decision que los clasicadores 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 dierent attribute for either the x or
y axis by clicking the appropriate button.
2
No es un error en la visualizacion 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 boton correspondiente.
1
We start with the 1R rule learner. Use the
Choose button of the boundary visualizer to se-
lect 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 stabilizedas soon as you like, in this
caseand the training data will be superimposed
on the boundary visualization.
Empezamos con el aprendiz regla 1R. Util-
ice el boton de Choose del visualizador lmite
para seleccionar weka.classifiers.rules.OneR.
Aseg urese de que usted marque Plot training
data, de lo contrario solo las predicciones se
trazan. A continuacion, pulse el boton Start.
El programa comienza a las predicciones de con-
spirar en las sucesivas lneas de exploracion. Pulse
el boton de Stop, una vez la trama se ha
estabilizadotan pronto como quiera, en este
casoy los datos de entrenamiento se superpone
a la visualizacion 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 Ex-
plorer a mirar el conjunto de reglas que 1R
genera para estos datos.)
Ex. 2: Study the eect of the minBucketSize
parameter on the classier by regenerating
the plot with values of 1, and then 20, and
then some critical values in between. De-
scribe what you see, and explain it. (Hint:
you could speed things up by using the Ex-
plorer to look at the rule sets.)
Ex. 2: Estudiar el efecto del parametro min-
BucketSize en el clasicador por la regen-
eracion de la parcela con valores de 1, y luego
20 y, a continuacion algunos valores crticos
en el medio. Describe lo que ves, y expli-
carlo. (Sugerencia: puede acelerar las cosas
mediante el Explorer a ver algunos de los
conjuntos de reglas.)
3 Visualizing nearest-neighbor learning
Now we look at the classication boundaries cre-
ated by the nearest neighbor method. Use the
boundary visualizers Choose... button to select
the IBk classier (weka.classifiers.lazy.IBk)
and plot its decision boundaries for the reduced
iris data.
Ahora nos jamos en los lmites de clasi-
cacion creado por el metodo del vecino mas cer-
cano. Utilice el boton de visualizador lmite de
Choose... para seleccionar el clasicador IBk
(weka.classifiers.lazy.IBk) y la trama de sus
lmites de decision para reducir los datos del iris.
2
In WEKA, OneRs 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 count-
ing 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 esti-
mates. 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 al-
most always the case, because the estimated prob-
ability 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 prob-
ability zero.
En WEKA, las predicciones OneR son
categoricos: para cada instancia que predi-
cen 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 umero de casos de cada clase
en el conjunto de los vecinos mas 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 mas cercanos de cada caso de prueba
(es decir, lugar de pxeles). En cuanto a la trama,
esto es de hecho casi siempre el caso, ya que la
probabilidad estimada es uno de casi todos los
pxeles, dando como resultado un color puro. No
hay mezcla de colores, porque una clase recibe
una probabilidad y la probabilidad de los demas
cero.
Ex. 3: Nevertheless, there is a small area in the
plot where two colors are in fact mixed. Ex-
plain this. (Hint: look carefully at the data
using the Visualize panel in the Explorer.)
Ex. 3: Sin embargo, hay una peque na area 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 dierent values for k, say
5 and 10. Describe what happens as k in-
creases.
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 classier. This as-
sumes that attributes are conditionally indepen-
dent 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 clasicador de Bayes.
Esto supone que los atributos son condicional-
mente independientes dado un valor de clase es-
pecial. Esto signica que la probabilidad de clase
global se obtiene simplemente multiplicando por
el atributo de probabilidades condicionales juntos.
En otras palabras, con dos atributos, no se 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
mas facil de entender si la visualizan como una
parcela de contorno.
3
Plot the predictions of naive Bayes. But rst, you
need to discretize the attribute values. By default,
NaiveBayes assumes that the attributes are nor-
mally 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 at-
tributes in the data using a supervised discretiza-
tion technique.
3
Parcela las predicciones de Bayes ingenuo. Pero
primero, tiene que discretizar los valores de atrib-
uto. De forma predeterminada, NaiveBayes
asume que los atributos tienen una distribucion
normal habida cuenta de la clase (es decir, que
siguen una distribucion en forma de campana).
Usted debe cambiar este ajuste de useSuper-
visedDiscretization a true utilizando el Gener-
icObjectEditor. Esto hara que NaiveBayes
para discretizar los atributos numericos de los
datos mediante una tecnica de discretizacion su-
pervisado.
4
In almost all practical applications of Naive-
Bayes, supervised discretization works better
than the default method, and that is why we con-
sider it here. It also produces a more comprehen-
sible visualization.
En casi todas las aplicaciones practicas de la
NaiveBayes, discretizacion supervisado es mas
ecaz que el metodo por defecto, y es por eso que
lo consideramos aqu. Tambien produce una visu-
alizacion mas comprensible.
Ex. 5: The plot that is generated by visualiz-
ing the predicted class probabilities of naive
Bayes for each pixel location is quite dierent
from anything we have seen so far. Explain
the patterns in it.
Ex. 5: La trama que se genera mediante la visu-
alizacion de las probabilidades de clase pre-
visto de Bayes ingenuo para cada posicion de
pxel 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 nearest-
neighbor 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 arboles de decision y conjuntos de reglas son
similares a los del vecino mas proximo de apren-
dizaje en el sentido de que son tambien casi uni-
versal: en principio, se puede aproximar cualquier
lmite de la decision arbitraria de cerca. En esta
seccion, nos jamos en los lmites generados por
JRip y J48.
Generate a plot for JRip, with default options. Generar una parcela de JRip, con las opciones pre-
determinadas.
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: Que ves? La trama a la salida de las nor-
mas 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 eect regardless of the or-
der in which they are executed.
Ex. 7: La salida JRip asume que las normas se
ejecutara 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 nd good split
points for the discretization intervals.
4
La tecnica utilizada es supervisada, porque tiene las etiquetas de clase de las instancias en cuenta para encontrar
buenos puntos de partido para los intervalos de discretizacion.
4
Generate a plot for J48, with default options. Generar una parcela de J48, con las opciones pre-
determinadas.
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: Que ves? La trama a la salida del arbol
que se obtiene al procesar los datos en la Ex-
plorer.
One way to control how much pruning J48 per-
forms 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 arbol es
para ajustar el n umero mnimo 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 arboles
con 3, 2 y 1 respectivamente nodos de la hoja.
Cuales son los rangos de los valores exactos
de minNumObj que lograr este objetivo,
los valores por defecto para todos los otros
parametros?
6 Messing with the data
With the BoundaryVisualizer you can modify
the data by adding or removing points.
Con el BoundaryVisualizer se pueden modicar
los datos, a nadiendo o quitando puntos.
Ex. 10: Introduce some noise into the data and
study the eect on the learning algorithms
we looked at above. What kind of behav-
ior 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. Que
tipo de comportamiento no se observa para
cada algoritmo como introducir mas 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 re-
quire you to think about the internal workings of
1R. (Hint: it will probably be fastest to use the Ex-
plorer to look at the rule sets.)
Volver al alumno regla 1R en el iris reducido con-
junto de datos utilizado en la Seccion 2 (no la
version ruidosa que acaba de crear). Las sigu-
ientes preguntas le exigira que pensar en el fun-
cionamiento interno de 1R. (Sugerencia: es proba-
ble que sea mas rapido 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 arent 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 Seccion 2 que la trama siem-
pre tiene tres regiones. Pero por que no hay
mas para las dimensiones de cubo peque no
(por ejemplo, 1)? Usa lo que sabes sobre 1R
para explicar esta aparente anomala.
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 minBucket-
Size that gives you this number of regions?
Explain the result based on what you know
about the iris data.
Ex. 12: Se puede congurar minBucketSize a
un valor que los resultados en menos de tres
regiones? Cual es el menor n umero posible
de regiones? Cual es el valor mas peque no
de minBucketSize que le da este n umero
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 out-
come of the learning process and lead to more ac-
curate 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 lters, as well
as a method for automatic parameter tuning.
Preprocesamiento de datos es a menudo necesario
para obtener los datos listos para el aprendizaje.
Tambien puede mejorar el resultado del proceso de
aprendizaje y dar lugar a modelos mas precisos y
concisos. Lo mismo es cierto para los metodos de
ajuste de parametros. En este tutorial vamos a
ver algunas de las tecnicas de preprocesamiento
util, que se aplican como ltros de WEKA, as
como un metodo para el ajuste automatico de los
parametros.
2 Discretization
Numeric attributes can be converted into discrete
ones by splitting their ranges into numeric inter-
vals, a process known as discretization. There are
two types of discretization techniques: unsuper-
vised ones, which are class blind., and supervised
one, which take the class value of the instances into
account when creating intervals. The aim with su-
pervised techniques is to create intervals that are
as consistent as possible with respect to the class
labels.
los atributos numericos se pueden convertir en los
discretos mediante el fraccionamiento de sus areas
de distribucion en intervalos numericos, un pro-
ceso conocido como discretizacion. Hay dos tipos
de tecnicas de discretizacion: sin supervision los
que son de clase ciego, y una supervision, que
tienen el valor de clase de las instancias en cuenta
al crear intervalos. El objetivo con las tecnicas de
supervision es la creacion de intervalos que sean
tan coherentes como sea posible con respecto a las
etiquetas de clase.
The main unsupervised technique for dis-
cretizing numeric attributes in WEKA is
weka.filters.unsupervised.attribute.
Discretize. It implements two straightforward
methods: equal-width and equal-frequency dis-
cretization. The rst 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 tecnica unsupervisada para dis-
cretizar los atributos numericos en WEKA
es weka.filters.unsupervised.attribute.
Discretize. Se implementa dos metodos sencil-
los: la igualdad de ancho y discretizacion de igual
frecuencia. El primero, simplemente se divide el
rango numerico en intervalos iguales. El segundo
opta por la amplitud de los intervalos para que los
mismos contienen (aproximadamente) el mismo
n umero 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 dis-
cretization lter in the two dierent modes dis-
cussed above.
Encontrar el conjunto de datos de cristal
glass.arff y cargarlo en la Explorer. Aplicar
el ltro de discretizacion sin supervision 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: Que observa al comparar los histogramas
obtenidos? Por que es la discretizacion de
la igualdad de frecuencia muy sesgada de al-
gunos atributos?
1
The main supervised technique for dis-
cretizing 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 dier between intervals
but are consistent within intervals.
El principal supervisado tecnica para dis-
cretizar los atributos numericos en WEKA
es weka.filters.supervised.attribute.
Discretize. Busque los datos del iris, se
carga en, aplicar el esquema de discretizacion
supervisado, y ver los histogramas obtenidos. En-
cuadramiento intentos de discretizacion para crear
intervalos de tal manera que las distribuciones
dieren 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 con-
sider the most predictive ones?
Ex. 2: Con base en los histogramas obtenidos,
que de los atributos discretizados se tiene en
cuenta los mas predictivo?
Reload the glass data and apply supervised dis-
cretization to it.
Actualizar los datos de vidrio y aplicar dis-
cretizacion 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: Solo hay una sola barra en los histogramas
de algunos de los atributos. Que signica
eso?
Discretized attributes are normally coded as nomi-
nal attributes, with one value per range. However,
because the ranges are ordered, a discretized at-
tribute is actually on an ordinal scale. Both lters
also have the ability to create binary attributes
rather than multi-valued ones, by setting the op-
tion makeBinary to true.
Atributos discretizado normalmente codicados
como atributos nominales, con un valor por rango.
Sin embargo, debido a los rangos estan ordenados,
un atributo discretizado es en realidad en una es-
cala ordinal. Ambos ltros tambien tienen la ca-
pacidad de crear los atributos binarios en lugar de
los m ultiples valores, mediante el establecimiento
de la makeBinary opcion de verdad.
Ex. 4: Choose one of the lters and apply it
to create binary attributes. Compare to
the output generated when makeBinary is
false. What do the binary attributes repre-
sent?
Ex. 4: Elegir un de los ltros y aplicarlo para
crear atributos binarios. Compare con el
resultado generado cuando makeBinary es
falsa. Que signican los atributos binarios
representan?
3 More on Discretization
Here we examine the eect of discretization when
building a J48 decision tree for the data in
ionosphere.arff. This dataset contains informa-
tion about radar signals returned from the iono-
sphere. Good samples are those showing evi-
dence 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 le. Begin with
unsupervised discretization.
Aqu se examina el efecto de la discretizacion en
la construccion de un arbol de decision J48 para
los datos de ionosphere.arff. Este conjunto de
datos contiene informacion acerca de las se nales
de radar de regresar de la ionosfera. Bueno son
las muestras que presenten indicios de alg un tipo
de estructura de la ionosfera, mientras que para los
malos las se nales pasan directamente a traves de
la ionosfera. Para obtener mas informacion, visita
los comentarios en el archivo ARFF. Comience con
discretizacion sin supervision.
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 de-
fault mode, (c) data discretized by the same
method with binary attributes.
Ex. 5: Comparacion de la precision validacion
cruzada de J48 y el tama no de los arboles
generados por (a) los datos en bruto, (b)
los datos discretizados por el metodo de dis-
cretizacion sin supervision en el modo por de-
fecto, (c) los datos discretizados por el mismo
metodo con atributos binarios.
Now turn to supervised discretization. Here a sub-
tle issue arises. If we simply repeated the previous
exercise using a supervised discretization method,
the result would be over-optimistic. In eect, since
cross-validation is used for evaluation, the data in
the test set has been taken into account when deter-
mining the discretization intervals. This does not
give a fair estimate of performance on fresh data.
Ahora pasa a la discretizacion supervisado. Aqu
surge una cuestion sutil. Si nos limitamos a repe-
tir el ejercicio anterior utilizando un metodo de
discretizacion supervisado, el resultado sera de-
masiado optimista. En efecto, ya que la validacion
cruzada se utiliza para la evaluacion, los datos en
el conjunto de pruebas se ha tenido en cuenta para
determinar los intervalos de discretizacion. Esto
no da una estimacion razonable de rendimiento en
nuevos datos.
To evaluate supervised discretization in a fair fash-
ion, we use the FilteredClassier from WEKAs
meta-classiers. This builds the lter model from
the training data only, before evaluating it on the
test data using the discretization intervals com-
puted for the training data. After all, that is how
you would have to process fresh data in practice.
Para evaluar discretizacion supervisado de man-
era justa, se utiliza el FilteredClassier de meta
de WEKA-clasicadores. Esto se basa el modelo
de ltro de los datos de entrenamiento solamente,
antes de evaluar que en los datos de prueba medi-
ante los intervalos de discretizacion calculados para
los datos de entrenamiento. Despues de todo, que
es como se tendra que procesar los datos frescos
en la practica.
Ex. 6: Compare the cross-validated accuracy and
the size of the trees generated using the Fil-
teredClassier and J48 for (d) supervised
discretization in default mode, (e) supervised
discretization with binary attributes.
Ex. 6: Comparacion de la precision validacion
cruzada y el tama no de los arboles genera-
dos con el FilteredClassier y J48 para (d)
discretizacion supervisado en su modo nor-
mal, (e) discretizacion de supervision de los
atributos binarios.
Ex. 7: Compare these with the results for the raw
data ((a) above). Can you think of a rea-
son of why decision trees generated from dis-
cretized data can potentially be more accu-
rate predictors than those built from raw nu-
meric data?
Ex. 7: Compare estos datos con los resultados de
los datos en bruto ((a) anterior). Puedes
pensar en una razon de por que los arboles de
decision generados a partir de datos discretos
pueden ser potencialmente predictores mas
ables que las construye a partir de datos
numericos en bruto?
3
4 Automatic Attribute Selection
In most practical applications of supervised learn-
ing not all attributes are equally useful for predict-
ing 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 tutorialbut there are automatic attribute
selection methods that can be applied.
En la mayora de las aplicaciones practicas de
aprendizaje supervisado, no todos los atributos son
igualmente utiles para predecir el destino. De-
pendiendo de la actividad de aprendizaje emplea-
dos, redundantes y/o atributos irrelevantes pueden
dar lugar a modelos menos precisos generando.
La tarea de identicar manualmente los atributos
utiles en un conjunto de datos puede ser tedioso, ya
que hemos visto en el segundo tutorialpero hay
metodos automaticos de seleccion de atributos que
se pueden aplicar.
They can be broadly divided into those that rank
individual attributes (e.g., based on their informa-
tion gain) and those that search for a good subset
of attributes by considering the combined eect
of the attributes in the subset. The latter meth-
ods can be further divided into so-called lter and
wrapper methods. Filter methods apply a compu-
tationally ecient heuristic to measure the quality
of a subset of attributes. Wrapper methods mea-
sure the quality of an attribute subset by building
and evaluating an actual classication model from
it, usually based on cross-validation. This is more
expensive, but often delivers superior performance.
Pueden dividirse en aquellos que se clasican los
atributos individuales (por ejemplo, sobre la base
de su ganancia de informacion) y los de b usqueda
que para un subconjunto de los atributos de buena
considerando el efecto combinado de los atributos
en el subconjunto. Estos metodos se pueden di-
vidir en los llamados ltro y contenedor metodos.
metodos de aplicar un ltro eciente computa-
cionalmente heurstica para medir la calidad de un
subconjunto de los atributos. metodos Wrapper
medir la calidad de un subconjunto de atributos
mediante la construccion y evaluacion de un mod-
elo de clasicacion real de ella, generalmente se
basa en la validacion cruzada. Esto es mas caro,
pero a menudo ofrece un rendimiento superior.
In the WEKA Explorer, you can use the Se-
lect attributes panel to apply an attribute se-
lection method on a dataset. The default is Cf-
sSubsetEval. However, if we want to rank in-
dividual 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 metodo de
seleccion de atributos en un conjunto de datos.
El valor predeterminado es CfsSubsetEval. Sin
embargo, si queremos clasicar los atributos in-
dividuales, tenemos que recurrir a un evaluador
de atributos en vez de un subgrupo evaluador,
por ejemplo, la InfoGainAttributeEval. evalu-
adores de atributos deben ser aplicados con un es-
pecial de b usqueda metodo, a saber, la Ranker.
Ex. 8: Apply this technique to the labour nego-
tiations data in labor.arff. What are the
four most important attributes based on in-
formation gain?
1
Ex. 8: Aplicar esta tecnica para las negociaciones
laborales de datos en labor.arff. Cuales
son los cuatro atributos mas importantes
basadas en el aumento de la informacion?
2
1
Note that most attribute evaluators, including InfoGainAttributeEval, discretize numeric attributes using WEKAs
supervised discretization method before they are evaluated. This is also the case for CfsSubsetEval.
2
Nota que la mayora de los evaluadores de atributos, incluyendo InfoGainAttributeEval, discretizar los atributos
numericos mediante el metodo de discretizaci on supervisado WEKA antes de que se eval uan. Este es tambien el caso de
CfsSubsetEval.
4
WEKAs default attribute selection method, Cfs-
SubsetEval, uses a heuristic attribute subset eval-
uator in a lter search method. It aims to iden-
tify a subset of attributes that are highly corre-
lated with the target while not being strongly cor-
related 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 search-
Backwards to true gives backwards selection,
the search method you used manually in the sec-
ond tutorial.
WEKA atributo por defecto el metodo de se-
leccion, CfsSubsetEval, utiliza un subconjunto
de atributos evaluador heurstica en un metodo de
ltro de b usqueda. Su objetivo es identicar un
subconjunto de los atributos que estan muy cor-
relacionados con el objetivo sin ser fuertemente
correlacionados entre s. De forma predetermi-
nada, se busca a traves del espacio de subcon-
juntos de atributos posibles para el mejor con
el metodo de b usqueda BestFirst.
4
Usted puede
elegir otros, como un algoritmo genetico o incluso
una exhaustiva b usqueda. De hecho, la eleccion
de GreedyStepwise searchBackwards y el es-
tablecimiento de verdad da al reves de seleccion,
el metodo de b usqueda que usa manualmente en el
segundo tutorial.
To use the wrapper method rather than a lter
method like CfsSubsetEval, you need to select
WrapperSubsetEval. You can congure 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 metodo de envoltura en vez de un
metodo de ltro como CfsSubsetEval, es nece-
sario seleccionar WrapperSubsetEval. Puede
congurar esta eligiendo un algoritmo de apren-
dizaje de aplicar. Tambien puede establecer el
n umero de pliegues para la validacion cruzada que
se utiliza para evaluar el modelo en cada subcon-
junto de atributos.
Ex. 9: On the same data, run CfsSubsetEval
for correlation-based selection, using Best-
First 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 us-
ing information gain?
Ex. 9: En los mismos datos, CfsSubsetEval cor-
rer para la seleccion basada en la correlacion,
mediante la b usqueda de BestFirst. A con-
tinuacion, ejecute el metodo de envoltura con
J48 como el aprendiz de base, utilizando de
nuevo la b usqueda BestFirst. Examinar
los subconjuntos de atributos que se emiten.
Que atributos son seleccionados por ambos
metodos? Como se relacionan con el resul-
tado generado por el aumento de clasicacion
de informacion utiliza?
5 More on Automatic Attribute Selection
The Select attribute panel allows us to gain in-
sight into a dataset by applying attribute selection
methods to a dataset. However, using this infor-
mation to reduce a dataset becomes problematic
if we use some of the reduced data for testing the
model (as in cross-validation).
El panel de Select attribute nos permite profun-
dizar en un conjunto de datos mediante la apli-
cacion de metodos de seleccion de atributos de un
conjunto de datos. Sin embargo, utilizar esta in-
formacion 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 validacion cruzada).
3
This is a standard search method from AI.
4
Este es un metodo de b usqueda estandar de la inuenza aviar.
5
The reason is that, as with supervised discretiza-
tion, we have actually looked at the class labels in
the test data while selecting attributesthe best
attributes were chosen by peeking at the test data.
As we already know (see Tutorial 2), using the test
data to inuence the construction of a model bi-
ases 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 se-
lection panel to the training set only.
La razon es que, al igual que con discretizacion su-
pervisado, que se han mirado en las etiquetas de
clase en los datos de prueba, mientras que la se-
leccion de los atributosla mejor los atributos
fueron elegidos por espiar a los datos de prueba.
Como ya sabemos (ver Tutorial 2), utilizando los
datos de prueba para inuir en la construccion de
un modelo de los sesgos de la exactitud estima-
ciones obtenidas: La precision de medida es prob-
able que sea mayor de lo que se obtiene cuando el
modelo se implementa en nuevos datos. Para evi-
tar esto, se puede dividir manualmente los datos en
conjuntos de entrenamiento y de prueba y aplicar
el comite de seleccion de atributos al conjunto de
entrenamiento solamente.
A more convenient method is to use the
AttributeSelectedClassifer, one of WEKAs
meta-classiers. This allows us to specify an at-
tribute selection method and a learning algorithm
as part of a classication scheme. The Attribute-
SelectedClassier ensures that the chosen set of
attributes is selected based on the training data
only, in order to give unbiased accuracy estimates.
Un metodo mas conveniente es utilizar el
AttributeSelectedClassifer, uno de los meta-
clasicadores de WEKA. Esto nos permite especi-
car un metodo de seleccion de atributos y un al-
goritmo de aprendizaje como parte de un esquema
de clasicacion. El AttributeSelectedClassier
asegura que el conjunto seleccionado de atribu-
tos se selecciona basandose en los datos de entre-
namiento solamente, a n de dar estimaciones ins-
esgadas precision.
Now we test the various attribute selection meth-
ods tested above in conjunction with NaiveBayes.
Naive Bayes assumes (conditional) independence
of attributes, so it can be aected if attributes
are redundant, and attribute selection can be very
helpful.
Ahora ponemos a prueba los metodos de se-
leccion de atributos diferentes probado anterior-
mente en relacion con NaiveBayes. Bayesiano
asume (condicional) la independencia de los atrib-
utos, por lo que puede verse afectado si los atrib-
utos son redundantes, y la seleccion de atributos
puede ser muy util.
You can see the eect of redundant
attributes on naive Bayes by adding
copies of an existing attribute to a
dataset using the unsupervised lter 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 redun-
dantes en Bayes ingenuo mediante la adicion de
copias de un atributo existente a un conjunto de
datos utilizando la clase de ltro sin supervision
weka.filters.unsupervised.attribute.Copy
en el panel de Preprocess. Cada copia es,
obviamente, una correlacion perfecta con el
original.
Ex. 10: Load the diabetes classication data in
diabetes.arff and start adding copies of
the rst attribute in the data, measuring the
performance of naive Bayes (with useSu-
pervisedDiscretization turned on) using
cross-validation after you have added each
copy. What do you observe?
Ex. 10: carga los datos de clasicacion de la dia-
betes diabetes.arff y comenzar a agregar
copias de la primera cualidad de los datos,
medir el rendimiento de Bayes naive (con
useSupervisedDiscretization encendido)
con validacion cruzada despues de haber
agregado cada copia. Que observa?
Let us now check whether the three attribute se-
lection methods from above, used in conjunction
with AttributeSelectedClassier and Naive-
Bayes, successfully eliminate the redundant at-
tributes. The methods are:
Vamos ahora a comprobar si los tres metodos
de seleccion de atributos de arriba, se uti-
liza junto con AttributeSelectedClassier y
NaiveBayes, con exito eliminar los atributos re-
dundantes. Los metodos 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 AttributeSelect-
edClassier to see the eect 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 dia-
betes data contains eight attributes (excluding the
class). Note also that you should specify Naive-
Bayes as the classier to be used inside the wrap-
per method, because this is the classier that we
want to select a subset for.
Ejecutar cada metodo dentro de AttributeSe-
lectedClassier para ver el efecto en la cruz-
validado la exactitud y vericar el subconjunto de
atributos seleccionados por cada metodo. Tenga
en cuenta que es necesario especicar el n umero
de atributos clasico a utilizar para el metodo de
Ranker. Ponga esto a ocho, porque los datos de
la diabetes original contiene ocho atributos (con
exclusion de la clase). Tenga en cuenta tambien
que debe especicar NaiveBayes como el clasi-
cador para ser utilizado en el metodo de envoltura,
porque este es el clasicador que desea seleccionar
un subconjunto de.
Ex. 11: What can you say regarding the perfor-
mance of the three attribute selection meth-
ods? Do they succeed in eliminating redun-
dant copies? If not, why not?
Ex. 11: Que puede decir respecto al rendimiento
de los tres metodos de seleccion de atribu-
tos? No tienen exito en la eliminacion de las
copias redundantes? Si no, por que no?
6 Automatic parameter tuning
Many learning algorithms have parameters that
can aect the outcome of learning. For example,
the decision tree learner C4.5 (J48 in WEKA) has
two parameters that inuence the amount of prun-
ing that it does (we saw one, the minimum number
of instances required in a leaf, in the last tutorial).
The k-nearest-neighbor classier IBk has one that
sets the neighborhood size. But manually tweaking
parameter settings is tedious, just like manually
selecting attributes, and presents the same prob-
lem: the test data must not be used when selecting
parametersotherwise the performance estimates
will be biased.
Muchos algoritmos de aprendizaje tienen
parametros que pueden afectar los resultados
del aprendizaje. Por ejemplo, el arbol de de-
cision C4.5 alumno (J48 en WEKA) tiene dos
parametros que inuyen en la cantidad de la
poda que hace (hemos visto a uno, el n umero
mnimo de casos necesarios en una hoja, en el
ultimo tutorial). El k -clasicador del vecino mas
proximo IBk tiene uno que establece el tama no de
la vecindad. Pero manualmente modicando los
ajustes de parametros es tedioso, al igual que los
atributos seleccionar manualmente, y presenta el
mismo problema: los datos de prueba no debe ser
utilizado cuando los parametros de seleccionlo
contrario las estimaciones de rendimiento se hara
con preferencia.
7
WEKA has a meta classier,
CVParameterSelection, that automatically
searches for the best parameter settings by
optimizing cross-validated accuracy on the train-
ing data. By default, each setting is evaluated
using 10-fold cross-validation. The parameters to
optimize re specied using the CVParameters
eld 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 clasicador,
CVParameterSelection, que busca au-
tomaticamente los mejores valores de los
parametros mediante la optimizacion de cruz-
validado la exactitud de los datos de entre-
namiento. De forma predeterminada, cada
ajuste se evaluo utilizando 10 veces la validacion
cruzada. Los parametros para volver a optimizar
el uso especicado en el campo CVParameters
GenericObjectEditor. Para cada uno de ellos,
tenemos que dar (a) una cadena que le asigna el
nombre utilizando su codigo de letras, (b) una
serie de valores numericos para evaluar, y (c) el
n umero de medidas para tratar en este rango de
(Tenga en cuenta que el parametro se supone que
es numerico.) Haga clic en el boton de More
en la GenericObjectEditor para obtener mas
informacion, 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 neighbor-
hood 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 accu-
racy using default settings, because tuning is per-
formed by applying inner cross-validation runs to
nd the best parameter setting for each training
set occuring in the outer cross-validationand the
latter yields the nal performance estimate.
Para los datos de la diabetes utilizados en la
seccion anterior, el uso CVParameterSelection
IBk en conjunto con el n de seleccionar la
mejor valor para el tama no de la vecindad, que
van desde 1 a 10 en diez pasos. El codigo de le-
tras para el tama no de esta zona: K. La precision
de validacion cruzada de la version parametro a-
nado de IBk es directamente comparable con la
precision con la conguracion predeterminada, ya
que ajuste se realiza mediante la aplicacion de in-
terior validacion cruzada se ejecuta para encontrar
el mejor ajuste de parametros para cada conjunto
de entrenamiento se producen en el exterior vali-
dacion cruzaday los rendimientos de este ultimo
la estimacion nal de ejecucion.
Ex. 12: What accuracy is obtained in each case?
What value is selected for the parameter-
tuned version based on cross-validation on
the full training set? (Note: this value is
output in the Classier output text area.)
Ex. 12: Que precision se obtiene en cada caso?
Que valor se selecciona para la version
parametro anado sobre la base de la val-
idacion cruzada en el conjunto de entre-
namiento completo? (Nota: este valor es la
produccion en el area de texto Classier 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 CV-
Parameters eld. The letter code for the pruning
condence parameter is C, and you should evalu-
ate values from 0.1 to 0.5 in ve 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 parametros de J48.
Podemos utilizar CVParameterSelection para
realizar una b usqueda de la rejilla en ambos
parametros al mismo tiempo de poda mediante
la adicion de varias cadenas de parametros en el
campo CVParameters. El codigo de letras para
el parametro de la conanza de la poda es de C,
y usted debe evaluar los valores de 0,1 a 0,5 en
cinco pasos. El codigo de letras para el parametro
de hoja de tama no mnimo es de M, y se deben
evaluar los valores de 1 a 10 en diez pasos.
8
Ex. 13: Run CVParameterSelection to nd
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 parametros
en la red resultante. Comparar la salida se
llega a la obtenida de J48 con los parametros
por defecto. Tiene una precision cambiado?
Que pasa con el tama no del arbol? Que val-
ores de los parametros han sido seleccionados
por CVParameterSelection para el mod-
elo construido a partir del conjunto de entre-
namiento completo?
9
Practical Data Mining
Tutorial 5: Document Classication
Eibe Frank and Ian H. Witten
May 5, 2011
c 2008-2012 University of Waikato
1 Introduction
Text classication is a popular application of ma-
chine learning. You may even have used it: email
spam lters are classiers that divide email mes-
sages, which are just short documents, into two
groups: junk and not junk. So-called Bayesian
spam lters are trained on messages that have been
manually labeled, perhaps by putting them into
appropriate folders (e.g. ham vs spam).
Clasicacion de texto es una aplicacion popular de
aprendizaje automatico. Puede que incluso lo han
utilizado: los ltros de spam de correo electronico
son los clasicadores que dividen a los mensajes
de correo electronico, que son documentos poco
menos, en dos grupos: basura y no deseado. Los
llamados Bayesiano ltros de spam son entre-
nados en los mensajes que han sido etiquetados
de forma manual, tal vez por su puesta en car-
petas correspondientes (por ejemplo, jamon vs
spam).
In this tutorial we look at how to perform docu-
ment classication using tools in WEKA. The raw
data is text, but most machine learning algorithms
expect examples that are described by a xed set
of attributes. Hence we rst 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 documents label.
En este tutorial vamos a ver como llevar a cabo la
clasicacion de documentos usando herramientas
en WEKA. Los datos en bruto es de texto, pero la
mayora de algoritmos de aprendizaje automatico
esperar ejemplos que se describen mediante un con-
junto jo de atributos. Por lo tanto, primero con-
vertir los datos de texto en una forma adecuada
para el aprendizaje. Esto suele hacerse mediante
la creacion de un diccionario de terminos de todos
los documentos en el corpus de entrenamiento y ha-
ciendo un atributo numerico de cada termino. En-
tonces, para un documento particular, el valor de
cada atributo se basa en la frecuencia del termino
correspondiente en el documento. tambien existe
el atributo de clase, lo que da la etiqueta del doc-
umento.
2 Data with string attributes
WEKAs unsupervised attribute lter
StringToWordVector can be used to convert
raw text into term-frequency-based attributes.
The lter assumes that the text of the documents
is stored in an attribute of type String, which is
a nominal attribute without a pre-specied set of
values. In the ltered data, this string attribute is
replaced by a xed set of numeric attributes, and
the class attribute is put at the beginning, as the
rst attribute.
Atributo sin supervision WEKA el ltro
StringToWordVector se puede utilizar para
convertir el texto en bruto en los atributos plazo
basado en la frecuencia. El ltro 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 especicado
de valores. En los datos ltrados, este atributo
de cadena se sustituye por un conjunto jo de
atributos numericos, y el atributo de la clase se
pone al principio, como el primer atributo.
To perform document classication, we rst
need to create an ARFF le with a string
attribute that holds the documents text
declared in the header of the ARFF le using
@attribute document string, where document
is the name of the attribute. We also need a nom-
inal attribute that holds the documents classica-
tion.
Para realizar la clasicacion de documentos,
primero tenemos que crear un archivo de
ARFF con un atributo de cadena que con-
tiene texto de los documentosdeclarado en
el encabezado del archivo ARFF mediante
@attribute document string, donde document
es el nombre del atributo. tambien necesitamos
un atributo nominal que contiene la clasicacion
del documento.
1
Document text Classication
The price of crude oil has increased signicantly yes
Demand of crude oil outstrips supply yes
Some people do not like the avor of olive oil no
The food was very oily no
Crude oil is in short supply yes
Use a bit of cooking oil in the frying pan no
Table 1: Training documents.
Document text Classication
Oil platforms extract crude oil Unknown
Canola oil is supposed to be healthy Unknown
Iraq has signicant oil reserves Unknown
There are dierent types of cooking oil Unknown
Table 2: Test documents.
Ex. 1: To get a feeling for how this works,
make an ARFF le from the labeled mini-
documents in Table 1 and run String-
ToWordVector with default options on
this data. How many attributes are gener-
ated? Now change the value of the option
minTermFreq to 2. What attributes are
generated now?
Ex. 1: Para tener una idea de como funciona
esto, hacer un archivo ARFF de la etiqueta
mini documentos en la Table 1 y ejecu-
tar StringToWordVector con las opciones
predeterminadas en estos datos. Como se
generan muchos atributos? Ahora cambia
el valor de la opcion de minTermFreq 2.
Queatributos se generan ahora?
Ex. 2: Build a J48 decision tree from the last ver-
sion of the data you generated. Give the tree
in textual form.
Ex. 2: Construir un arbol de decision J48 de la
ultima version de los datos que generan. Dar
el arbol en forma textual.
Usually, the purpose of a classier is to classify new
documents. Lets classify the ones given in Table 2,
based on the decision tree generated from the doc-
uments in Table 1. To apply the same lter to both
training and test documents, we can use the Fil-
teredClassier, specifying the StringToWord-
Vector lter and the base classier that we want
to apply (i.e., J48).
Por lo general, el objetivo de un clasicador para
clasicar los documentos nuevos. Vamos a clasi-
car a las dadas en la Table 2, basado en el arbol de
decision de los documentos generados en la Table 1.
Para aplicar el mismo ltro a los dos documen-
tos de entrenamiento y prueba, podemos usar el
FilteredClassier, especicando el ltro String-
ToWordVector y el clasicador base que quere-
mos aplicar (es decir, J48).
Ex. 3: Create an ARFF le from Table 2, us-
ing question marks for the missing class la-
bels. Congure the FilteredClassier us-
ing default options for StringToWordVec-
tor and J48, and specify your new ARFF
le as the test set. Make sure that you se-
lect Output predictions under More op-
tions... 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 docu-
ments are listed in Table 2)?
Ex. 3: Crear un archivo de ARFF de la Table 2,
con signos de interrogacion para las etique-
tas de clase perdido. Congurar el Fil-
teredClassier utilizando las opciones pre-
determinadas para StringToWordVector
y J48, y especicar el archivo ARFF nuevo
el equipo de prueba. Aseg urese de que selec-
ciona Output predictions en More op-
tions... Classify en el panel. Mira el mod-
elo y las predicciones que genera, y vericar
que sean compatibles. Cuales son las predic-
ciones (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 doc-
ument classiers. ReutersCorn-train.arff
and ReutersGrain-train.arff are sets
of training data derived from this col-
lection; 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 dier.
In the rst 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 classier 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 coleccion estandar de los artculos
agencia de noticias que es ampliamente uti-
lizado para la evaluacion de los clasicadores
de documentos. ReutersCorn-train.arff
y ReutersGrain-train.arff son conjun-
tos de datos de aprendizaje derivados de
esta coleccion; ReutersCorn-test.arff y
ReutersGrain-test.arff son correspondientes
unidades de prueba. Los documentos reales en
los datos de maz y el grano son las mismas,
solo las etiquetas son diferentes. En el primer
conjunto de datos, artculos que hablan de temas
relacionados con el maz tiene un valor de la clase
de 1 y el resto a 0, el objetivo es construir un
clasicador que se puede utilizar para identicar
los artculos que hablan de maz. En el segundo,
el etiquetado similar se realiza con respecto a
cuestiones relacionadas con granos, y el objetivo es
identicar estos artculos en el equipo de prueba.
Ex. 4: Build document classiers for the two
training sets by applying the FilteredClas-
sier with StringToWordVector using (a)
J48 and (b) NaiveBayesMultinomial, in
each case evaluating them on the correspond-
ing test set. What percentage of correct clas-
sications is obtained in the four scenarios?
Based on your results, which classier would
you choose?
Ex. 4: Construir clasicadores de documentos
para los dos conjuntos de formacion medi-
ante la aplicacion de la FilteredClassier
StringToWordVector con el uso (a) J48 y
(b) NaiveBayesMultinomial, en cada caso
a la evaluacion en el sistema de la prueba
correspondiente. Que porcentaje de clasi-
caciones correctas se obtiene en los cuatro
escenarios? Con base en sus resultados, que
clasicador elegiras?
The percentage of correct classications is not the
only evaluation metric used for document classi-
cation. WEKA includes several other per-class
evaluation statistics that are often used to eval-
uate information retrieval systems like search en-
gines. These are tabulated under Detailed Ac-
curacy By Class in the Classier output text
area. They are based on the number of true posi-
tives (TP), number of false positives (FP), number
of true negatives (TN), and number of false neg-
atives (FN) in the test data. A true positive is
a test instance that is classied correctly as be-
longing 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 de-
ned analogously. The statistics output by WEKA
are computed as follows:
El porcentaje de clasicaciones correctas no es la
metrica de evaluacion utilizado para la clasicacion
de documentos. WEKA incluye varias otras es-
tadsticas de evaluacion por cada clase que se uti-
lizan con frecuencia para evaluar los sistemas de
recuperacion de informacion como los motores de
b usqueda. Estos son tabulados en Detailed Ac-
curacy By Class en el area de texto Classier
output. Se basan en el n umero de verdaderos pos-
itivos (VP), el n umero de falsos positivos (FP), el
n umero de verdaderos negativos (VN), y el n umero
de falsos negativos (FN) en los datos de prueba. A
positivos true es un ejemplo de prueba que esta
clasicado correctamente como pertenecientes a la
clase de destino en cuestion, mientras que un fal-
sos positivos es un ejemplo (negativo) que esta mal
asignado a la clase de destino. FN y TN se dene
de manera similar. La salida de las estadsticas 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) Precision: TP / (TP + FP)
Recall: TP / (TP + FN) Recuperacion: TP / (TP + FN)
F-Measure: the harmonic mean of precision
and recall
(2/F = 1/precision + 1/recall).
F-Medida: la media armonica de precision y
recuperacion
(2/F = 1/precision +1/recuperacion).
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 val-
ues are attained.
Ex. 5: Con base en las formulas, Cuales son los
mejores valores posibles para cada una de las
estadsticas en esta lista? Describa en Ingles
cuando estos valores se alcanzan.
The Classier Output table also gives the ROC
area, which diers from the other statistics be-
cause it is based on ranking the examples in the
test data according to how likely they are to be-
long to the positive class. The likelihood is given
by the class probability that the classier predicts.
(Most classiers in WEKA can produce probabili-
ties in addition to actual classications.) The ROC
area (which is also known as AUC) is the proba-
bility 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 classier.
En la tabla Classier Output tambien da la
ROC area, que diere de las estadsticas 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 esta dada por la probabilidad de clase
que el clasicador predice. (La mayora de los
clasicadores en WEKA pueden producir proba-
bilidades, ademas de las clasicaciones actuales.)
La zona de la Rep ublica de China (que tambien
se conoce como AUC) es la probabilidad de que
un ejemplo elegido al azar positivo en los datos
de prueba se clasica por encima de un ejemplo
elegido al azar negativas, sobre la base de la clasi-
cacion producido por el clasicador.
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 classier has not learned
anything from the training data.
El mejor resultado es que todos los ejemplos pos-
itivos se sit ua 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 clasi-
cacion 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 clasicador no
ha aprendido nada de los datos de entrenamiento.
Ex. 6: Which of the two classiers used above
produces the best AUC for the two Reuters
datasets? Compare this to the outcome for
percent correct. What do the dierent out-
comes mean?
Ex. 6: Cual de los dos clasicadores utilizados
anterior produce los mejores AUC para los
dos conjuntos de datos de Reuters? Com-
pare esto con los resultados de porcentaje de
respuestas correctas. Quesignican los difer-
entes resultados?
4
Ex. 7: Interpret in your own words the dierence
between the confusion matrices for the two
classiers.
Ex. 7: Interpretar en sus propias palabras la
diferencia entre las matrices de confusion
para los dos clasicadores.
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 dierent clas-
sication thresholds on the probabilities predicted
by the classier.
Existe una relacion estrecha entre ROC Area y la
relacion de TP Rate/FP Rate. En lugar de sim-
plemente obtener un solo par de valores para las
tasas de positivos verdaderos y falsos, toda una se-
rie de pares de valores se puede obtener mediante la
imposicion de diferentes umbrales de clasicacion
de las probabilidades predichas por el clasicador.
By default, an instance is classied as positive
if the predicted probability for the positive class is
greater than 0.5; otherwise it is classied as neg-
ative. (This is because an instance is more likely
to be positive than negative if the predicted prob-
ability 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 ra-
tio TP Rate/FP Rate. Repeating this with dif-
ferent 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 Visu-
alize threshold curve.
De forma predeterminada, una instancia se clasi-
ca como positivo si la probabilidad predicha
para la clase positivo es superior a 0,5, de lo con-
trario se clasica como negativa. (Esto se debe
a un caso es mas 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 un otro valor
entre 0 y 1, y volver a calcular la proporcion de
TP Rate/FP Rate. Repetir esto con diferentes
umbrales produce lo que se llama ROC curve.
Se puede mostrar en WEKA haciendo clic dere-
cho sobre una entrada en la lista de resultados y
la seleccion 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 classier 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 funcion del
clasicador que usa, esta parcela puede ser muy
suave, o puede ser bastante discretos. Lo intere-
sante es que si se conecta los puntos de muestra en
el graco por las lneas, y calcular el area bajo la
curva resultante, se obtiene el ROC Area discu-
tido arriba! Ah es donde la AUC acrnimo de la

Area de la ROC viene de:

Area bajo la curva.


Ex. 8: For the Reuters dataset that produced the
most extreme dierence 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 mas extrema en el
ejercicio 6 anterior, visita las curvas ROC
para la clase 1. Hacer una estimacion muy
aproximada del area debajo de cada curva, y
explicarlo con palabras.
Ex. 9: What does the ideal ROC curve corre-
sponding to perfect performance look like (a
rough sketch, or a description in words, is
sucient)?
Ex. 9: Quehace el ideal de la curva ROC corre-
spondiente a buscar un rendimiento perfecto
como (un boceto o una descripcion verbal, es
suciente)?
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 graca
de usuario, tambien puede trazar otros tipos de
curvas, por ejemplo, una precision/recuperacion
curva, con Recall en el eje x y Precision en el
y eje. Este graco de precision contra el recuerdo
de cada umbral de probabilidad evaluada.
Ex. 10: Change the axes to obtain a preci-
sion/recall curve. What shape does the ideal
precision/recall curve corresponding to per-
fect performance have (again a rough sketch
or verbal description is sucient)?
Ex. 10: Cambiar los ejes para obtener una pre-
cision/recuperacion curva. Queforma tiene
la ideal precision/recuperacion curva que
corresponde a un rendimiento perfecto que
(de nuevo un croquis o descripcion verbal es
suciente)?
4 Exploring the StringToWordVector lter
By default, the StringToWordVector lter sim-
ply makes the attribute value in the transformed
dataset 1 or 0 for all raw single-word terms, de-
pending on whether the word appears in the doc-
ument or not. However, there are many options
that can be changed, e.g:
De forma predeterminada, el ltro de String-
ToWordVector, simplemente hace que el valor
del atributo en el conjunto de datos transforma-
dos 1 o 0 para todos los terminos 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 TF 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 TF FDI
valores que son populares para la repre-
sentacion de documentos en aplicaciones de
recuperacion de informacion.
stemmer allows you to choose from dierent
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 de-
tiene se suprimiran las palabras. Las pal-
abras vacas son poco informativos palabras
comunes (por ejemplo, a, la).
tokenizer allows you to choose a dier-
ent tokenizer for generating terms, e.g. one
that produces word n-grams instead of single
words.
tokenizer le permite elegir un analizador de
terminos diferentes para generar, por ejem-
plo, que produce la palabra n-gramos en lu-
gar de palabras sueltas.
6
There are several other useful options. For more
information, click on More in the GenericOb-
jectEditor.
Hay varias opciones utiles. Para obtener mas in-
formacion, haga clic en More en la GenericOb-
jectEditor.
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 classier?
(Note: an exhaustive search is not required.)
Ex. 11: Experimento con las opciones que estan
disponibles. Queopciones le dan un buen
valor de AUC para los dos conjuntos de datos
anterior, con NaiveBayesMultinomial en
el clasicador? (Nota: una b usqueda exhaus-
tiva 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 WEKAs AttributeSelect-
edClassier, using ranking with InfoGainAt-
tributeEval and the Ranker search, to try and
eliminate attributes that are not so useful. As
before we need to use the FilteredClassier to
transform the data before it is passed to the At-
tributeSelectedClassier.
A menudo, no todos los atributos (es decir,
terminos) son importantes para la clasicacion
de documentos, ya que muchas palabras pueden
ser irrelevantes para determinar el tema de un
artculo. Podemos utilizar AttributeSelected-
Classier WEKA, utilizando ranking con Info-
GainAttributeEval Ranker y la b usqueda, para
tratar de eliminar los atributos que no son tan
utiles. Al igual que antes tenemos que utilizar
el FilteredClassier para transformar los datos
antes de que se pasa al AttributeSelectedClas-
sier.
Ex. 12: Experiment with this set-up, using de-
fault options for StringToWordVector
and NaiveBayesMultinomial as the clas-
sier. Vary the number of most-informative
attributes that are selected from the info-
gain-based ranking by changing the value
of the numToSelect eld 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 NaiveBayes-
Multinomial en el clasicador. Variar el
n umero de los atributos mas informativo
que se seleccionan de la clasicacion de
informacion de ganancia basado en cambiar
el valor del campo en el numToSelect
Ranker. Registre los valores del AUC de
obtener. Quen umero de atributos que ofrece
la mejor AUC para los dos conjuntos de
datos anteriores? Quevalores AUC son los
mejores que logran obtener? (De nuevo, una
b usqueda 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 promi-
nent data mining techniques. In this tutorial, we
will work with Apriorithe association rule min-
ing algorithm that started it all. As you will see, it
is not straightforward to extract useful information
using association rule mining.
La minera de reglas de asociacion es una de las
tecnicas de minera de datos mas destacados. En
este tutorial, vamos a trabajar con Apriorila
regla de asociacion algoritmo de minera de datos
que lo empezo todo. Como se vera, no es facil de
extraer informacion util con la minera de reglas
de asociacion.
2 Association rule mining in WEKA
In WEKAs 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 de-
fault method is Apriori, which we use in this tuto-
rial. WEKA contains a couple of other techniques
for learning associations from data, but they are
probably more interesting to researchers than prac-
titioners.
En Explorer WEKA, tecnicas para la extraccion
de reglas de asociacion se accede mediante el panel
de Associate. Debido a que esta es una tecnica de
minera de datos puramente exploratoria, no hay
opciones de evaluacion, y la estructura del panel
es simple. El metodo predeterminado es Apriori,
que utilizamos en este tutorial. WEKA contiene
un par de otras tecnicas para el aprendizaje de las
asociaciones de los datos, pero son probablemente
mas interesante para los investigadores de los pro-
fesionales.
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 al-
gorithm expects data that is purely nominal: nu-
meric attributes must be discretized rst. 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 condence measure given
in parentheses after each one. The number follow-
ing a rules antecedent shows how many instances
satisfy the antecedent; the number following the
conclusion shows how many instances satisfy the
entire rule (this is the rules support). Because
both numbers are equal for all ten rules, the con-
dence of every rule is exactly one.
Para tener una idea de como aplicar Apriori,
empezamos por las normas de la minera de la
weather.nominal.arff datos que se utilizo en el
Tutorial 1. Tenga en cuenta que este algoritmo es-
pera de datos que es puramente nominal: los atrib-
utos numericos deben ser discretos en primer lugar.
Despues de cargar los datos en el panel de Prepro-
cess, pulsa el boton Start en el panel de Asso-
ciate para ejecutar Apriori con las opciones pre-
determinadas. Hace salir diez reglas, ordenadas de
acuerdo a la medida de conanza entre parentesis
despues de cada uno. El n umero siguiente an-
tecedente de una regla se muestra como muchos
casos cumplen el antecedente, el n umero despues
de la conclusion muestra cuantas instancias satis-
facer toda la regla (esta es la regla de apoyo).
Debido a que ambos n umeros son iguales para to-
das las diez reglas, la conanza de cada regla es
exactamente uno.
1
In practice, it is tedious to nd minimum sup-
port and condence values that give satisfactory
results. Consequently WEKAs Apriori runs the
basic algorithm several times. It uses same user-
specied minimum condence value throughout,
given by the minMetric parameter. The sup-
port 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 (upper-
BoundMinSupport, which should invariably be
left at 1.0 to include the entire set of instances).
In each iteration the support is decreased by a
xed amount (delta, default 0.05, 5% of the in-
stances) until either a certain number of rules has
been generated (numRules, default 10 rules) or
the support reaches a certain minimum mini-
mum level (lowerBoundMinSupport, default
0.1typically rules are uninteresting if they apply
to only 10% of the dataset or less). These four
values can all be specied by the user.
En la practica, es tedioso para encontrar un apoyo
mnimo y los valores de la conanza que dan re-
sultados satisfactorios. En consecuencia WEKAs
Apriori corre el algoritmo basico en varias oca-
siones. Utiliza el mismo valor mnimo especicado
por el usuario a traves de la conanza, dado por
el parametro minMetric. El nivel de soporte se
expresa como un porcentaje del n umero total de
casos (14 en el caso de los datos meteorologicos),
como una relacion entre 0 y 1. El nivel mnimo
de apoyo se inicia en un determinado valor (up-
perBoundMinSupport, que invariablemente se
debe dejar en 1.0 para incluir todo el conjunto
de casos). En cada iteracion el apoyo se reduce
en una cantidad ja (delta, por defecto 0.05, 5%
de los casos) hasta que un cierto n umero de re-
glas se ha generado (numRules, por defecto 10
normas) o el apoyo llega a un cierto mnimo
mnimo nivel (lowerBoundMinSupport, por
defecto 0.1normalmente reglas son poco intere-
santes si se aplican a solo el 10% del conjunto de
datos o menos). Estos cuatro valores pueden ser
especicados por el usuario.
This sounds pretty complicated, so let us examine
what happens on the weather data. From the out-
put in the Associator output text area, we see
that the algorithm managed to generate ten rules.
This is based on a minimum condence level of 0.9,
which is the default, and is also shown in the out-
put. 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 dif-
ferent values for the minimum support. The nal
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 meteo-
rologicos. Desde la salida en el area de texto
Associator output, vemos que el algoritmo de
gestion para generar diez reglas. Esto se basa en
un nivel de conanza mnimo de 0.9, que es el pre-
determinado, y tambien se muestra en la salida.
El Number of cycles performed, que se muestra
como 17, nos dice que Apriori era en realidad eje-
cuta 17 veces para generar estas normas, con 17
valores diferentes de la ayuda mnima. El coste
nal, que corresponde a la salida que se ha gener-
ado, es de 0,15 (que corresponde a 0.15 14 2
instances).
By looking at the options in the GenericOb-
jectEditor, we can see that the initial value for
the minimum support (upperBoundMinSup-
port) is 1 by default, and that delta is 0.05. Now,
1 17 0.05 = 0.15, so this explains why a mini-
mum support value of 0.15 is reached after 17 iter-
ations. Note that upperBoundMinSupport is
decreased by delta before the basic Apriori algo-
rithm is run for the rst time.
Al mirar las opciones de la GenericObjectEdi-
tor, podemos ver que el valor inicial de la ayuda
mnima (upperBoundMinSupport) es 1 por de-
fecto, y que delta es de 0,05. Ahora, 1170.05 =
0, 15, as que esto explica por que un valor mnimo
de apoyo de 0,15 que se llego despues de 17 itera-
ciones. Tenga en cuenta que upperBoundMin-
Support delta es disminuido por antes de la base
Apriori algoritmo se ejecuta por primera vez.
2
Minimum condence Minimum support Number of rules
0.9 0.3
0.9 0.2
0.9 0.1
0.8 0.3
0.8 0.2
0.8 0.1
0.7 0.3
0.7 0.2
0.7 0.1
Table 1: Total number of rules for dierent values of minimum condence 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 in-
stances, 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 dif-
ferent item sets and the number of instances that
support them are shown. Try this.
El area de texto Associator output tambien
muestra el n umero de conjuntos de tems fre-
cuentes que se encontraron, con base en el ultimo
valor de la ayuda mnima que fue juzgado (es de-
cir, 0.15 en este ejemplo). Podemos ver que, dado
un apoyo mnimo de dos casos, hay 12 conjun-
tos de punto del tama no de una, 47 conjuntos de
punto del tama no de dos, 39 conjuntos de punto
del tama no de tres, y seis conjuntos de punto del
tama no de cuatro. Al establecer outputItemSets
a true antes de ejecutar el algoritmo, todos los
conjuntos de tems diferentes y el n umero de casos
que los apoyan se muestran. Pruebe esto.
Ex. 1: Based on the output, what is the support
of the item set
outlook=rainy
humidity=normal
windy=FALSE
play=yes?
Ex. 1: Sobre la base de la salida, lo que es el so-
porte del tema conjunto
perspectivas=lluvias
humedad=normal
ventoso=FALSO
jugar=s`?
Ex. 2: Suppose we want to generate all rules with
a certain condence and minimum support.
This can be done by choosing appropriate
values for minMetric, lowerBoundMin-
Support, and numRules. What is the to-
tal number of possible rules for the weather
data for each combination of values in Ta-
ble 1?
Ex. 2: Supongamos que desea generar todas
las reglas con cierta conanza y el apoyo
mnimo. Esto se puede hacer eligiendo val-
ores adecuados para minMetric, lower-
BoundMinSupport, y numRules. Cual
es el n umero total de posibles reglas para los
datos del tiempo para cada combinacion de
valores de la Table 1?
3
Apriori has some further parameters. If signif-
icanceLevel is set to a value between zero and
one, the association rules are ltered based on a

2
test with the chosen signicance level. How-
ever, applying a signicance test in this context
is problematic because of the so-called multiple
comparison problem: if we perform a test hun-
dreds of times for hundreds of association rules, it
is likely that a signicant eect will be found just
by chance (i.e., an association seems to be statis-
tically signicant when really it is not). Also, the

2
test is inaccurate for small sample sizes (in this
context, small support values).
Apriori tiene algunos parametros mas. Si signif-
icanceLevel se establece en un valor entre cero
y uno, las reglas de asociacion se ltran sobre la
base de un
2
la prueba con el nivel de signicacion
elegido. Sin embargo, la aplicacion de una prueba
de signicacion en este contexto es problematico
debido a los llamados problemas de comparacion
m ultiple: si realizamos una prueba cientos de ve-
ces por cientos de reglas de asociacion, es probable
que un efecto signicativo se encuentran solo por
casualidad (es decir, una asociacion parece ser es-
tadsticamente signicativa, cuando en realidad no
lo es). Ademas, el
2
la prueba es inexacto para
peque nos tama nos de muestra (en este contexto,
los valores de apoyar a los peque nos).
There are alternative measures for ranking rules.
As well as Condence, Apriori supports Lift,
Leverage, and Conviction. These can be se-
lected using metricType. More information is
available by clicking More in the GenericOb-
jectEditor.
Hay medidas alternativas para las reglas de clasi-
cacion. Ademas de Condence, Apriori Lift
apoya, Leverage y Conviction. Estos pueden ser
seleccionados con metricType. Mas informacion
esta disponible haciendo clic More en el Generi-
cObjectEditor.
Ex. 3: Run Apriori on the weather data with
each of the four rule ranking metrics, and
default settings otherwise. What is the top-
ranked rule that is output for each metric?
Ex. 3: Ejecutar Apriori en la informacion del
tiempo con cada uno de los cuatro indi-
cadores regla de clasicacion, y la congu-
racion por defecto de otra manera. Cual es
la primera regla de clasicacion que se emite
para cada metrica?
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 in-
cludes their party aliation as a binary attribute.
This is a purely nominal dataset with some miss-
ing values (actually, abstentions). It is normally
treated as a classication problem, the task being
to predict party aliation based on voting pat-
terns. However, we can also apply association rule
mining to this data and seek interesting associa-
tions. More information on the data appears in
the comments in the ARFF le.
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 nos 80, y tambien in-
cluye su aliacion a un partido como un atributo
binario. Se trata de un conjunto de datos pura-
mente nominal con algunos valores que faltan (de
hecho, abstenciones). Normalmente se trata como
un problema de clasicacion, la tarea que para pre-
decir aliacion a un partido basado en los patrones
de voto. Sin embargo, tambien podemos aplicar
la minera de reglas de asociacion a estos datos y
buscar asociaciones interesantes. Mas informacion
sobre los datos aparecen en los comentarios en el
archivo ARFF.
Ex. 4: Run Apriori on this data with default set-
tings. Comment on the rules that are gener-
ated. Several of them are quite similar. How
are their support and condence values re-
lated?
Ex. 4: Ejecutar Apriori en estos datos con la
conguracion predeterminada. Opina sobre
las reglas que se generan. Varios de ellos
son bastante similares. Como son su apoyo
y conanza 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?
Ex. 5: Es interesante ver que ninguna de las re-
glas en la salida predeterminada implican
Clase=republicana. Por que crees que es?
4 Market basket analysis
A popular application of association rule mining is
market basket analysisanalyzing customer pur-
chasing habits by seeking associations in the items
they buy when visiting a store. To do market bas-
ket 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 aplicacion popular de la minera de reglas
de asociacion es el analisis de la cestaanalizar
los habitos de compra de los clientes mediante
la b usqueda de asociaciones en los productos que
compran al visitar una tienda. Para hacer analisis
de la cesta de WEKA, cada transaccion se codi-
ca como una instancia cuyos atributos represen-
tan los artculos de la tienda. Cada atributo tiene
un unico valor: si una transaccion en particular
no lo contiene (es decir, el cliente no comprar ese
artculo en particular), esto se codica 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 supermar-
ket. Take a look at this le using a text editor
to verify that you understand the structure. The
main point of this exercise is to show you how dif-
cult it is to nd any interesting patterns in this
type of data!
Su trabajo consiste en extraer datos superme-
rcado para las asociaciones. Los datos de
supermarket.arff se obtuvo de un verdadero su-
permercado 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 difcil que
es encontrar cualquier patrones interesantes en este
tipo de datos!
Ex. 6: Experiment with Apriori and investigate
the eect of the various parameters discussed
above. Write a brief report on your investi-
gation and the main ndings.
Ex. 6: Experimente con Apriori e investigar el
efecto de la diversos parmetros discutidos an-
teriormente. Escriba un breve informe en su
investigacin y las conclusiones principales.
5