Con valores desconocidos, en un algoritmo de covering lo mejor es hacer como si no aparecieran en ninguna condición (ignorarlos).
En este sentido, los algoritmos que aprenden decision lists tienen cierta ventaja, ya que ejemplos que parecen difíciles al principio, se van quedando y al final se pueden resolver, en general, más fácilmente.
Los atributos numéricos se pueden tratar igual que con los árboles.
Pruning:
Una forma de evaluar si una regla es buena es considerar la probabilidad de que una regla aleatoria nos de resultados iguales o mejores que la regla a considerar, basados en la mejora en ejemplos positivos cubiertos.
Idea: generar reglas que cubran puros ejemplos positivos. Esta regla es probable que este sobre-especializada. Lo que se hace es que se elimina el último término que se añadio y se verifica si esta regla es mejor a la anterior (ver abajo). Este proceso se repite hasta que no existan mejoras (ver tabla 3.5).
Este algoritmo no garantiza encontrar las mejores reglas por 3 razones principales:
Sin embargo, el procedimiento es bueno y rápido.
Medida de Evaluación para reducción de reglas:
Cuál es la probabilidad que de una regla seleccionada aleatoriamente
con la misma cantidad de ejemplos que cubre
tenga el mismo
desempeño?
Esto es, una regla que cubra
casos, de los cuales
sean de la
clase
(sin reemplazo):
Donde
es número de instancias de la clase que la regla
selecciona,
es el número total de instancias que cubre la regla,
es el número total de instancias de la clase, y
es el número
total de instancias.
Si queremos ver la probabilidad de que cubra
casos o más,
entonces:
Valores pequeños indican que la regla es buena, ya que es muy poco probable que la regla sea construida por casualidad.
Como este es muy costoso de calcular, se pueden hacer
aproximaciones. Si el número de ejemplos es grande, la
probabilidad de que exactamente
ejemplos de los
sean de clase
(con reemplazo) es:
que corresponde a una distribución binomial.
La función acumulada se puede aproximar a una función beta de la siguiente forma:
Todo esto (simplificación de reglas) se puede hacer con un subconjunto del conjunto de ejemplos de entrenamiento (reduced error pruning).
Variantes: IREP (Incremental REP) simplifica reglas cada vez
que se construyen usando:
Sin embargo, le da la misma importancia a los ejemplos negativos no
cubiertos y los positivos cubiertos. Por lo que si una regla cubre
2000 (
) de 3,000, osea que tiene 1,000 mal (
) es evaluada mejor
que una regla que cubre 1,000 (
) de 1,001 (
).
Otra medida popular es:
Pero sufre de problemas parecidos.
RIPPER
Una variante que obtiene buenos resultados, es construir un conjunto de reglas usando covering, reducirlas usando alguna heurística como las de arriba con un conjunto de entrenamiento separado, y luego ``optimizar'' al mismo tiempo ese conjunto de reglas (RIPPER).
RIPPER utiliza varias medidas e ideas al mismo tiempo.
Una vez que construye un conjunto inicial de reglas, toma una regla
del conjunto total de reglas y la hace crecer (revision)
y también hace crecer una nueva regla desde el principio.
Al final se queda con la regla original o alguna de las otras dos (la que hizo crecer o construyo desde cero) pero tomando en cuenta el error sobre el conjunto total de las reglas.
Construir reglas usando árboles
Es posible crear reglas directamente de un árbol de decisión, sin embargo, las reglas tienden a ser más complejas de lo necesario.
Se pueden utilizar los mecanismos planteaedos en la sección anterior para ir podando las reglas.
Una alternativa es combinar una estrategia de covering con una de splitting.
Para construir una regla se construye un árbol podado (splitting) y la hoja con la mejor covertura se transforma en una regla. Una vez construida una regla se eliminan todos los ejemplos que cubre (covering) y se repite el proceso.
En lugar de construir un árbol completo, se construyen árboles parciales, expandiendo las hojas con mejores medidas de entropía.
Este esquema tiende a producir conjuntos de reglas simples con muy buen desempeño.
Ripple-down rules
La idea es constuir primero las reglas que cubren la mayor cantidad de casos y luego irlas afinando mediante excepciones.
Primero se toma la clase mayoritaria de entrada.
Todo lo que no se cumpla se toma como una excepción a esta.
Se busca la mejor regla (la que cubra más casos) de otra clase y se añade como una excepción.
Esto divide de nuevo los datos en los que cumplen con esa nueva condición y los que no cumplen.
Dentro de los que no cumplen de nuevo se busca la mejor regla de otra clase y se añade como excepción, y así sucesivamente hasta que se cubran todos los casos.
Una de las ventajas de estas reglas es que la mayoría de los ejemplos se cubren por las reglas de más alto nivel, y las de bajo nivel representan realmente las excepciones.
Reglas que Consideran Relaciones
En los casos anteriores las reglas consideran la prueba de un atributo contra una constante.
Estas son reglas proposicionales porque el lenguaje atributo-valor que usamos para crear las reglas tiene el mismo poder que el cálculo proposicional.
Algunas veces requerimos reglas más expresivas para poder expresar relaciones entre los ejemplos.
Por ejemplo, en el dominio de los objetos geométricos, podemos tener las siguientes reglas proposicionales:
If width
3.5 and weight
7 then lying
If height
3.5 then standing
Sin embargo, si vemos varios ejemplos de este dominio, notamos que "los bloques con clase "standing" (de pie) tienen más altura que anchura" y es posible generar las reglas:
If width
heigh then lying
if height
width then standing
En este caso el valor particular de la altura y ancho ya no son importantes, solo el resultado de su comparación.
A este tipo de reglas se les conoce como relacionales porque expresan relaciones entre atributos, en lugar de referirse a hechos sobre un atributo como las proposicionales.
Otro dominio relacional es el de figuras geométricas para representar una casa como un triángulo sobre un cuadrado, donde la forma de un objeto se representa con un atributo, (vea la figura 3.3).
Posteriormente veremos como trabajar con dominios relacionales al tratar los temas: