Introducción al aprendizaje automático de Python y reserva de conocimientos básicos

Parte 1 Introducción al aprendizaje automático


El aprendizaje automático es la extracción de conocimiento a partir de datos. Es un campo de investigación en la intersección de la estadística, la inteligencia artificial y la informática. También se conoce como análisis predictivo o aprendizaje estadístico.

1.1 ¿Por qué el aprendizaje automático?

En los primeros días de las aplicaciones "inteligentes", muchos sistemas procesaban datos utilizando reglas de decisión "si" y "si no" creadas por humanos, o se ajustaban en función de la entrada del usuario.

Por ejemplo, la identificación y limpieza de spam, este es un ejemplo del sistema de reglas diseñado por expertos para diseñar "aplicaciones inteligentes". Las reglas de decisión hechas por humanos son factibles para algunas aplicaciones, especialmente si las personas están muy familiarizadas con el proceso de su modelos Aplicaciones

Pero la especificación artificial de reglas de decisión tiene dos desventajas:

  • La lógica necesaria para tomar decisiones solo es aplicable a un solo dominio y una sola tarea, e incluso un ligero cambio puede requerir reescribir todo el sistema.

  • Hacer reglas requiere una comprensión profunda del proceso de toma de decisiones de los expertos humanos.

Un ejemplo de donde este enfoque de creación de reglas artificiales no funciona es la detección de rostros en imágenes, donde el principal problema es que la forma en que una computadora "percibe" los píxeles (los píxeles que forman una imagen en la computadora) es muy diferente de la forma en que los humanos perciben las caras Gran diferencia. Es precisamente por esta diferencia en la representación que es básicamente imposible para los humanos formular un buen conjunto de reglas para describir la composición de rostros en imágenes digitales.

Pero con el aprendizaje automático, ingresar una gran cantidad de imágenes de rostros en el programa es suficiente para que el algoritmo determine qué características se necesitan para reconocer rostros.

1.1.1 Problemas que puede resolver el aprendizaje automático

Los algoritmos de aprendizaje automático más exitosos son aquellos que automatizan el proceso de toma de decisiones al generalizar a partir de ejemplos conocidos , esto es aprendizaje supervisado.

Aprendizaje supervisado : algoritmos de aprendizaje automático que aprenden de pares de entrada/salida

El usuario alimenta al algoritmo con una entrada emparejada y una salida esperada, y el algoritmo encuentra una manera de dar la salida esperada dada la entrada, especialmente dadas entradas nunca antes vistas sin ayuda humana. Dar la salida correspondiente (esta es la automatización del proceso de decisión )

Problemas que el aprendizaje supervisado puede resolver: Reconocer códigos postales escritos a mano en sobres, juzgar si un tumor es benigno en base a imágenes médicas, detectar comportamientos fraudulentos en transacciones con tarjetas de crédito

Una observación interesante a tener en cuenta en estos ejemplos es que, si bien la entrada y la salida parecen bastante simples, el proceso de recopilación de datos es bastante diferente en los tres ejemplos.

Aprendizaje no supervisado : solo se conocen los datos de entrada, no se proporcionan datos de salida al algoritmo

Problemas que puede resolver el aprendizaje no supervisado: identificar el tema de una serie de publicaciones de blog, segmentar a los clientes en grupos con preferencias similares, detectar patrones de acceso inusuales a un sitio web

Ya sea que se trate de una tarea de aprendizaje supervisada o de una tarea de aprendizaje no supervisada, es muy importante representar los datos de entrada en una forma que la computadora pueda entender. A menudo es útil pensar en los datos como tablas

Cada punto de datos que desea procesar (cada correo electrónico, cada cliente, cada transacción) corresponde a una fila en la tabla, que describe cada atributo del punto de datos (como la edad del cliente, el monto de la transacción o la ubicación de la transacción) corresponde a una columna en la mesa

En el aprendizaje automático, cada entidad o cada fila aquí se denomina muestra (muestra) o punto de datos , y cada columna (utilizada para describir los atributos de estas entidades) se denomina característica

1.1.2 Familiarizado con tareas y datos

Probablemente, la parte más importante del proceso de aprendizaje automático es comprender los datos con los que está tratando y cómo esos datos se relacionan con la tarea que desea resolver.

Antes de comenzar a crear modelos, debe comprender el contenido de su conjunto de datos. Cada algoritmo difiere en el tipo de datos de entrada y el problema que es más adecuado para resolver.

En un nivel más amplio, los algoritmos y métodos de aprendizaje automático son solo una parte del proceso de resolución de un problema específico, y es importante tener siempre en cuenta el panorama general de todo el proyecto (centrarse en la resolución de problemas)

1.2 Por qué elegir Python

El aprendizaje automático usa Python por tres razones principales:

1. Python se ha convertido en un lenguaje común para muchas aplicaciones de ciencia de datos, combinando el poder de un lenguaje de programación de propósito general con la facilidad de uso de un lenguaje de secuencias de comandos específico de dominio como MATLAB o R

2. Python tiene bibliotecas para varias funciones, como carga de datos, visualización, estadísticas, procesamiento de lenguaje natural, procesamiento de imágenes, etc.

3. Use la terminal u otras herramientas como Jupyter Notebook para interactuar directamente con el código

1.3 scikit-aprender

scikit-learn es un proyecto de código abierto que es de uso y distribución gratuitos, cualquiera puede obtener fácilmente su código fuente para ver los principios detrás de él, es una herramienta muy popular y la biblioteca de aprendizaje automático de Python más famosa

scikit-learn también se puede usar con una gran cantidad de otras herramientas informáticas científicas de Python

Guía del usuario de scikit-learn (http://scikit-learn.org/stable/user_guide.html)

scikit-learn depende de otros dos paquetes de Python: NumPy y SciPy

Para el trazado y el desarrollo interactivo, también debe instalar matplotlib, IPython y Jupyter Notebook

Si ya tiene instalado Python, puede instalar todos los paquetes anteriores con pip:

pip install numpy scipy matplotlib ipython scikit-learn pandas

Nota : preste atención a la posición de entrada del comando pip Utilice el comando pip en la ruta de Python Scripts y espere a que se complete la descarga.

inserte la descripción de la imagen aquí

1.4 Bibliotecas y herramientas necesarias

Es importante conocer scikit-learn y cómo usarlo, pero existen otras bibliotecas que también pueden mejorar su experiencia de programación. scikit-learn se basa en las bibliotecas de computación científica NumPy y SciPy. Además de NumPy y SciPy, también usaremos pandas y matplotlib, y presentaremos Jupyter Notebook, un entorno de programación interactivo basado en navegador.

1.4.1 Cuaderno Jupyter

Jupyter Notebook es un entorno interactivo que puede ejecutar código en un navegador. Esta herramienta es muy útil en el análisis exploratorio de datos. Aunque Jupyter Notebook admite varios lenguajes de programación, solo necesitamos admitir Python. Úselo para integrar código, archivos y gráficos. conveniente

1.4.2 Numpy

NumPy es uno de los paquetes fundamentales para la computación científica en Python: sus características incluyen matrices multidimensionales, funciones matemáticas avanzadas (como operaciones de álgebra lineal y transformadas de Fourier) y generadores de números pseudoaleatorios.

Nota : en scikit-learn, las matrices NumPy son la estructura de datos básica

scikit-learn acepta datos en formato de matriz NumPy. Todos los datos que utilice deben convertirse en una matriz NumPy. La función principal de NumPy es la clase ndarray, que es una matriz multidimensional (n-dimensional). Todos los elementos de la matriz debe ser del mismo tipo

Para los objetos de la clase NumPy ndarray, nos referimos a ellos simplemente como "matrices NumPy" o "matrices".

#输入
import numpy as np 
x = np.array([[1, 2, 3], [4, 5, 6]])
print("x:\n{}".format(x))
---
#输出
x:
    [[1 2 3] 
     [4 5 6]]

1.4.3 SciPy

SciPy es una colección de funciones para computación científica en Python. Tiene múltiples funciones, como programas avanzados de álgebra lineal, optimización de funciones matemáticas, procesamiento de señales, funciones matemáticas especiales y distribución estadística. Scikit-learn usa la colección de funciones en SciPy para implementar algoritmos

Para nosotros, lo más importante en SciPy es scipy.sparse: puede dar matrices dispersas (sparse matrix), las matrices dispersas son otra forma de representar datos en scikit-learn

En términos generales, es imposible crear una representación densa de datos dispersos (representación densa) (porque desperdicia demasiado memoria), por lo que necesitamos crear directamente su representación dispersa (representación dispersa)

#输入
from scipy import sparse
# 创建一个二维NumPy数组,对角线为1,其余都为0 
eye = np.eye(4) 
print("NumPy array:\n{}".format(eye))
---
#输出
NumPy array: [[ 1. 0. 0. 0.] [ 0. 1. 0. 0.] [ 0. 0. 1. 0.] [ 0. 0. 0. 1.]]

1.4.4 matplotlib

matplotlib es la principal biblioteca de dibujo científico para Python. Su función es generar contenido visual que se puede publicar, como gráficos de líneas, histogramas, diagramas de dispersión, etc. La visualización de datos y varios análisis pueden brindarle una comprensión profunda, y todos Las visualizaciones se realizan con matplotlib. En Jupyter Notebook, puede usar los comandos en línea %matplotlib notebook y %matplotlib para mostrar imágenes directamente en el navegador.

Se recomienda utilizar el comando de cuaderno %matplotlib, que puede proporcionar un entorno interactivo

1.4.5 pandas

Pandas es una biblioteca de Python para procesar y analizar datos. Se basa en una estructura de datos llamada DataFrame. En pocas palabras, un DataFrame de pandas es una tabla, similar a una tabla de Excel. Pandas contiene una gran cantidad de tablas para modificar y operar el método de formulario

A diferencia de NumPy, que requiere que los elementos de una matriz sean del mismo tipo, cada columna de pandas puede ser de un tipo diferente y uno de sus puntos fuertes es que puede extraer datos de muchos formatos de archivo y bases de datos.

Declaración de derechos de autor : el contenido anterior se extrajo parcialmente del "Tutorial básico de Python Machine Learning" - O'Reilly Media, Inc.

Si el artículo es útil para usted, recuerde respaldarlo con un clic y tres enlaces ~

Supongo que te gusta

Origin blog.csdn.net/qq_50587771/article/details/123223992
Recomendado
Clasificación