Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

relieff

Rango importancia de los predictores usando ReliefF o RReliefF algoritmo

Descripción

ejemplo

[ranks,weights] = relieff(X,y,k) Devuelve los rangos y pesos de los predictores para la matriz de datos de entrada y el vector de respuesta, utilizando el algoritmo ReliefF o RReliefF con los vecinos más cercanos.Xyk

Si es numérico, realiza el análisis de RReliefF para la regresión de forma predeterminada.yrelieff De lo contrario, realiza el análisis ReliefF para la clasificación utilizando vecinos más cercanos por clase.relieffk Para obtener más información sobre ReliefF y RReliefF, consulte.Algoritmos

ejemplo

[ranks,weights] = relieff(X,y,k,Name,Value) especifica opciones adicionales mediante uno o varios argumentos de par nombre-valor. Por ejemplo, establece el número de observaciones seleccionadas aleatoriamente para calcular pesos en 10.'updates',10

Ejemplos

contraer todo

Cargue los datos de ejemplo.

load fisheriris

Encuentra los predictores importantes usando 10 vecinos más cercanos.

[ranks,weights] = relieff(meas,species,10)
ranks = 1×4

     4     3     1     2

weights = 1×4

    0.1399    0.1226    0.3590    0.3754

muestra los números predictores enumerados según su ranking.ranks El cuarto predictor es el más importante, y el segundo predictor es el menos importante. proporciona los valores de ponderación en el mismo orden que los predictores.weights El primer predictor tiene un peso de 0,1399, y el cuarto predictor tiene un peso de 0,3754.

Cargue los datos de ejemplo.

load ionosphere

Clasifique los predictores en función de la importancia usando 10 vecinos más cercanos.

[ranks,weights] = relieff(X,Y,10);

Cree una gráfica de barras de ponderaciones de importancia predictora.

bar(weights(ranks)) xlabel('Predictor rank') ylabel('Predictor importance weight')

Seleccione los 5 principales predictores más importantes. Encuentra las columnas de estos predictores en.X

ranks(1:5)
ans = 1×5

    24     3     8     5    14

La columna 24 de es el predictor más importante de.XY

Clasificar predictores categóricos usando.relieff

Cargue los datos de ejemplo.

load carbig

Convierta las variables predictoras categóricas, y a valores numéricos, y combínelos en una matriz de entrada.MfgModelOrigin Especifique la variable de respuesta.MPG

X = [grp2idx(Mfg) grp2idx(Model) grp2idx(Origin)]; y = MPG;

Encuentre los rangos y pesos de las variables predictoras usando 10 vecinos más cercanos y tratando los datos como categóricos.X

[ranks,weights] = relieff(X,y,10,'categoricalx','on')
ranks = 1×3

     2     3     1

weights = 1×3

   -0.0019    0.0501    0.0114

El predictor es el más importante en la predicción.ModelMPG La variable tiene un peso negativo, lo que indica que no es un buen predictor de.MfgMPG

Argumentos de entrada

contraer todo

Datos de predictor, especificados como una matriz numérica. Cada fila de corresponde a una observación, y cada columna corresponde a una variable.X

Tipos de datos: single | double

Datos de respuesta, especificados como vector numérico, Vector categórico, Vector lógico, matriz de caracteres, matriz de cadenas o matriz de celdas de vectores de caracteres.

Tipos de datos: single | double | categorical | logical | char | string | cell

Número de vecinos más cercanos, especificado como un escalar entero positivo.

Tipos de datos: single | double

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: especifica 5 vecinos más cercanos y trata la variable de respuesta y los Datos predictores como categóricos.relieff(X,y,5,'method','classification','categoricalx','on')

Método para calcular pesos, especificado como el par separado por comas que consta de y cualquiera o.'method''regression''classification' Si es numérico, es el método predeterminado.y'regression' De lo contrario, es el valor predeterminado.'classification'

Ejemplo: 'method','classification'

Probabilidades previas para cada clase, especificadas como el par separado por comas que consta de y un valor en esta tabla.'prior'

ValorDescripción
'empirical'Las probabilidades de clase se determinan a partir de las frecuencias de clase.y
'uniform'Todas las probabilidades de clase son iguales.
Vector numéricoExiste un valor para cada nombre de grupo distinto.
Estructura

Una estructura con dos campos:S

  • contiene los nombres de grupo como una variable del mismo tipo que.S.groupy

  • contiene un vector de las probabilidades correspondientes.S.prob

Ejemplo: 'prior','uniform'

Tipos de datos: single | double | char | string | struct

Número de observaciones que se seleccionarán aleatoriamente para las ponderaciones computacionales, especificadas como el par separado por comas que consta de un escalar entero positivo o de uno u otro.'updates''all' De forma predeterminada, utiliza todas las observaciones.relieff

Ejemplo: 'updates',25

Tipos de datos: single | double | char | string

Indicador de predictores categóricos, especificado como el par separado por comas que consta de y cualquiera o.'categoricalx''on''off' Si especifica, trata todos los predictores como categóricos.'on'relieffX De lo contrario, trata todos los predictores como numéricos.X No se pueden mezclar predictores numéricos y categóricos.

Ejemplo: 'categoricalx','on'

Factor de escala de distancia, especificado como el par separado por comas que consta de un escalar positivo numérico.'sigma' Para la observación, la influencia en el peso del predictor de su vecino más cercano se multiplica porij e(rank(i,j)/sigma)2. rank(i,j) es la posición de la TH observación entre los vecinos más cercanos de la TH observación, ordenados por distancia.ji El valor predeterminado es para la clasificación (todos los vecinos más cercanos tienen la misma influencia) y 50 para la regresión.Inf

Ejemplo: 'sigma',20

Tipos de datos: single | double

Argumentos de salida

contraer todo

Índices de los predictores más importantes, devueltos como un vector numérico. son los índices de las columnas ordenadas por importancia predictora.ranksX Por ejemplo, si es así, el tercer predictor más importante es la quinta columna.ranks(3)5X

Tipos de datos: double

Pesos de los predictores, devueltos como un vector numérico. van desde hasta con grandes pesos positivos asignados a predictores importantes.weights-11

Tipos de datos: double

Sugerencias

  • Los rangos de predictor y los pesos generalmente dependen.k Si establece en 1, a continuación, las estimaciones pueden ser poco fiables para los datos ruidosos.k Si se establece en un valor comparable con el número de observaciones (filas) en, puede fallar para encontrar predictores importantes.kXrelieff Puede comenzar con = e investigar la estabilidad y confiabilidad de rangos y pesos para varios valores de.k10relieffk

  • elimina las observaciones con valores.relieffNaN

Algoritmos

contraer todo

ReliefF

ReliefF encuentra los pesos de los predictores en el caso de que sea una variable categórica multiclase.y El algoritmo penaliza los predictores que dan diferentes valores a los vecinos de la misma clase, y premia los predictores que dan diferentes valores a los vecinos de diferentes clases.

ReliefF establece primero todos los pesos predictores Wj a 0. A continuación, el algoritmo selecciona iterativamente una observación aleatoria Xr, encuentra las observaciones más cercanas ak Xr para cada clase y actualizaciones, para cada vecino más cercano Xq, todos los pesos de los predictores Fj como sigue:

Si Xr Y Xq están en la misma clase,

Wji=Wji1Δj(xr,xq)mdrq.

Si Xr Y Xq están en diferentes clases,

Wji=Wji1+pyq1pyrΔj(xr,xq)mdrq.

  • Wji es el peso del predictor Fj en el paso de iteración TH.i

  • Pyr es la probabilidad previa de la clase a la que Xr pertenece, y Pyq es la probabilidad previa de la clase a la que Xq Pertenece.

  • es el número de iteraciones especificadas por.m'updates'

  • Δj(xr,xq) es la diferencia en el valor del predictor Fj entre observaciones Xr Y Xq. Dejar Xrj denotan el valor del predictor TH para la observaciónj Xr, y deja que Xqj denotan el valor del predictor TH para la observaciónj Xq.

    • Para una discreta Fj,

      Δj(xr,xq)={0,xrj=xqj1,xrjxqj.

    • Para el continuo Fj,

      Δj(xr,xq)=|xrjxqj|max(Fj)min(Fj).

  • drq es una función de distancia del formulario

    drq=d˜rql=1kd˜rl.

    La distancia está sujeta a la escala

    d˜rq=e(rank(r,q)/sigma)2

    Dónde rank(r,q) es la posición de la TH observación entre los vecinos más cercanos de la TH observación, ordenados por distancia. es el número de vecinos más cercanos, especificados por.qrkk Puede cambiar la escala especificando.'sigma'

RReliefF

RReliefF trabaja con continuo.y Similar a ReliefF, RReliefF también penaliza los predictores que dan diferentes valores a los vecinos con los mismos valores de respuesta, y premia los predictores que dan diferentes valores a los vecinos con diferentes valores de respuesta. Sin embargo, RReliefF utiliza pesos intermedios para calcular las ponderaciones del predictor final.

Dados dos vecinos más cercanos, asuma lo siguiente:

  • Wdy es el peso de tener valores diferentes para la respuesta.y

  • Wdj es el peso de tener diferentes valores para el predictor Fj.

  • Wdydj es el peso de tener diferentes valores de respuesta y valores diferentes para el predictor Fj.

RReliefF primero establece los pesos Wdy, Wdj, WdydjY Wj igual a 0. A continuación, el algoritmo selecciona iterativamente una observación aleatoria Xr, encuentra las observaciones más cercanas ak Xr, y actualizaciones, para cada vecino más cercano Xq, todos los pesos intermedios de la siguiente manera:

Wdyi=Wdyi1+Δy(xr,xq)drq.

Wdji=Wdji1+Δj(xr,xq)drq.

Wdydji=Wdydji1+Δy(xr,xq)Δj(xr,xq)drq.

  • El yi i-1 los superíndices denotan el número de paso de iteración. es el número de iteraciones especificadas por.m'updates'

  • Δy(xr,xq) es la diferencia en el valor de la respuesta continua entre las observacionesy Xr Y Xq. Dejar yr denotan el valor de la respuesta para la observación Xr, y deja que yq denotan el valor de la respuesta para la observación Xq.

    Δy(xr,xq)=|yryq|max(y)min(y).

  • el Δj(xr,xq) Y drq funciones son las mismas que para.ReliefF

RReliefF calcula las ponderaciones predictoras Wj después de actualizar completamente todos los pesos intermedios.

Wj=WdydjWdyWdjWdydjmWdy.

Para obtener más información, consulte.[2]

Referencias

[1] Kononenko, I., E. Simec, and M. Robnik-Sikonja. (1997). “Overcoming the myopia of inductive learning algorithms with RELIEFF.” Retrieved from CiteSeerX: https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.56.4740

[2] Robnik-Sikonja, M., and I. Kononenko. (1997). “An adaptation of Relief for attribute estimation in regression.” Retrieved from CiteSeerX: https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.34.8381

[3] Robnik-Sikonja, M., and I. Kononenko. (2003). “Theoretical and empirical analysis of ReliefF and RReliefF.” Machine Learning, 53, 23–69.

Introducido en R2010b