Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

20 votos

Clasificadores de aprendizaje automático big-O o complejidad

Para evaluar el rendimiento de un nuevo algoritmo clasificador, intento comparar la precisión y la complejidad (big-O en entrenamiento y clasificación). En Aprendizaje automático: 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 de Depósito de datos de la UCI . Sin embargo, no puedo encontrar una revisión, documento o sitio web con la gran-O para clasificadores comunes como:

  • C4.5
  • RIPPER (Creo que esto podría no ser posible, pero quién sabe)
  • RNA con retropropagación
  • Bayesiano ingenuo
  • K-NN
  • SVM

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

2 votos

Quizá le interese el siguiente artículo : thekerneltrip.com/máquina/aprendizaje/ Aviso legal, es mi blog :)

0 votos

¿Le importaría rastrear los lugares a los que apuntaban los enlaces ahora muertos de la pregunta?

0 votos

@RUser4512 ¡muy buena deliberación en el blog! ¿has considerado añadir también la complejidad del espacio?

15voto

Just a lil kid Puntos 97

Sea N = número de ejemplos de entrenamiento, d = dimensionalidad de las características y c = número de clases.

Luego la formación tiene complejidades:

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

Complejidad de las pruebas:

  1. Naive Bayes está en O(cd) ya que tiene que recuperar d valores de las características de cada c clases.
  2. k -NN está en O(Nd) ya que tiene que comparar el punto de prueba con cada punto de datos de su base de datos.

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é nada de los demás.

6 votos

No es del todo correcto: la complejidad de entrenamiento de kernel SVM está entre O(n2) y O(n3) en función de C Véase, por ejemplo Solucionadores de máquinas de vectores soporte de Bottou y Lin (sección 4.2).

0 votos

@MarcClaesen El enlace ya no funciona y no está en wayback machine. Es el mismo artículo: leon.bottou.org/publicaciones/pdf/lin-2006.pdf ?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X