Respuestas:
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 . Si extrae puntos de muestra de la distribución de probabilidad real, , independientemente, entonces la probabilidad de extraer una muestra de esa clase es,
¿Qué pasa si tienes puntos? La probabilidad de que puntos de esos puntos caigan en la región sigue la distribución binomial,
Como esta distribución tiene un pico agudo, de modo que la probabilidad puede ser aproximada por su valor medio K . 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)dx≈p(x)V dondeVes el volumen total de la región. Bajo estas aproximacionesp(x)≈K
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.
Repitiendo el análisis con la distribución binomial, es fácil ver que podemos estimar el .
Usando la regla de Bayes,
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.
Me he encontrado con un libro que dice lo contrario ( es decir, un Modelo de Clasificación Generativo No Paramétrico)
Este es el enlace en línea: Aprendizaje automático : una perspectiva probabilística por Murphy, Kevin P. (2012)
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 ...