Consejos para el preprocesamiento de datos con Python y Scikit Learn

1 más 2 pasos críticos de preprocesamiento de datos usando Python, Scikit Learn. Puede comenzar a trabajar en un proyecto de análisis de datos y aprendizaje automático.

Los datos son la sangre del aprendizaje automático, pero no es la cantidad de datos. Por lo tanto, el preprocesamiento de datos adecuado y óptimo es muy importante antes de comenzar a desarrollar modelos de aprendizaje automático. Entonces, en este artículo, recorrería 1 más 2 pasos críticos de preprocesamiento de datos usando Python y Scikit Learn. Al final de este artículo, podrá comenzar a trabajar en sus propios proyectos de análisis de datos y aprendizaje automático con consejos y trucos prácticos.

Tabla de contenido: Consejos para el preprocesamiento de datos utilizando Python y Scikit Learn

Uno: formular la pregunta

Primero, sugeriría preguntar por qué es necesario aprovechar el aprendizaje automático. La mayoría de las personas que conocí antes podrían decir que les gusta realizar análisis de datos mediante el aprendizaje automático. El análisis de datos es un enfoque, pero no el propósito. En términos de propósito, desde mi perspectiva, básicamente existen tres tipos en el aspecto empresarial:

  • Encuentre elementos nuevos y optimizables que puedan mejorar el rendimiento operativo y empresarial
  • Automatiza tareas operativas con decisiones operativas tomadas por máquinas.
  • Construya y desarrolle modelos de IA de nicho internos

Dos: Importancia de la fuente de datos: scraping interno y externo

Ahora podrías alinear claramente con tu equipo cuál es el propósito de este modelo. Entonces, el descubrimiento y la recopilación de datos es el próximo gran paso.

Para evaluar la fuente de datos, la calidad es siempre la métrica más importante para evaluar si el conjunto de datos se puede utilizar para construir un modelo de aprendizaje automático. Es porque engañaría el proceso de aprendizaje automático y lo dirigiría de manera incorrecta, lo que distorsionaría el resultado del aprendizaje.

La definición de calidad tiene dos opciones básicas para su referencia desde mi experiencia en proyectos. Son datos internos y descartables. Simplemente no intente comprar un conjunto de datos de terceros

Si su empresa no tiene suficientes datos internos, la extracción de datos es una de las mejores formas de recopilarlos. Es porque podemos reconocer de dónde provienen los datos y recopilar los datos que necesitamos específicamente. Podríamos aprovechar proveedores de scraping como BuyfromLo o desarrollar internamente una aplicación de scraping.

www.buyfromlo.com/api

www.buyfromlo.com/app

Tres: limpieza de datos con Python

Una vez que se hayan resuelto los aspectos del conjunto de datos y la fuente de datos, es hora de discutir cómo limpiar y estructurar los datos. No importa si se extraen datos o datos internos, es posible que no estén formateados de manera que se ajusten a los modelos de aprendizaje automático, como Scikit Learn regresión lineal. Estos son los consejos para que pueda verificar y limpiar los datos.

Paso 1: convierta su conjunto de datos en un DataFrame

El tipo de DataFrame es una parte del alma del cuerpo en el aprendizaje automático. No importa si ingresa los datos usando csv o recupera la lista de datos usando API, aquí está la línea de código para su información

Read CSV

import pandas as pd

dataset = pd.read_csv ( 'planprice3.csv' )

Data List

List = [1, 2, 3, 4]

Dataset = pd.DataFrame(List)

Para el conjunto de datos CSV, a veces el encabezado puede no ser el que usted configuró y el que configuró depende del segundo rol. Por lo tanto, aquí está la manera de resolver esto.

dataset = pd.read_csv ( 'planprice3.csv' )

dataset.columns = dataset.iloc [ 0 ]

dataset = dataset [ 1 :]

Paso 2: sepa qué información cubre el conjunto de datos

pp_dataset.shape

(84359, 13)

Esto indica cuál es la forma de su conjunto de datos. La forma aquí significa cuántas características o llamadas variables (variables dependientes más independientes) y cuántas instancias tiene el conjunto de datos.

print ( dataset.info ())

Este es un método muy útil que le brinda más detalles sobre el conjunto de datos.

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 84359 entries, 1 to 84359

Data columns (total 13 columns):

# Column Non-Null Count Dtype

--- ------ -------------- -----

0 Purchase Date 84359 non-null object

1 Campaign 84359 non-null object

2 Source Desc 84359 non-null object

3 Source Type 84359 non-null object

4 Country 84359 non-null object

5 Company Name 84358 non-null object

6 Amount ($) 84359 non-null object

7 Base Price ($) 84359 non-null object

8 Gender 84359 non-null object

9 Plan Type 84359 non-null object

10 Activity 84359 non-null object

11 Created By Name 84359 non-null object

12 Created by ID 84359 non-null object

dtypes: object(13)

memory usage: 8.4+ MB

Si su conjunto de datos tiene un tipo de datos entero, también puede usar esta línea para ver el panorama general del número.

dataset.describe ()

Paso 3: resolver el problema de valor faltante

Como puede ver arriba, es posible que la cantidad de instancias no sea la misma y algunas funciones pueden tener menos instancias que otras. Esto no es bueno para hacer ejercicio, así que esta es la manera de hacer las cosas consistentes.

dataset.dropna ( inplace= True )

Paso 4: numerar todos los datos

El aprendizaje automático no puede leer cadenas y solo se pueden leer números enteros y números. De hecho, el mundo real incluye tantas cadenas en el conjunto de datos. Entonces necesitamos convertir cadenas en números. Aquí están las bibliotecas de scikit y el código para hacerlo.

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder ()

label = le.fit_transform ( dataset [ 'Country' ])

dataset [ 'Country1' ] = label

dataset.drop ( "Country" , axis= 1 , inplace= True )

Para los casos en los que necesita convertir más de una característica

dataset [[ 'Campaign' , 'Source Desc' , 'Source Type' , 'Company Name' , 'Gender' , 'Plan Type' , 'Activity' ]] = dataset [[ 'Campaign' , 'Source Desc' , 'Source Type' , 'Company Name' , 'Gender' , 'Plan Type' , 'Activity' ]] .apply ( le.fit_transform )

Paso 5: convertir el número al tipo de datos entero

Algunos valores pueden parecer números, pero en realidad pueden ser del tipo de datos de cadena. En este caso, necesitamos convertirlos a un tipo de datos entero. Aquí está el ejemplo de código:

dataset [ 'Amount ($)' ] = dataset [ 'Amount ($)' ] .astype ( int )

API de Scraping gratuita y script Python completo de limpieza de datos

Si está interesado en consejos para el preprocesamiento de datos utilizando Python y Scikit Learn, suscríbase a nuestro boletín agregando el mensaje 'DS + scripts completos y token gratuito de API de raspado . Le enviaremos el script cuando el script de la aplicación actualizado esté activo.

Espero que disfrute leyendo Consejos para el preprocesamiento de datos con Python y Scikit Learn. Si lo hizo, apóyenos haciendo una de las cosas que se enumeran a continuación, porque siempre ayuda a nuestro canal.

Recomendación del curso Coursea sobre ciencia de datos y aprendizaje automático