Herramientas de usuario

Herramientas del sitio


ai:data_mining

¡Esta es una revisión vieja del documento!


Data Mining

El preproceso

Cuando iniciamos un trabajo debemos preprocesar los datos de los que disponemos, esto es adaptarlos para poder tratarlos.

Tratamiento de individuos

Outlayers

Son individuos con valores atípicos, acostumbran a mover la media y son un problema de difícil solución.

Individuos a los que le falten valores

Cuando un individuo tiene una variable sin valor podemos buscar otro individuo, el más cercano a él (mediante distancia euclídea, por ejemplo), y asignarle el mismo valor.

Tratamiento de variables

Feature selection

Consiste en deducir qué variables (características, campos…) son más importantes.
Se busca el grado de relación de las variables con la variable de respuesta (o de salida, es la variable que queremos deducir o que estamos estudiando).
Para saber si una variable está relacionada con otra mediante el p-valor o el coeficiente de correlación.

Feature extraction

Es la creación de nuevas variables a partir de las originales que pueden servir más que estas. Por ejemplo si te dan una imágen con un dígito, realmente lo que te están dando es un conjunto de píxels del cual poco se puede deducir, convendría más extraer información de esos píxels buscando la verticalidad de la imágen, los agujeros que tiene…

Notas

  • Una variable, mientas más falte los individuos menos fiable será.

Clustering

Consiste en agrupar individuos en grupos parecidos.

K-Means

En la nube de puntos que forman los individuos…

  1. Cogemos K centros de gravedad aleatorios (K corresponde al número de grupos), aunque pueden escogerse de otra forma no aleatoria.
  2. Calculamos la distancia entre un punto cualquiera y el centro de gravedad y le asignaremos el más cercano.
  3. Definimos una partición a partir de esto y calculamos su centro de gravedad (no tienen por qué coincidir con puntos).
  4. Con los nuevos centros volvemos a hacer el paso 2, nos aparece otra partición.

Fast K-Means

Una variación del K-Means es el Fast K-means, en el paso 2 cada vez que enlazasemos con un centro de gravedad crearíamos otro nuevo. En una sola pasada se encuentran las clasificaciones pero son peores.

Clustering jerárquico

Calidad del clustering

  • Se buscará hacer grupos el máximo de homogéneos posibles entre sus individuos y lo más diferente posible entre ellos.
  • Una medida para calcular esto es la inercia. Distinguiremos varias inercias:
    • Inercia within: la que hay en los grupos. Suma de inercia de los grupos.
    • Inercia between: la que hay entre los grupos. A partir de los centros de gravedad.
    • Inercia total: La suma de la within y la between.
    • Ratio de inercia: Inercia_Between / Inercia_Total, se buscará hacer la inercia between grande y la within pequeña.

Reglas de asociación

Las reglas de asociación buscan relaciones del estilo “si ocurre X entonces también ocurre Y”, siendo X e Y conjuntos de valores de variables. El ejemplo más sencillo es es el de la cesta de la compra de un supermercado, en este se busca qué productos generalmente se compran a la vez. Por ejemplo si se compran patatas fritas y olivas es muy probable que también se compre coca cola o cerveza, por lo que conociendo estos el super puede ofrecer packs o hacer una reorganización de los productos. Otras aplicaciones pueden ser transacciones bancarias, seguros, soporte de clientes…

Las reglas de asociación no tratan de comprovar hipótesis como hacen las pruebas de hipótesis estadísticas, su objetivo es el de descubrirlas.
Los episodios frecuentes son las ocurrencias de un evento que queremos estudiar, por ejemplo en la cesta de la compra, el evento es una compra de varios productos. Para representarlos se utilizan combinaciones de valores binarios, esto es usar 0 o 1 cuando en el evento hay una ausencia o presencia de los episodios. Es decir, debemos binarizar la base de datos para poder aplicar los métodos que extraen las reglas.

Una regla de asociación se representa de la siguiente forma: X ⇒ Y
Esto significa que cuando en el episodio frecuente un elemento o grupo de elementos X (antecedente) también se da un elemento o grupo de elementos Y (consecuente).

Una regla será válida sólo si supera un soporte y una confianza mínimos. El soporte corresponde a la frecuencia de la regla y la confianza a su fortaleza y se definen (siendo D la proporción de elementos que contiene dicho conjunto):


Existe también el concepto de lift (elevación) que se puede interpretar como la importancia de una regla, pero de forma diferente a lo que ocurre con el soporte y la confianza no existe un lift mínimo, su valor viene de la proporción de fiabilidad de la norma y de la fiabilidad esperada de la norma. Un valor de lift = 1 indica que ese conjunto aparece una cantidad de veces acorde a lo esperado. Un valor de lift > 1 indica que ese conjunto aparece una cantidad de veces superior a lo esperado (por lo que los productos se encuentran más veces de lo normal). Un valor de lift < 1 indica que ese conjunto aparece una cantidad de veces inferior a lo esperado (por lo que se puede intuir que los productos no estan formando parte del mismo conjunto más veces de lo normal).

Algoritmos

Existen distintos algoritmos para extraer reglas de asociación, a destacar el apriori y el de Agrawal.

Ejemplos

Ejemplo 1


En esta tabla de 10 elementos, 5 registros marcan 'Tarda'; 5 'Act1-TBC'; 5 'Tarda' y 'Act1-TBC'; 9 'No Entrenador'; 9 'Piscina'; 8 'No Entrenador' y 'Piscina'; 5 'Tarda' y 'No Entrenador'; 5 'Tarda', 'Act1-TBC' y 'No Entrenador'; 4 'Tarda', 'Act1-TBC', 'Piscina' y 'No Entrenador'.

  • La regla {Tarda, Act1-TBC} ⇒ {No entrenador personal, piscina} tiene una confianza del 80% (4/5) y un soporte del 40%.
  • La regla {Tarda, Atc1-TBC} ⇒ {No entrenador persona} tiene una confianza del 100% (5/5) y un soporte del 50%.
  • La regla {Tarda} ⇒ {No entrenador personal} tiene una confianza del 100% y un soporte del 70%.

Cálculo de reglas de asociación con R

En la librería arules encontramos las siguientes funciones:

  • as(X, “transactions”), binariza un dataset.
  • apriori extrae reglas de asociación de un dataset binarizado, podemos indicar el soporte y la confianza mínimos.
  • inspect muestra el contenido de las reglas.
  • subset filtra reglas.
library (arules)
cat_transac <- as(datos_categorias, "transactions")
rules = apriori (cat_transac, parameter = list (support=0.2, confidence=0.6))
myrules = SORT(rules, by = "lift")[1:5]
inspect(myrules)
myrules.sub = subset(rules, subset = rhs %in% "preferred_brand=Delta")
inspect (myrules.sub)

Notas

ai/data_mining.1309517389.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)