Red de conocimientos sobre prescripción popular - Conocimiento del confinamiento - Utilice el lenguaje r para realizar análisis relevantes

Utilice el lenguaje r para realizar análisis relevantes

Análisis de correlación utilizando lenguaje R

La correlación es una regularidad importante y detectable entre dos o más variables. El propósito del análisis de asociación es descubrir asociaciones ocultas entre elementos de datos en un conjunto determinado de registros de datos y describir la cercanía entre los datos.

Varios conceptos básicos

1. Conjunto de proyectos

Este es un concepto de colección. Un producto de consumo en una canasta de bienes es un artículo y una colección de varios artículos es un conjunto de artículos. Por ejemplo, {cerveza, pañales} forman un conjunto de artículos binarios.

2. Reglas de asociación

Generalmente escritas en forma de , donde x es la premisa e y es el resultado relacionado correspondiente, que se utiliza para representar la correlación implícita dentro de los datos. Por ejemplo, los consumidores que compran pañales suelen comprar cerveza.

La fuerza de la relevancia se controla y evalúa mediante tres conceptos: apoyo, confianza y facilitación.

Por ejemplo, 65.438.000 consumidores compraron bienes, incluidos 65.438.0000 pañales, 2.000 botellas de cerveza, 500 piezas de pan, 800 pañales y pan, 65.438.000 pañales y pan.

3. Soporte (Support)

El soporte se refiere a la posibilidad de que {X, Y} aparezca en todos los conjuntos de elementos, es decir, la probabilidad de que un conjunto de elementos contenga tanto X como Y:

Como primer umbral para establecer reglas de asociación sólidas, esta métrica mide el número de reglas de asociación estudiadas. Al establecer un umbral mínimo (minsup), se eliminan las reglas sin sentido con bajas tasas de ocurrencia y se conservan las reglas implícitas en conjuntos de elementos frecuentes.

Establezca el umbral mínimo en 5, porque el soporte de {pañales, cerveza} es 800/10000=8, lo que cumple con los requisitos básicos de pérdida, se convierte en un conjunto de artículos frecuentes y, sin embargo, conserva la regla; Se admiten {pañales y pan} El grado es 100/10000=1, que se rechaza.

4. Confianza

La confianza representa la probabilidad de que el resultado relevante Y aparezca cuando se cumpla el requisito previo X:

Esto es para generar reglas de asociación sólidas. El segundo. umbral, que mide la confiabilidad "cualitativa" de la regla de asociación en estudio. De manera similar, debemos establecer un umbral mínimo (mincon) de confianza para lograr un mayor filtrado.

Específicamente, cuando el umbral mínimo de confianza se establece en 70, la confianza es 800/1000=80 y la confianza es 800/2000=40, se rechaza.

5. Ascensor

El grado de elevación representa la relación entre la posibilidad de incluir Y bajo la condición de que X esté incluido y la posibilidad de incluir Y en el conjunto de elementos que no lo hace. incluir X:

p>

Este indicador es el mismo que el nivel de confianza. Mide la confiabilidad de las reglas y puede considerarse como un indicador complementario del nivel de confianza.

Algoritmo a priori en r

Pasos del algoritmo:

1. Seleccione todos los conjuntos de elementos que cumplan con el umbral mínimo de soporte, es decir, conjuntos de elementos frecuentes;

2. Encuentre todas las reglas que satisfagan el nivel mínimo de confianza del conjunto de elementos frecuentes.

biblioteca gt (arules) #Cargar paquete de reglas

gtClick_Details=Leer. transacciones ("click_detail.txt", format = "basket", sep = ",", cols = c (1)) # Leer documento txt (el código del documento es ANSI).

gt reglas lt-apriori (haga clic en _ detalle, parámetro = lista (supp = 0.01, conf = 0.5, destino = "reglas")) #Llame al algoritmo a priori.

reglas gt

Conjunto de 419 reglas

gtinspect(rules[1:10])#Ver las diez reglas principales.

Explicación

1) Biblioteca (arules): Carga el paquete de reglas.

Por supuesto, si no ha descargado este paquete antes, primero debe instalar .packages(arules).

2) Click_Details=Leer. transacciones ("click_detail.txt", formato = "cesta", sep = ",", cols = c(1)): leer datos.

read.transactions(archivo, formato =c("cesta ", "single "), sep = NULL,

cols = NULL, rm.duplicates =FALSE, codificación = " desconocido ")

Archivo: nombre del archivo, correspondiente a "click_detail.txt" en click_detail.

Formato: Hay dos formatos de archivo, a saber, "cesta" y "único". click_detail.txt utiliza la cesta de la compra.

Cesta: Una cesta es una cesta. Todo lo que compra un cliente se coloca en la misma cesta, y todas las transacciones del cliente son el resultado de la combinación de la cesta. En el siguiente formulario, cada transacción es independiente.

Formato de archivo:

Proyecto 1, Proyecto 2

Proyecto 1

Proyecto 2, Proyecto 3

Pensamientos después de leer:

Artículo

1 {item1,

Artículo2}

2 {item1}

3 {item2,

Item 3}

Pedido: El significado de pedido, como sugiere el nombre, es una transacción separada. En resumen, el registro de transacción es: el cliente 1 compró el producto 1, el cliente 1 compró el producto 2, el cliente 2 compró el producto 3... (el producto 1, el producto 2, el producto 3 pueden ser un solo producto o varios productos).

trans1 artículo1

trans2 artículo1

Transporte 2 artículo 2

Después de leer:

ID de transacción del proyecto

p>

1 { elemento 1 } trans 1

2 {item1,

item2} transacción 2

Sep: Cómo ¿Están separados los datos del archivo? El valor predeterminado es un espacio y click_detail está separado por comas.

Cols: para la cesta, col=1 significa que la primera columna es el ID de transacción de los datos; si col=NULL, significa que no hay ninguna columna de ID de transacción en los datos para una sola columna; =c(1,2 ) significa que la primera columna es el ID de la transacción y la segunda columna es el ID del proyecto.

Rm.duplicates: ya sea para eliminar duplicados, el valor predeterminado es FALSO.

Codificación: escribí aquí para estudiar el significado de codificación y descubrí que el texto puede no ser del tipo ANSI. Si el TXT es UTF-8, escriba codificación = UTF-8 y estará bien.

3) Reglas lt-apriori (click_detail, parámetro = lista (supp = 0.01, conf = 0.5, target = "rules")): función a priori.

apriori(datos, parámetros=null, apariencia=null, control=null)

datos: datos

Parámetros: Establecer parámetros. De forma predeterminada, parámetro = lista (supp = 0,1, conf = 0,8, Maxlen = 10, Minlen = 1, destino = "reglas").

Suplemento: Nivel de soporte

Conf: Confianza

Maxlen, minlen: el número máximo y mínimo de elementos contenidos en cada conjunto de elementos.

Objetivo: "reglas" o "conjuntos de elementos frecuentes" (reglas de asociación de salida/conjuntos de elementos frecuentes)

Apariencia: restringir los requisitos previos X (izq.) y los resultados de asociación Y (der.) ¿Qué elementos son? incluido en . Por ejemplo, si se establece lhs=beer, solo se generarán las reglas asociadas con la cerveza en lhs. De forma predeterminada, todos los elementos se mostrarán indefinidamente.

Control: controla el rendimiento de la función, por ejemplo, si el conjunto de proyectos se puede ordenar en orden ascendente = 1 o en orden descendente = -1, si se debe informar el progreso al usuario (detallado = F /T)

Agregado

Control vía soporte: reglas. sorted_sup = sort (reglas, by = "support")

Controlado por confianza: reglas. sorted_con = sort (reglas, por = "confianza")

Control por ascensor: reglas. sorted _ lift = sort (rules, by = "lift ")

Algoritmo a priori

Método de dos pasos:

1 Generación de conjuntos de elementos frecuentes: buscar. Encuentre todos los conjuntos de elementos que satisfacen el umbral mínimo de soporte, que se denominan conjuntos de elementos frecuentes;

2 Generación de reglas: para cada conjunto de elementos frecuentes L, busque todos los subconjuntos no vacíos, para cada uno de esos subconjuntos A de; La sobrecarga computacional requerida es mucho mayor que la requerida para la generación de reglas.

Generación de conjuntos de elementos frecuentes

Algunos conceptos:

1. Un conjunto de datos que contiene k elementos puede generar 2 k conjuntos candidatos.

2. Principio de trascendencia: si un conjunto de elementos es frecuente, entonces todos sus subconjuntos son frecuentes (es fácil entender el significado de conjuntos de elementos frecuentes; por el contrario, si un conjunto de elementos es infrecuente, todos sus subconjuntos); También debe ser poco frecuente.

3 Basado en una propiedad clave de la medida de soporte: el soporte de un conjunto de elementos no excederá el soporte de su subconjunto (es fácil entender que el soporte es la probabilidad de * * * coincidencia, suponiendo que el conjunto de elementos {A, B, C} y {A, B} son propios, y que la probabilidad de coincidencia de A, B y C definitivamente no excederá la probabilidad de coincidencia de A y B.

Utilice las reglas anteriores en Apriori, como se muestra en la figura siguiente. Cuando busque conjuntos de elementos frecuentes, escanee de arriba a abajo. Cuando un conjunto de elementos es un conjunto de elementos no frecuente (el soporte de este conjunto de elementos es menor que Minsup). el conjunto de elementos a continuación debe ser un conjunto de elementos no frecuentes. Esta parte se eliminará.

Un ejemplo (en un PPT de Baidu):

Después de entender el significado de conjuntos de elementos frecuentes, Simplemente lo repetí en R. Aparece este ejemplo. Aquí se utiliza el algoritmo eclat, que debería ser similar a a priori:

Código:

item lt-list(

c("Pan", "Leche"),

c("Pan", "Pañal", "Cerveza", "Huevo"),

c(" Leche", "Pañal", "Cerveza" ", "Coca"),

c("Pan", "Leche", "Pañal", "Cerveza"),

c("Pan", "Leche", "Pañales", "Coca")

)

Nombre (elemento) lt- pegar("tr ", c(1:5 ), sep = " ")

item

trans lt-as(item, "transactions") #Convierte la lista en transacciones.

reglas = eclat(trans, parámetro = lista(supp = 0.6,

objetivo = "conjunto de elementos frecuentes"), control = lista(sort=1))

Inspeccionar (reglas) #Ver conjuntos de elementos frecuentes

Resultados después de ejecutar:

gt check (reglas)

Soporte de proyecto

1 {cerveza,

pañales} 0,6

2 {pañales,

leche} 0,6

3 {pan,

p>

Pañales} 0,6

4 {Pan,

Leche} 0,6

5 Cerveza 0,6

6 {Leche} 0,8

7 {Pan} 0,8

8 {Pañales} 0,8

Hay tantos conjuntos de elementos frecuentes en este ejemplo, y luego descubrí que el conjunto de elementos {Pan, leche, pañales} desapareció. Cuando vuelvo a mirar el ejemplo, este conjunto de elementos en realidad solo aparece dos veces, por lo que no existe tal conjunto de elementos.

Generación de reglas

Cada conjunto frecuente de K-items puede generar hasta 2k-2 reglas de asociación.

Divida el conjunto de elementos Y en dos subconjuntos no vacíos X e Y-X, de modo que x->: Y-X satisfaga el umbral de confianza.

Teorema: Si la regla X->Y-X no satisface el umbral de confianza, entonces la regla X'-->Y-X' no debe satisfacer el umbral de confianza, donde

A priori se calcula capa por capa como se muestra a continuación. Cuando se encuentra un conjunto de elementos que no satisface el nivel de confianza, se pueden podar las reglas para todos los subconjuntos del conjunto de elementos.