2010-03-25 11 views

Respuesta

7

Lo que necesita es un metaclasificador sensible a los costos (un metaclasificador funciona con cualquier clasificador arbitrario, ya sea ANN, SVM o cualquier otro).

Esto se puede hacer de dos maneras:

  • instancias de capacitación reponderaciones de acuerdo a una matriz de costo. Esto se hace remuestreando los datos para que una clase en particular esté sobre representada, por lo que el modelo creado es más sensible a esa clase en particular que a las otras clases.
  • prediciendo la clase con costo de clasificación mínimo esperado (en lugar de la clase más probable). La idea aquí es minimizar los costos totales esperados al cometer errores más a menudo y los costosos errores con menos frecuencia.

Un algoritmo que implementa el primer enfoque de aprendizaje es SECOC, que utiliza códigos de corrección de errores; mientras que un ejemplo de la segunda aproximación es MetaCost que usa embolsado para mejorar las estimaciones de probabilidad del clasificador.

2

Puede usar una función de costo personalizado. Esto es lo que hice recientemente:

cost(true negative) = 0 
cost(true positive) = 0 
cost(false positive) = infinity 
cost(true negative) = L 

Esto se puede lograr, p. por esta fórmula:

cost(y, t) = (1 - t) log (1 - y) - L * t * (1 - y) 

Esto implica cierta derivación e implementación, por supuesto, y no está fuera de la caja de herramientas de Matlab.

Cuestiones relacionadas