Solo catorce pasos para dominar el aprendizaje automático de Python desde cero

 Lectura recomendada (haga clic en el título para ver)

1. Aplicación de tecnología de práctica de aprendizaje automático y minería de datos de Python

2. R-Meta análisis y [análisis bibliométrico, bayesiano, aprendizaje automático, etc.] práctica y expansión de integración multitecnología

3. Lo último en aprendizaje automático y aprendizaje profundo basado en MATLAB 2023a

4. [Ocho días] Campamento de verano "Ayuda integral a la investigación, la enseñanza y las habilidades prácticas de la IA"

imagen

"Comenzar" es a menudo lo más difícil, especialmente cuando hay demasiadas opciones, a menudo es difícil para una persona tomar una decisión. El objetivo de este tutorial es ayudar a los novatos con poca experiencia en el aprendizaje automático de Python a convertirse en profesionales expertos, utilizando solo materiales y recursos disponibles gratuitamente. El objetivo principal de este resumen es guiarlo a través de la gran cantidad de recursos disponibles. Sin duda hay muchos recursos, pero ¿cuáles son los mejores? ¿Cuáles son complementarios? ¿En qué orden es el más apropiado para estudiar estos recursos?

Primero, asumo que no eres un experto en:

  • aprendizaje automático

  • Pitón

  • Cualquier biblioteca de aprendizaje automático, computación científica o análisis de datos para Python

Por supuesto, sería bueno si tuviera algún nivel de comprensión básica de los primeros dos temas, pero eso no es necesario, simplemente dedique un poco más de tiempo a las primeras etapas.

Básico

Paso uno: Habilidades básicas de Python

Cierta comprensión básica de Python es crucial si vamos a utilizar Python para realizar el aprendizaje automático. Afortunadamente, debido a que Python es un lenguaje de programación de propósito general ampliamente utilizado, con sus aplicaciones en computación científica y aprendizaje automático, encontrar un tutorial para principiantes no es demasiado difícil. Su nivel de experiencia con Python y la programación es fundamental para comenzar.

Primero, necesitas instalar Python. Dado que usaremos paquetes de computación científica y aprendizaje automático más adelante, le recomiendo que instale Anaconda. Esta es una implementación de Python de potencia industrial disponible en Linux, OS X y Windows, completa con los paquetes necesarios para el aprendizaje automático, incluidos numpy, scikit-learn y matplotlib. También incluye iPython Notebook, un entorno interactivo utilizado en muchos de nuestros tutoriales. Recomiendo instalar Python 2.7.

imagen

Si no sabe programar, le sugiero que comience con los siguientes libros gratuitos en línea antes de pasar al material que sigue:

  • Aprende Python de la manera difícil,作者 Zed A. Shaw:https://learnpythonthehardway.org/book/

Si tienes experiencia en programación pero no conoces Python o eres muy principiante, te recomiendo tomar los siguientes dos cursos:

  • Curso de Python para desarrolladores de Google (altamente recomendado para estudiantes visuales) (http://suo.im/toMzq)

  • An Introduction to Python Scientific Computing (de M. Scott Shell, UCSB Engineering) (una buena introducción, alrededor de 60 páginas): (http://suo.im/2cXycM)

Si quieres un curso rápido de 30 minutos sobre Python, mira esto:

  • Aprende X en Y minutos (X=Python): (http://suo.im/zm6qX)

Por supuesto, si ya eres un programador experimentado de Python, puedes omitir este paso. Aun así, te recomiendo que utilices siempre la documentación de Python: (https://www.python.org/doc/)

Paso 2: Habilidades básicas de aprendizaje automático

Zachary Lipton de KDnuggets ha señalado: Ahora, hay muchos criterios diferentes para que las personas evalúen a un "científico de datos". En realidad, esta es una representación del campo del aprendizaje automático, porque la mayor parte de lo que hace un científico de datos implica el uso de algoritmos de aprendizaje automático en diversos grados. ¿Es necesario estar muy familiarizado con los métodos del kernel para crear y obtener información de manera efectiva de las SVM? Por supuesto que no. Como casi todo en la vida, el dominio de la teoría en profundidad está ligado a la aplicación práctica. Una comprensión profunda de los algoritmos de aprendizaje automático está más allá del alcance de este artículo y, a menudo, requerirá que dedique una cantidad significativa de tiempo a cursos más académicos, o al menos a un autoestudio intenso por su cuenta.

La buena noticia es que no necesita una comprensión teórica del aprendizaje automático similar a un doctorado para practicar, al igual que no necesita la teoría de la informática para ser un programador eficaz.

Las personas tienden a recibir críticas favorables por el contenido del curso de aprendizaje automático de Andrew Ng en Coursera; sin embargo, mi sugerencia es buscar las notas de clase tomadas en línea por un estudiante anterior. Omita las notas específicas de Octave (un lenguaje similar a Matlab que no es relevante para sus estudios de Python). Asegúrese de entender que estas no son notas oficiales, pero puede comprender el contenido relevante en los materiales del curso de Wu Enda. Por supuesto, si tiene tiempo e interés, puede ir a Coursera para aprender el curso de aprendizaje automático de Wu Enda ahora: (http://suo.im/2o1uD)

  • Notas no oficiales para la clase de Andrew Ng: (http://www.holehouse.org/mlclass/)

Además de los cursos de Ng Enda mencionados anteriormente, si necesita otros cursos, hay muchos cursos para elegir en línea. Por ejemplo, me gusta mucho Tom Mitchell, aquí hay un video de su discurso reciente (con Maria-Florina Balcan), muy accesible.

  • Curso de aprendizaje automático de Tom Mitchell: (http://suo.im/497arw)

No necesitas todas las notas y videos en este momento. Un método efectivo es ir directamente a las preguntas de práctica específicas a continuación cuando lo considere apropiado, consulte las notas anteriores y la parte apropiada del video.

Paso 3: descripción general de los paquetes de Python de computación científica

Muy bien, dominamos la programación de Python y estamos algo familiarizados con el aprendizaje automático. Y fuera de Python, hay algunas bibliotecas de software de código abierto que se usan comúnmente para realizar el aprendizaje automático real. En términos generales, hay una serie de las denominadas bibliotecas científicas de Python que se pueden usar para realizar tareas básicas de aprendizaje automático (el juicio aquí es ciertamente algo subjetivo):

  • numpy - sobre todo útil para sus objetos de matriz N-dimensional 

    (http://www.numpy.org/)

  • pandas: biblioteca de análisis de datos de Python, incluidos marcos de datos (dataframes) y otras estructuras (http://pandas.pydata.org/)

  • matplotlib: una biblioteca de gráficos 2D que produce gráficos con calidad de publicación (http://matplotlib.org/)

  • scikit-learn: algoritmos de aprendizaje automático para funciones de análisis de datos y minería de datos

    (http://scikit-learn.org/stable/)

Una buena manera de aprender sobre estas bibliotecas es estudiar el siguiente material:

  • Scipy Lecture Notes, por Gaël Varoquaux, Emmanuelle Gouillat y Olav Vahtras: (http://www.scipy-lectures.org/)

  • Este tutorial de pandas también es muy bueno: 10 Minutes to Pandas: (http://suo.im/4an6gY)

También verá algunos otros paquetes más adelante en este tutorial, como Seaborn, una biblioteca de visualización de datos basada en matplotlib. Los paquetes antes mencionados son solo algunas de las bibliotecas principales que se usan comúnmente en el aprendizaje automático de Python, pero comprenderlos debería evitar que se confunda cuando encuentre otros paquetes más adelante.

¡Empecemos!

Paso 4: aprenda

Verifique la preparación primero

  • Pitón: listo

  • Aspectos básicos del aprendizaje automático: Listo

  • Numpy: listo

  • Pandas: Listo

  • Matplotlib: Listo

Ahora es el momento de implementar algoritmos de aprendizaje automático mediante scikit-learn, la biblioteca estándar de aprendizaje automático de Python.

imagen

diagrama de flujo de scikit-learn

Muchos de los siguientes tutoriales y ejercicios se realizan con iPython (Jupyter) Notebook, un entorno interactivo para ejecutar sentencias de Python. iPython Notebook se puede encontrar fácilmente en línea o descargar a su computadora local.

  • Una descripción general de iPython Notebook de Stanford:

    (http://cs231n.github.io/ipython-tutorial/)

También tenga en cuenta que los siguientes tutoriales se componen de una colección de recursos en línea. Si siente que hay algo inapropiado en el curso, puede comunicarse con el autor. Nuestro primer tutorial comienza con scikit-learn, le sugiero que eche un vistazo a los siguientes artículos en orden antes de continuar con el tutorial.

El siguiente es un artículo que presenta scikit-learn, la biblioteca de aprendizaje automático de propósito general más utilizada para Python, que cubre el algoritmo vecino más cercano K:

  • Introducción a scikit-learn por Jake VanderPlas: (http://suo.im/3bMdEd)

La siguiente es una introducción más profunda y extendida, que incluye comenzar y completar un proyecto de la famosa base de datos:

  • Notas del caso de aprendizaje automático de Randal Olson: (http://suo.im/RcPR6)

La siguiente publicación se enfoca en estrategias para evaluar diferentes modelos en scikit-learn, incluidas las divisiones de entrenamiento/prueba:

  • Evaluación del modelo por Kevin Markham: (http://suo.im/2HIXD)

Paso 5: implementar algoritmos básicos para el aprendizaje automático en Python

Con el conocimiento básico de scikit-learn, podemos explorar más a fondo esos algoritmos más generales y prácticos. Comenzamos con el muy conocido algoritmo de agrupamiento k-means, que es un método muy simple y eficiente que funciona bien para problemas de aprendizaje no supervisado:

  • Agrupación de medios K: (http://suo.im/40R8zf)

A continuación, podemos volver al problema de clasificación y aprender el algoritmo de clasificación más popular:

  • Árboles de decisión: (http://thegrimmscientist.com/tutorial-decision-trees/)

Después de entender los problemas de clasificación, podemos pasar a la predicción numérica continua:

  • Regresión lineal: (http://suo.im/3EV4Qn)

También podemos usar la idea de regresión para aplicarla a problemas de clasificación, a saber, regresión logística:

  • regresión logística: (http://suo.im/S2beL)

Paso 6: implementar algoritmos avanzados de aprendizaje automático en Python

Ahora que estamos familiarizados con scikit-learn, podemos ver algoritmos más avanzados. El primero son las máquinas de vectores de soporte, que son clasificadores no lineales que se basan en la transformación de datos en espacios de alta dimensión.

  • Máquina de vectores de soporte: (http://suo.im/2iZLLa)

Posteriormente, podemos examinar el aprendizaje de un bosque aleatorio como un clasificador de conjunto a través de la competencia Kaggle Titanic:

  • Competencia Kaggle Titanic (usando bosque aleatorio): (http://suo.im/1o7ofe)

Los algoritmos de reducción de dimensionalidad se utilizan a menudo para reducir el número de variables utilizadas en un problema. El análisis de componentes principales es una forma especial de algoritmo de reducción de dimensionalidad no supervisado:

  • Algoritmo de reducción de dimensionalidad: (http://suo.im/2k5y2E)

Antes de llegar al paso siete, podemos tomarnos un momento para considerar algunos de los avances que se han logrado en un período de tiempo relativamente corto.

Usando Python y sus bibliotecas de aprendizaje automático primero, no solo hemos analizado algunos de los algoritmos de aprendizaje automático más comunes y conocidos (k-vecinos más cercanos, agrupación de k-means, máquinas de vectores de soporte, etc.), sino que también analizamos potentes técnicas de conjunto (bosques aleatorios) y algunas tareas adicionales de aprendizaje automático (algoritmos de reducción de dimensionalidad y técnicas de validación de modelos). Además de algunos trucos básicos de aprendizaje automático, comenzamos a buscar algunos conjuntos de herramientas útiles.

Aprenderemos nuevas herramientas necesarias más adelante.

Paso 7: aprendizaje profundo de Python

imagen

Una red neuronal contiene muchas capas.

El aprendizaje profundo está en todas partes. El aprendizaje profundo se basa en redes neuronales de décadas de antigüedad, pero los avances recientes que comenzaron hace unos años y han mejorado drásticamente las capacidades cognitivas de las redes neuronales profundas han generado un interés generalizado. Si es nuevo en las redes neuronales, KDnuggets tiene una serie de artículos que detallan la gran cantidad de innovaciones, logros y elogios recientes en el aprendizaje profundo.

El paso final no pretende revisar todos los tipos de aprendizaje profundo, sino explorar algunas implementaciones de red simples en 2 bibliotecas contemporáneas avanzadas de aprendizaje profundo de Python. Para los lectores interesados ​​en profundizar en el aprendizaje profundo, recomiendo comenzar con estos libros gratuitos en línea:

  • Redes neuronales y aprendizaje profundo, por Michael Nielsen: (http://neuralnetworksanddeeplearning.com/)

1. Teano

Enlace: (http://deeplearning.net/software/theano/)

Theano fue la primera biblioteca de aprendizaje profundo de Python que cubrimos. Vea lo que dijo el autor de Theano:

Theano es una biblioteca de Python que le permite definir, optimizar y evaluar de manera eficiente expresiones matemáticas que involucran matrices multidimensionales.

El siguiente tutorial introductorio sobre el aprendizaje profundo con Theano es un poco largo, pero lo suficientemente bueno, descrito vívidamente y altamente calificado:

  • Tutorial de aprendizaje profundo de Theano, por Colin Raffel (http://suo.im/1mPGHe)

2.Café 

Enlace: (http://caffe.berkeleyvision.org/)

Otra biblioteca que probaremos es Caffe. Una vez más, comencemos con el autor:

Caffe es un marco de aprendizaje profundo creado para la expresividad, la velocidad y la modularidad, desarrollado por Bwekeley Vision and Learning Center y trabajadores comunitarios.

Este tutorial es el mejor de este artículo. Hemos estudiado varios ejemplos interesantes arriba, pero ninguno puede competir con el siguiente ejemplo, que implementa DeepDream de Google a través de Caffe. ¡Esto es bastante emocionante! Una vez que haya dominado el tutorial, intente hacer que su procesador se vuelva loco por diversión.

  • Realice Google DeepDream a través de Caffe: (http://suo.im/2cUSXS)

No prometo que será rápido o fácil, pero si dedica tiempo y sigue los 7 pasos anteriores, estará bien encaminado para comprender una gran cantidad de algoritmos de aprendizaje automático y usar bibliotecas populares ( incluyendo algunos de los más avanzados en la investigación de aprendizaje profundo en la actualidad. biblioteca de vanguardia) se volvió bueno en la implementación de algoritmos en Python.

Avanzado

imagen

algoritmo de aprendizaje automático

Este es el segundo de una serie de 7 pasos para dominar el aprendizaje automático con Python. Si ha tomado la primera parte de la serie, debería haber alcanzado una tasa de aprendizaje y una competencia satisfactorias; si no, probablemente debería revisar el artículo anterior. , cuánto tiempo se dedicará depende de su nivel actual de comprensión. Te garantizo que valdrá la pena. Después de una revisión rápida, esta publicación se centrará más explícitamente en algunos conjuntos de tareas relacionadas con el aprendizaje automático. Al omitir de manera segura algunos módulos básicos (conceptos básicos de Python, conceptos básicos de aprendizaje automático, etc.), podemos saltar directamente a diferentes algoritmos de aprendizaje automático. Esta vez podemos categorizar mejor los tutoriales por función.

Paso 1: Revisión de los fundamentos del aprendizaje automático y una nueva perspectiva

La parte anterior incluía los siguientes pasos:

1. Habilidades básicas de Python

2. Habilidades básicas de aprendizaje automático

3. Descripción general de los paquetes de Python

4. Comenzando con el aprendizaje automático con Python: Introducción y evaluación del modelo

5. Temas de aprendizaje automático en Python: k-means clustering, árboles de decisión, regresión lineal y regresión logística

6. Temas avanzados de aprendizaje automático en Python: máquinas de vectores de soporte, bosques aleatorios, reducción de la dimensionalidad de PCA

7. Aprendizaje profundo en Python

Como se mencionó anteriormente, si vas a empezar desde cero, te recomiendo que leas la primera parte en orden. También enumeraré todo el material de inicio para principiantes, y las instrucciones de instalación se incluyen en el artículo anterior.

Sin embargo, si lo has leído, comenzaré con lo básico:

  • Explicación de los términos clave del aprendizaje automático, por Matthew Mayo.

    (Dirección: http://suo.im/2URQGm)

  • Entrada de Wikipedia: Clasificación estadística.

    (Dirección: http://suo.im/mquen)

  • Aprendizaje automático: una descripción completa y detallada, por Alex Castrounis.

    (Dirección: http://suo.im/1yjSSq)

Si está buscando un enfoque alternativo o complementario para aprender los fundamentos del aprendizaje automático, puedo referirlo a las conferencias en video de Shai Ben-David y al libro de texto de Shai Shalev-Shwartz que estoy viendo:

  • Videoconferencia de introducción al aprendizaje automático de Shai Ben-David, Universidad de Waterloo.

    (Dirección: http://suo.im/1TFlK6)

  • Comprender el aprendizaje automático: de la teoría a los algoritmos, por Shai Ben-David y Shai Shalev-Shwartz.

    (Dirección: http://suo.im/1NL0ix)

Recuerde, no necesita leer todo este material introductorio para comenzar la serie que estoy escribiendo. Las conferencias en video, los libros de texto y otros recursos están disponibles cuando se implementan modelos con algoritmos de aprendizaje automático o cuando los conceptos apropiados se aplican de manera práctica en pasos posteriores. Juzga por ti mismo.

Paso 2: Más categorías

Comenzamos con material nuevo, primero consolidando nuestras técnicas de clasificación e introduciendo algunos algoritmos adicionales. Si bien la primera parte de esta publicación cubrió los árboles de decisión, las máquinas de vectores de soporte, la regresión logística y los bosques aleatorios para la clasificación sintética, agregaremos k-vecinos más cercanos, clasificadores de Bayes ingenuos y perceptrones multicapa.

imagen

Clasificadores Scikit-learn

 k-Nearest Neighbors (kNN) es un ejemplo de un clasificador simple y un aprendiz perezoso, donde todo el cálculo ocurre en el momento de la clasificación (en lugar de antes de tiempo durante el paso de entrenamiento). kNN no es paramétrico y decide cómo clasificar comparando las instancias de datos con las k instancias más cercanas.

  • Clasificación del vecino k-más cercano usando Python.

    (Dirección: http://suo.im/2zqW0t)

Naive Bayes es un clasificador basado en el teorema de Bayes. Asume que hay independencia entre las características y que la presencia de cualquier característica particular en una clase es independiente de la presencia de cualquier otra característica en la misma clase.

  • Clasificación de documentos usando Scikit-learn, por Zac Stewart.

    (Dirección: http://suo.im/2uwBm3)

Un perceptrón multicapa (MLP) es una red neuronal de avance simple que consta de múltiples capas de nodos, donde cada capa está completamente conectada a la capa siguiente. El Perceptrón multicapa se introdujo en la versión 0.18 de Scikit-learn.

Comience leyendo una descripción general de los clasificadores MLP de la documentación de Scikit-learn, luego use el tutorial para practicar su implementación.

  • Modelos de redes neuronales (supervisados), documentación de Scikit-learn.

    (Dirección: http://suo.im/3oR76l)

  • ¡Una guía para principiantes sobre redes neuronales con Python y Scikit-learn 0.18! Por José Portilla.

    (Dirección: http://suo.im/2tX6rG)

Paso 3: más agrupamiento

Ahora pasamos a la agrupación, una forma de aprendizaje no supervisado. En el artículo anterior, discutimos el algoritmo k-means; aquí presentamos DBSCAN y la maximización de expectativas (EM).

imagen

Algoritmo de agrupamiento Scikit-learn

Primero, lea estos artículos introductorios; el primero, una comparación rápida de k-means y las técnicas de agrupación en clústeres de EM, es una buena continuación de las nuevas formas de agrupación en clústeres, y el segundo, una mirada a las técnicas de agrupación en clústeres disponibles en Scikit-learn En resumen:

  • Técnicas de agrupamiento comparadas: una descripción técnica concisa, por Matthew Mayo.

    (Dirección: http://suo.im/4ctIvI)

  • Comparación de diferentes algoritmos de agrupamiento en un conjunto de datos de juguete, documentación de Scikit-learn.

    (Dirección: http://suo.im/4uvbbM)

La maximización de expectativas (EM) es un algoritmo de agrupación probabilística y, por lo tanto, implica determinar la probabilidad de que una instancia pertenezca a un grupo en particular. EM aproxima la máxima verosimilitud o la máxima estimación a posteriori de parámetros en modelos estadísticos (Han, Kamber y Pei). El procedimiento EM itera desde un conjunto de parámetros hasta que el clúster se maximiza con respecto a los k-clusters.

Primero lea el tutorial sobre el algoritmo EM. A continuación, eche un vistazo a la documentación relevante de Scikit-learn. Finalmente, siga el tutorial para implementar la agrupación en clústeres de EM usted mismo usando Python.

  • Tutorial del algoritmo de maximización de expectativas (EM), por Elena Sharova.

    (Dirección: http://suo.im/33ukYd)

  • Modelos de mezcla gaussiana, documentación de Scikit-learn.

    (Dirección: http://suo.im/20C2tZ)

  • Una introducción rápida a la construcción de modelos de mezcla gaussiana en Python, por Tiago Ramalho.

    (Dirección: http://suo.im/4oxFsj)

Si los modelos de mezcla gaussiana parecen confusos al principio, esta sección relevante de la documentación de Scikit-learn debería aliviar cualquier exceso de preocupaciones:

Los objetos de mezcla gaussiana implementan el algoritmo de maximización de expectativas (EM) para adaptarse a mezclas de modelos gaussianos.

La aplicación de agrupamiento espacial basado en la densidad con ruido (DBSCAN) funciona agrupando puntos de datos densos y designando puntos de datos de baja densidad como valores atípicos.

Primero lea y siga la implementación de ejemplo de DBSCAN de la documentación de Scikit-learn, luego siga el tutorial conciso:

  • Demostración del algoritmo de agrupación en clústeres DBSCAN, documentación de Scikit-learn.

    (Dirección: http://suo.im/1l9tvX)

  • Algoritmo de agrupamiento basado en densidad (DBSCAN) e implementación.

    (Dirección: http://suo.im/1LEoXC)

Paso 4: Más métodos de integración

El artículo anterior solo se ocupaba de un único método de conjunto: Random Forest (RF). RF es un clasificador superior que ha logrado un gran éxito en los últimos años, pero ciertamente no es el único clasificador de conjuntos que existe. Echaremos un vistazo a la envoltura, la promoción y la votación.

imagen

dame un impulso

Primero, lea una descripción general de estos alumnos de conjunto, el primero es general; el segundo es que son relevantes para Scikit-learn:

  • Una introducción a los estudiantes de conjunto, por Matthew Mayo.

    (Dirección: http://suo.im/cLESw)

  • Métodos de ensamblaje en Scikit-learn, Documentación de Scikit-learn.

    (Dirección: http://suo.im/yFuY9)

Luego, inicie bosques aleatorios con un nuevo tutorial antes de pasar a nuevos métodos de conjunto:

  • Bosques aleatorios en Python, de Yhat.

    (Dirección: http://suo.im/2eujI)

La envoltura, el impulso y la votación son formas diferentes de clasificadores de conjuntos, y todos implican la creación de múltiples modelos; sin embargo, los algoritmos a partir de los cuales se construyen esos modelos, los datos que usan los modelos y cómo se combinan los resultados en última instancia variarán de un esquema a otro. .

  • Contenedores: construya múltiples modelos a partir del mismo algoritmo de clasificación mientras usa diferentes muestras de datos (independientes) del conjunto de entrenamiento: Scikit-learn implementa clasificadores de contenedores

  • Impulso: creación de múltiples modelos a partir del mismo algoritmo de clasificación, vinculando los modelos uno tras otro para impulsar el aprendizaje de cada modelo posterior: Scikit-learn implementa AdaBoost

  • Votación: construya múltiples modelos a partir de diferentes algoritmos de clasificación y use criterios para determinar cómo se combinan mejor los modelos: Scikit-learn implementa un clasificador de votación

Entonces, ¿por qué combinar modelos? Para abordar esto desde una perspectiva específica, aquí hay una descripción general de la compensación sesgo-varianza, específicamente relacionada con el impulso, de la documentación de Scikit-learn:

  • Estimadores únicos frente a contenedores: descomposición de varianza de sesgo, documentación de Scikit-learn.

    (Dirección: http://suo.im/3izlRB)

Ahora que ha leído material introductorio sobre aprendices de conjuntos y tiene una comprensión básica de algunos clasificadores de conjuntos específicos, aquí le mostramos cómo implementar clasificadores de conjuntos en Python usando Scikit-learn de Machine Learning Mastery:

  • Implementación de algoritmos de aprendizaje automático de Ensemble en Python mediante Scikit-learn por Jason Brownlee.

  • (Dirección: http://suo.im/9WEAr)

Paso 5: aumento de gradiente

En el siguiente paso, continuaremos aprendiendo sobre clasificadores integrados y explorando uno de los algoritmos de aprendizaje automático contemporáneos más populares. El aumento de gradiente ha tenido recientemente un impacto significativo en el aprendizaje automático, convirtiéndose en uno de los algoritmos más populares y exitosos en las competencias de Kaggle.

imagen

dame un impulso de gradiente

Primero, lea una descripción general del aumento de gradiente:

  • Entrada de Wikipedia: Aumento de gradiente. (Dirección: http://suo.im/TslWi)

A continuación, descubra por qué el aumento de gradiente es el método "ganador" en las competencias de Kaggle:

  • ¿Por qué el aumento de gradiente resuelve perfectamente muchos problemas de Kaggle? Quora,

    (Dirección: http://suo.im/3rS6ZO)

  • Kaggle Guru explica qué es el aumento de gradiente, por Ben Gorman.

    (Dirección: http://suo.im/3nXlWR)

Si bien Scikit-learn tiene su propia implementación de aumento de gradiente, lo cambiaremos ligeramente y usaremos la biblioteca XGBoost, que mencionamos es una implementación más rápida.

Los siguientes enlaces brindan información adicional sobre la biblioteca XGBoost, así como el aumento de gradiente (por necesidad):

  • Entrada de Wikipedia: XGBoost.

    (Dirección: http://suo.im/2UlJ3V)

  • Biblioteca XGBoost en Ghub.

    (Dirección: http://suo.im/2JeQI8)

  • Documentación de XGBoost.

    (Dirección: http://suo.im/QRRrm)

Ahora, sigue este tutorial para unirlo todo:

  • Una guía de implementación de árboles potenciados por gradiente XGBoost en Python, por Jesse Steinweg-Woods.

    (Dirección: http://suo.im/4FTqD5)

También puede endurecerse siguiendo estos ejemplos más breves:

  • Ejemplo de XGBoost en Kaggle (Python).

    (Dirección: http://suo.im/4F9A1J)

  • Un tutorial simple sobre el conjunto de datos de Iris y XGBoost por Ieva Zarina.

    (Dirección: http://suo.im/2Lyb1a)

Paso 6: Más Reducción de Dimensionalidad

La reducción de dimensionalidad es el uso de procedimientos para obtener un conjunto de variables principales que reducen las variables utilizadas para la construcción del modelo de su número inicial a un número reducido.

Hay dos formas principales de reducción de la dimensionalidad:

  • 1. Selección de funciones: seleccione un subconjunto de funciones relevantes.

    (Dirección: http://suo.im/4wlkrj)

  • 2. Extracción de funciones: cree un conjunto de funciones informativo y no redundante de valores derivados.

    (Dirección: http://suo.im/3Gf0Yw)

El siguiente es un par de métodos de extracción de características de uso común.

imagen

El análisis de componentes principales (PCA) es un procedimiento estadístico que utiliza una transformación ortogonal para convertir un conjunto de observaciones de variables posiblemente correlacionadas en un conjunto de valores de variables linealmente no correlacionadas llamadas componentes principales. El número de componentes principales es menor o igual que el número de variables originales. Esta transformación se define de tal manera que el primer componente principal tiene la mayor varianza posible (es decir, tiene en cuenta la mayor variabilidad posible en los datos)

Las definiciones anteriores se tomaron de la entrada de wikipedia de PCA, lea más si está interesado. Sin embargo, la descripción general/tutorial a continuación es bastante completa:

  • Análisis de Componentes Principales: 3 Sencillos Pasos, por Sebastian Raschka.

    (Dirección: http://suo.im/1ahFdW)

El análisis discriminante lineal (LDA) es una generalización del discriminante lineal de Fisher, un método utilizado en estadística, reconocimiento de patrones y aprendizaje automático para descubrir características que se combinan linealmente o que separan dos o más clases de objetos o eventos. La combinación resultante se puede utilizar como clasificador lineal o, más comúnmente, como reducción de dimensionalidad antes de la clasificación posterior.

LDA está estrechamente relacionado con el análisis de varianza (ANOVA) y el análisis de regresión, que también intenta representar una variable dependiente como una combinación lineal de otras características o medidas. Sin embargo, ANOVA usa variables independientes categóricas y variables dependientes continuas, mientras que el análisis discriminante tiene variables independientes continuas y variables dependientes categóricas (es decir, etiquetas de clase).

La definición anterior también es de Wikipedia. Aquí está la lectura completa:

  • Análisis Discriminante Lineal - Hasta Bits, por Sebastian Raschka.

    (Dirección: http://suo.im/gyDOb)

¿Está confundido acerca de la diferencia real entre PCA y LDA para la reducción de dimensionalidad? Sebastian Raschka hizo la siguiente aclaración:

Tanto el análisis discriminante lineal (LDA) como el análisis de componentes principales (PCA) son técnicas de transformación lineal comúnmente utilizadas para la reducción de la dimensionalidad. PCA se puede describir como un algoritmo "no supervisado", ya que "ignora" las etiquetas de clase y su objetivo es encontrar direcciones que maximicen la varianza en un conjunto de datos (los llamados componentes principales). A diferencia de PCA, LDA está "supervisado" y calcula la dirección del eje ("discriminante lineal") que maximiza la separación entre varias clases.

Para una breve descripción de esto, lea lo siguiente:

  • ¿Cuál es la diferencia en la reducción de dimensionalidad entre LDA y PCA? Por Sebastián Raschka.

    (Dirección: http://suo.im/2IPt0U)

Paso 7: aprendizaje más profundo

El artículo anterior proporcionó una entrada para aprender sobre redes neuronales y aprendizaje profundo. Si su aprendizaje ha sido relativamente fluido hasta ahora y desea consolidar su comprensión de las redes neuronales y practicar la implementación de varios modelos comunes de redes neuronales, continúe leyendo.

imagen

Primero, mire algunos materiales básicos para el aprendizaje profundo:

  • Términos y explicaciones clave del aprendizaje profundo, por Matthew Mayo

  • 7 pasos para comprender el aprendizaje profundo, por Matthew Mayo.

    (Dirección: http://suo.im/3QmEfV)

A continuación, pruebe algunos resúmenes/tutoriales concisos sobre TensorFlow, la biblioteca de software de código abierto de Google para inteligencia artificial (un marco de aprendizaje profundo eficiente y prácticamente la mejor herramienta de red neuronal disponible en la actualidad):

  • Escalones de aprendizaje automático: una introducción a TensorFlow que cualquiera puede entender (partes 1 y 2)

  • Interpretación de nivel de entrada: Introducción a TensorFlow que Xiaobai puede entender (Partes 3 y 4)

Finalmente, pruebe estos tutoriales directamente desde el sitio web de TensorFlow, que implementa algunos de los modelos de redes neuronales más populares y comunes:

  • Redes neuronales recurrentes, tutorial de Google TensorFlow.

    (Dirección: http://suo.im/2gtkze)

  • Redes neuronales convolucionales, tutorial de Google TensorFlow.

    (Dirección: http://suo.im/g8Lbg)

Además, actualmente se está escribiendo un artículo sobre los 7 pasos para dominar el aprendizaje profundo, centrándose en el uso de la API de alto nivel además de TensorFlow para aumentar la facilidad y la flexibilidad de la implementación del modelo. También agregaré un enlace aquí cuando termine.

relacionado:

  • 5 libros electrónicos que debe leer antes de ingresar a la industria del aprendizaje automático.

    (Dirección: http://suo.im/SlZKt)

  • 7 pasos para entender el aprendizaje profundo.

    (Dirección: http://suo.im/3QmEfV)

  • Explicaciones y términos clave de aprendizaje automático.

    (Dirección: http://suo.im/2URQGm)

Supongo que te gusta

Origin blog.csdn.net/weixin_56135535/article/details/132076642
Recomendado
Clasificación