Clasificadores de aprendizaje automático big-O o complejidad

14

Para evaluar el rendimiento de un nuevo algoritmo clasificador, estoy tratando de comparar la precisión y la complejidad (big-O en entrenamiento y clasificación). De Machine Learning: una revisión obtengo una lista completa de clasificadores supervisados, también una tabla de precisión entre los algoritmos y 44 problemas de prueba del repositorio de datos UCI . Sin embargo, no puedo encontrar una reseña, documento o sitio web con el big-O para clasificadores comunes como:

  • C4.5
  • RIPPER (creo que esto podría no ser posible, pero quién sabe)
  • ANN con propagación hacia atrás
  • Bayesiano ingenuo
  • K-NN
  • SVM

Si alguien tiene alguna expresión para estos clasificadores, será muy útil, gracias.

Dinl
fuente
2
Te puede interesar el siguiente artículo: thekerneltrip.com/machine/learning/… Descargo de responsabilidad completo, es mi blog :)
RUser4512
¿Le gustaría rastrear los lugares donde apuntaban los ahora enlaces muertos de la pregunta?
mate
@ RUser4512 muy buena deliberación del blog! ¿Has considerado agregar complejidad espacial también?
mate
1
@matt Gracias :) sí, pero probablemente en otro artículo, ¡hay muchas cosas que decir sobre esto también!
RUser4512

Respuestas:

11

Sea = número de ejemplos de entrenamiento, d = dimensionalidad de las características yc = número de clases.Ndc

Entonces el entrenamiento tiene complejidades:

  1. Naive Bayes es , todo lo que necesita hacer es calcular la frecuencia de cada valor de característica d i para cada clase.O(Nd)di
  2. -NN está en O ( 1 ) (algunas personas incluso dicen que no existe, pero la complejidad espacial de la capacitación es O ( N d ) ya que necesita almacenar los datos, lo que también lleva tiempo).kO(1)O(Nd)
  3. SVM no lineal no aproximado es u O ( N 3 ) dependiendo del núcleo. Puede obtener un O ( N 3 ) hasta O ( N 2.3 ) con algunos trucos.O(N2)O(N3)O(N3)O(N2.3)
  4. La SVM aproximada es donde R es el número de iteraciones.O(NR)

Pruebas de complejidades:

  1. Naive Bayes está en ya que debe recuperar los valores de entidad d para cada una de las clases c .O(cd)dc
  2. kO(nortere)

Fuente: "Core Vector Machines: Entrenamiento rápido de SVM en conjuntos de datos muy grandes" - http://machinelearning.wustl.edu/mlpapers/paper_files/TsangKC05.pdf

Lo siento, no sé sobre los demás.

samthebest
fuente
66
O(n2)O(n3)
@MarcClaesen El enlace ya no funciona y no está en la máquina del camino. ¿Es este el mismo documento: leon.bottou.org/publications/pdf/lin-2006.pdf ?
wordsforthewise