030. (8.4-8.5) Introducción a Scikit-Learn

Diseño de la tabla de datos de Scikit-Learn

El aprendizaje automático es el aprendizaje de la creación de modelos a partir de datos, por lo que primero debe comprender cómo representar los datos para que las computadoras los comprendan. Scikit-Learn cree que la mejor manera de representar datos es en forma de tablas de datos.

Ejemplo:
Inserte la descripción de la imagen aquí

API de evaluación de Scikit-Learn

Principales principios de diseño a seguir:

  • Unidad: todos los objetos utilizan una interfaz común para conectar un conjunto de métodos y un documento unificado.

  • Introspección: todos los valores de los parámetros son atributos públicos.

  • Restrinja el nivel de objeto: solo los algoritmos pueden ser representados por clases de Python. Los conjuntos de datos se representan mediante tipos de datos estándar (matriz NumPy, Pandas DataFrame, matriz dispersa SciPy) y los nombres de los parámetros se representan mediante cadenas estándar de Python.

  • Combinación de funciones: muchas tareas de aprendizaje automático se pueden implementar con una serie de algoritmos básicos, y Scikit-Learn hace todo lo posible para respaldar esta posibilidad.

  • Valores predeterminados sensibles: Scikit-Learn predefine los valores predeterminados apropiados cuando el modelo requiere que los usuarios establezcan parámetros

Todos los algoritmos de aprendizaje automático en Scikit-Learn se implementan a través de la API del evaluador , que proporciona una interfaz unificada para varias aplicaciones de aprendizaje automático .

Modelar hiperparámetros y verificación

Antecedentes:
Inserte la descripción de la imagen aquí
después de seleccionar la clase de modelo, todavía hay muchos parámetros que deben configurarse. Es posible que tengamos que considerar las siguientes cuestiones:
Inserte la descripción de la imagen aquí
Se deben determinar algunos parámetros importantes al elegir una clase de modelo. Estos parámetros a menudo se denominan hiperparámetros , que son parámetros que deben determinarse antes de que el modelo se ajuste a los datos.

(En Scikit-Learn, los parámetros del modelo obtenidos después de usar el método fit () están todos subrayados).

Para tomar la decisión correcta, necesitamos una forma de verificar si el modelo y los hiperparámetros seleccionados pueden ajustarse bien a los datos.

Errores comunes durante la validación : use el mismo conjunto de datos para entrenar y evaluar el modelo.

El método correcto de verificación del modelo :

  1. Aparte (como la herramienta train_test_split), la desventaja es que la verificación del modelo perderá parte de las oportunidades de entrenamiento, especialmente cuando el conjunto de datos de entrenamiento es relativamente pequeño, el problema es más obvio.

  2. Método de validación cruzada: Scikit-Learn proporciona varios métodos de validación cruzada para diferentes escenarios de aplicación, todos los cuales se implementan en el módulo cross_validation en forma de iteradores. Caso especial: el caso extremo en el que el número de rondas de verificación cruzada es el mismo que el número de muestras, es decir, solo hay una muestra para probar a la vez y todas las demás muestras se utilizan para entrenamiento. Este tipo de verificación cruzada se denomina verificación cruzada LOO (dejar uno fuera, dejar solo uno).

    Ejemplo:
    Inserte la descripción de la imagen aquí

Elegir el mejor modelo

1. Problemas de desviación y varianza El
"mejor modelo" puede considerarse fundamental para identificar problemas de equilibrio de sesgo y varianza.
Inserte la descripción de la imagen aquí
• Para modelos de alto sesgo, el rendimiento del modelo en el conjunto de validación es similar al del conjunto de entrenamiento.
• Para modelos de alta varianza, el rendimiento del modelo en el conjunto de validación es mucho peor que en el conjunto de entrenamiento.

El punto clave de mejora: la complejidad del modelo. (Esto conduce a la curva de verificación)

Curva de validación : En
primer lugar, se cree que, en circunstancias normales, el modelo se ajusta a los datos a los que ha estado expuesto
y es mejor que ajustar los datos a los que no ha estado expuesto .
Inserte la descripción de la imagen aquí
Los métodos de ajuste para la complejidad de los diferentes modelos son bastante diferentes. Por ejemplo, la regresión lineal es principalmente para determinar el número de polinomios.

¿Cómo controlar la complejidad del modelo de manera más conveniente? Esta pregunta puede ser respondida por la visualización de la curva de verificación - que se puede conseguir fácilmente mediante el uso de la función de validation_curve scikit-learn . Siempre que proporcione el modelo, los datos, el nombre del parámetro y la información del rango de verificación, la función calculará automáticamente la puntuación de entrenamiento y la puntuación de verificación dentro del rango de verificación.

2. Curva de aprendizaje
Otro factor importante que afecta el efecto del modelo es que el modelo óptimo a menudo se ve afectado por la cantidad de datos de entrenamiento.

Los conjuntos de datos grandes admiten modelos más complejos.
Inserte la descripción de la imagen aquí
La característica más importante de la curva de aprendizaje es que a medida que aumenta el número de muestras de entrenamiento, la puntuación convergerá a un valor fijo. En este momento, se cree que agregar más muestras de entrenamiento no ayudará. La única forma de mejorar el rendimiento de un modelo es cambiar el modelo (normalmente, el mismo tipo se reemplaza por un modelo más complejo).

curva de aprendizaje de sklearn:
Inserte la descripción de la imagen aquí

Ingeniería de características

Vectorización: convierta datos en cualquier formato a una forma vectorial con buenas características.

  1. Características de clasificación

    La solución más utilizada es la codificación one- hot . Agregue efectivamente columnas adicionales, de modo que 0 y 1 aparezcan en las columnas correspondientes para indicar la presencia o ausencia de cada valor de clasificación.

    Inserte la descripción de la imagen aquí Inserte la descripción de la imagen aquí
    Desventaja: si sus características de clasificación tienen muchos valores enumerados, la dimensionalidad del conjunto de datos
    aumentará drásticamente. Sin embargo, dado que hay muchos ceros en los datos codificados, es muy eficiente usar una representación matricial dispersa

  2. Característica de texto

    La mayor parte de la recopilación automatizada de datos de redes sociales se basa en medios técnicos para codificar texto en números . Uno de los métodos de codificación más simples para la recopilación de datos es el conteo de palabras : proporcione algunos textos, le permita contar el número de veces que aparece cada palabra y luego colóquelos en una tabla.
    Inserte la descripción de la imagen aquí
    El resultado es una matriz dispersa que registra el número de apariciones de cada palabra en cada frase.
    Inserte la descripción de la imagen aquí

  3. Características de la imagen : es la forma más sencilla de expresar una imagen con píxeles como características. Pero en muchos tipos de tareas, este tipo de método generalmente no es apropiado.

  4. Características derivadas : nuevas características derivadas de características de entrada mediante transformación matemática.

    Ejemplo: la conversión de una regresión lineal en una regresión polinomial no se logra cambiando el modelo, sino cambiando los datos de entrada. Este enfoque a veces se denomina regresión de función base .

    Esta idea de mejorar el efecto del modelo no cambiando el modelo, sino cambiando la entrada, es la base de muchos métodos de aprendizaje automático más potentes .

  5. Lidiar con los valores perdidos

    Relleno de valores faltantes: hay muchas estrategias correspondientes, algunas son simples (por ejemplo, reemplazar valores faltantes con medias de columna) y otras son complicadas (por ejemplo, usar relleno de matrices u otros modelos para lidiar con valores faltantes).
    Inserte la descripción de la imagen aquí

  6. Procesamiento de oleoductos

    Cuando necesite utilizar varios pasos en serie, puede resultar problemático aplicar un método manualmente. Sklearn proporciona un método de procesamiento de canalización para reducir la cantidad de código.Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/u013598957/article/details/107780955
Recomendado
Clasificación