Actualmente estoy mirando la forma primaria sin restricciones del clasificador uno contra todos
dónde
es el número de instancias, es el número de clases, es el número de características, es una matriz de datos , es un vector de etiquetas de clase, es una donde corresponde Para los pesos del hiperplano que divide una clase del resto, es una función de pérdida arbitraria.
N F X N K × N F y W N K × N I L
Tengo entendido que el funcional anterior intenta encontrar un hiperplano para cada clase que maximice la distancia entre las muestras dentro de la clase asociada a todas las demás muestras. Si los hiperplanos están posicionados correctamente, entonces siempre debe ser negativo, siempre debe ser positivo y nuestra función de pérdida debe volver justamente bajo.w y i ⋅ x i
Estoy tratando de implementar esto usando la pérdida de bisagra que creo que en este caso terminará siendo
).
Sin embargo, en lo anterior no podríamos terminar con una situación en la que los hiperplanos clasifiquen todas las muestras como pertenecientes a cada clase. Por ejemplo, si estamos viendo el hiperplano separando la clase 1 de todas las demás clases, siempre que entonces la pérdida incurrida será 0 a pesar de que se clasifica como la clase incorrecta.
¿Dónde me he equivocado? ¿O no importa si es negativo o positivo siempre que termine con una puntuación más alta? Tengo la sensación de que mi uso de la función de bisagra como he descrito aquí es incorrecto, pero mi uso de Google hoy en día solo ha generado más confusión.
En una nota relacionada, ¿por qué hay un 1 en el funcional anterior? Creo que tendría poco impacto.
\cdot
lugar de\dot
. Si es así, continúe y realice esas ediciones. Salud. :)Le falta el resultado / etiqueta binaria (que puede tomar el valor de +1 y -1 para una clase dada) en la función de pérdida: max (0, 1 - y * (w * x)) (vea los detalles a continuación).
En general, creo que la especificación anterior (tanto la notación como la función de pérdida) complica demasiado uno contra todos; en cambio, uno podría tomar una clase particular, construir + 1 / -1 resultado y así como la matriz de datos correspondiente X (con columnas Nf y filas Ni) y el vector de parámetros w para esa clase, y escriba la función de pérdida de bisagra correspondiente para un clasificador binario clásico para esa clase: suma (max (0, 1 - y * (w * x))) donde la suma está sobre todas las instancias de datos, x es una fila de X que corresponde a una instancia particular. Uno necesita "1" en la función de pérdida de bisagra (ya que y * (w * x)> = 1 corresponde a la predicción correcta del modelo en lo que respecta a la función de pérdida).
fuente