¿Es KNN un algoritmo de aprendizaje discriminativo?


17

Parece que KNN es un algoritmo de aprendizaje discriminativo, pero parece que no puedo encontrar ninguna fuente en línea que lo confirme.

¿Es KNN un algoritmo de aprendizaje discriminativo?

Respuestas:


19

KNN es un algoritmo discriminativo ya que modela la probabilidad condicional de una muestra que pertenece a una clase dada. Para ver esto, solo considere cómo se llega a la regla de decisión de los kNN.

Una etiqueta de clase corresponde a un conjunto de puntos que pertenecen a alguna región en el espacio de características R . Si extrae puntos de muestra de la distribución de probabilidad real, p(x) , independientemente, entonces la probabilidad de extraer una muestra de esa clase es,

P=Rp(x)dx

¿Qué pasa si tienes N puntos? La probabilidad de que K puntos de esos N puntos caigan en la región R sigue la distribución binomial,

Prob(K)=(NK)PK(1P)NK

Como esta distribución tiene un pico agudo, de modo que la probabilidad puede ser aproximada por su valor medio KN . Una aproximación adicional es que la distribución de probabilidad sobreRpermanece aproximadamente constante, de modo que se puede aproximar la integral por, P=Rp(x)dxp(x)V dondeVes el volumen total de la región. Bajo estas aproximacionesp(x)KKNR

PAG=Rpag(X)reXpag(X)V
V .pag(X)KnorteV

Ahora, si tuviéramos varias clases, podríamos repetir el mismo análisis para cada una, lo que nos daría, dondeKkes la cantidad de puntos de la clasekque cae dentro de esa región yNkes el número total de puntos que pertenecen a la claseCk. AvisoΣkNk=N.

pag(XEl |Ck)=KknortekV
KkknortekCkkNk=N

Repitiendo el análisis con la distribución binomial, es fácil ver que podemos estimar el .P(Ck)=NkN

Usando la regla de Bayes,

P(Ck|x)=p(x|Ck)p(Ck)p(x)=KkK

2
La referencia no incluye ninguna información sobre KNN. ¿Es el correcto?
bayerj

1
Me refería a enfatizar lo que se entiende por un algoritmo discriminatorio frente a un generativo.
jpmuc

5

La respuesta de @jpmuc no parece ser precisa. Los modelos generativos modelan la distribución subyacente P (x / Ci) y luego usan el teorema de Bayes para encontrar las probabilidades posteriores. Eso es exactamente lo que se ha mostrado en esa respuesta y luego concluye exactamente lo contrario. : O

Para que KNN sea un modelo generativo, deberíamos poder generar datos sintéticos. Parece que esto es posible una vez que tenemos algunos datos de entrenamiento inicial. Pero no es posible comenzar sin datos de entrenamiento y generar datos sintéticos. Entonces KNN no encaja bien con los modelos generativos.

Se puede argumentar que KNN es un modelo discriminativo porque podemos dibujar límites discriminantes para la clasificación, o podemos calcular el P posterior (Ci / x). Pero todo esto también es cierto en el caso de los modelos generativos. Un verdadero modelo discriminativo no dice nada sobre la distribución subyacente. Pero en el caso de KNN, sabemos mucho sobre la distribución subyacente, de hecho, estamos almacenando todo el conjunto de entrenamiento.

Entonces, parece que KNN está a medio camino entre los modelos generativos y discriminativos. Probablemente es por eso que KNN no se clasifica en ninguno de los modelos generativos o discriminatorios en artículos de renombre. Vamos a llamarlos modelos no paramétricos.


No estoy de acuerdo. "Los clasificadores generativos aprenden un modelo de la probabilidad conjunta, p (x, y), de las entradas xy la etiqueta y, y hacen sus predicciones usando las reglas de Bayes para calcular p (ylx), y luego seleccionan la etiqueta más probable y Los clasificadores discriminativos modelan el p posterior (ylx) directamente, o aprenden un mapa directo de las entradas x a las etiquetas de clase ". Consulte "En discriminativo clasificadores vs generativo: Una comparación de regresión logística y de Bayes ingenuo.
jpmuc


1

Estoy de acuerdo en que kNN es discriminatorio. La razón es que no almacena explícitamente ni intenta aprender un modelo (probabilístico) que explique los datos (a diferencia de, por ejemplo, Naive Bayes).

La respuesta de juampa me confunde ya que, a mi entender, un clasificador generativo es aquel que intenta explicar cómo se generan los datos (por ejemplo, usando un modelo), y esa respuesta dice que es discriminatorio por esta razón ...


1
Un modelo generativo aprende P (Ck, X), por lo que puede generar más datos utilizando esa distribución conjunta. En contraste, un modelo discriminativo aprendería P (Ck | X). Esto es lo que @juampa señala con KNN.
Zhubarb

1
En el momento de la clasificación, tanto generativos como discriminativos terminan usando probabilidades condicionales para hacer predicciones. Sin embargo, los clasificadores generativos aprenden la probabilidad conjunta y, según la regla de Bayes, calculan el condicional, mientras que en un discriminante un clasificador calcula directamente el condicional o proporciona una aproximación tan buena como sea posible.
rapaio
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.