Python | Genere conjuntos de datos de prueba para el aprendizaje automático

Siempre que pensamos en Machine Learning, lo primero que nos viene a la mente es un conjunto de datos. Si bien hay muchos conjuntos de datos que puede encontrar en sitios web como Kaggle, a veces es útil extraer datos por su cuenta y generar su propio conjunto de datos. Generar su propio conjunto de datos le brinda más control sobre los datos y le permite entrenar su modelo de aprendizaje automático. 
 

En este artículo, generaremos conjuntos de datos aleatorios utilizando la biblioteca Numpy en Python.
 

Bibliotecas necesarias:

-> Numpy: pip3 install numpy
-> Pandas: pip3 install pandas
-> Matplotlib: pip3 install matplotlib

Distribución normal:

En la teoría de la probabilidad, la distribución normal o gaussiana es una distribución de probabilidad continua muy común que es simétrica con respecto a la media, lo que muestra que los datos cercanos a la media son más frecuentes que los datos alejados de la media. Las distribuciones normales se usan en estadísticas y se usan a menudo para representar variables aleatorias de valor real. 
La distribución normal es el tipo de distribución más común en los análisis estadísticos. La distribución normal estándar tiene dos parámetros: la media y la desviación estándar. La media es la tendencia central de la distribución. La desviación estándar es una medida de la variabilidad. Define el ancho de la distribución normal. La desviación estándar determina qué tan lejos de la media tienden a caer los valores. Representa la distancia típica entre las observaciones y el promedio. se ajusta a muchos fenómenos naturales, por ejemplo, las alturas, la presión arterial, el error de medición y las puntuaciones de coeficiente intelectual siguen la distribución normal.
 

Gráfico de la distribución normal: 
 

Ejemplo: 
 

PYTHON3

# importing libraries
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
 
# initialize the parameters for the normal
# distribution, namely mean and std.
# deviation
 
# defining the mean
mu = 0.5
# defining the standard deviation
sigma = 0.1
 
# The random module uses the seed value as a base
# to generate a random number. If seed value is not
# present, it takes the system’s current time.
np.random.seed(0)
 
# define the x co-ordinates
X = np.random.normal(mu, sigma, (395, 1))
 
# define the y co-ordinates
Y = np.random.normal(mu * 2, sigma * 3, (395, 1))
 
# plot a graph
plt.scatter(X, Y, color = 'g')
plt.show()

Producción : 
 

Veamos un mejor ejemplo.
Generaremos un conjunto de datos con 4 columnas. Cada columna en el conjunto de datos representa una característica. La quinta columna del conjunto de datos es la etiqueta de salida. Varía entre 0-3. Este conjunto de datos se puede utilizar para entrenar un clasificador, como un clasificador de regresión logística, un clasificador de red neuronal, máquinas de vectores de soporte, etc.
 

PYTHON3

# importing libraries
import numpy as np
import pandas as pd
import math
import random
import matplotlib.pyplot as plt
 
# defining the columns using normal distribution
 
# column 1
point1 = abs(np.random.normal(1, 12, 100))
# column 2
point2 = abs(np.random.normal(2, 8, 100))
# column 3
point3 = abs(np.random.normal(3, 2, 100))
# column 4
point4 = abs(np.random.normal(10, 15, 100))
 
# x contains the features of our dataset
# the points are concatenated horizontally
# using numpy to form a feature vector.
x = np.c_[point1, point2, point3, point4]
 
# the output labels vary from 0-3
y = [int(np.random.randint(0, 4)) for i in range(100)]
 
# defining a pandas data frame to save
# the data for later use
data = pd.DataFrame()
 
# defining the columns of the dataset
data['col1'] = point1
data['col2'] = point2
data['col3'] = point3
data['col4'] = point4
     
# plotting the various features (x)
# against the labels (y).
plt.subplot(2, 2, 1)
plt.title('col1')
plt.scatter(y, point1, color ='r', label ='col1')
     
plt.subplot(2, 2, 2)
plt.title('Col2')
plt.scatter(y, point2, color = 'g', label ='col2')
     
plt.subplot(2, 2, 3)
plt.title('Col3')
plt.scatter(y, point3, color ='b', label ='col3')
     
plt.subplot(2, 2, 4)
plt.title('Col4')
plt.scatter(y, point4, color ='y', label ='col4')
     
# saving the graph
plt.savefig('data_visualization.jpg')       
 
# displaying the graph
plt.show()

Producción : 
 

Publicación traducida automáticamente

Artículo escrito por Adith Bharadwaj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *