Libro - Python y Los Datos
Libro - Python y Los Datos
1. LOS DATOS....................................................................................................................... 4
1.1. Numpy ...........................................................................................................................5
1.2. Pandas............................................................................................................................9
1.2.1. Series.................................................................................................................... 10
1.2.2. DataFrame.......................................................................................................... 11
2. ESTADÍSTICA DESCRIPTIVA .....................................................................................13
3. PREDICCIONES............................................................................................................15
3.1. Regresión lineal......................................................................................................... 15
3.2. Árboles de decisión................................................................................................... 19
3.3. Random Forest........................................................................................................... 21
4. CLUSTERING O AGRUPAMIENTO............................................................................23
4.1. KMeans........................................................................................................................ 23
4.2. Meanshift.................................................................................................................... 25
BIBLIOGRAFÍA...................................................................................................................26
2
INTRODUCCIÓN
3
01
LOS DATOS
El primer paso para construir un sistema de IA es considerar el problema que se tie-
ne que resolver. La disponibilidad de datos tendrá un gran impacto en cómo se en-
sambla el sistema y qué técnicas de inteligencia artificial se utilizarán. La cantidad y
calidad de los datos disponibles tendrá un impacto en la calidad del producto final.
En este sentido, se puede argumentar que la disponibilidad de datos y la accesibi-
lidad son el principal impulsor del desarrollo de productos que utilizan tecnologías
de IA.
Como primera clasificación de los datos se pueden observar dos grandes grupos:
aquellos que son estructurados y los desestructurados.
Los datos estructurados son datos que se incorporan a un modelo de datos para
estandarizar las relaciones entre los elementos de datos. En términos más simples,
los datos estructurados son aquellos que encajan en una estructura predefinida y
diseñada expresamente. Por lo general, estos modelos se han diseñado con un ob-
jetivo particular en mente. Típicamente son representaciones en formato tabular
o de tablas (matrices).
Los datos desestructurados son datos que no están organizados de acuerdo con
ningún modelo de datos preexistente. En términos generales, lo que se considera
“big data” son datos no estructurados, al menos en su forma sin procesar. Los datos
no estructurados no se procesan y, a menudo, son generados por sistemas dirigi-
dos por máquinas donde el propósito de los datos no es responder una pregunta
específica; esto incluye, por ejemplo, publicaciones en redes sociales, imágenes de
cámaras de vigilancia o imágenes de satélite.
Por lo general los datos provenientes de sistemas empresariales, son datos estruc-
turados, para lo cual existen herramientas para su manipulación. Una de ellas en
Python es el paquete Pandas y Numpy.
4
1.1. NUMPY
NumPy es el paquete en Python para la computación científica. En este paquete se
proporciona un objeto de matriz multidimensional, varios objetos derivados (como
matrices y matrices enmascaradas) y una variedad de rutinas para operaciones rá-
pidas de matrices, que incluyen manipulación matemática, lógica, de dimensiones,
clasificación, selección, entrada y salida, álgebra lineal básica, operaciones estadís-
ticas básicas, simulación aleatoria.
Una vez que se está creado y activado el entorno virtual con el que se trabaja, se
debe instalar el paquete de Numpy mediante el comando: pip install numpy
5
En Python una de las colecciones tradicionales son las listas (List), las mismas se
definen utilizando con corchetes y sus elementos en el interior separados por el
carácter coma (,). Numpy permite generar un ndarray a partir de una lista, como se
muestra en la captura de pantalla 2.
Figura 2: [(Creación de un
ndarray.), 2021]
Una de las operaciones más tediosas de realizar a mano con matrices es la multi-
plicación entre dos matrices y el cálculo del determinante. Ambas operaciones son
simples de calcular usando las funcionalidades que brinda Numpy. En el ejemplo de
la captura de pantalla 3 se definen dos matrices (líneas 14 y 15), las cuales son crea-
das con las listas definidas en Python (líneas 3 a 12). La multiplicación entre ambas
matrices se realiza usando la función matmul(m1, m2), la cual recibe las matrices
con las restricciones correspondiente a álgebra matricial (línea 17). Dado que el re-
sultado de la multiplicación es una matriz cuadrada (2x2 en este ejemplo), se puede
calcular el determinante utilizando la función linalg.det(p) (línea 18).
Figura 3: [(Multiplicación de
matrices.), 2021]
6
Cabe destacar que en el ejemplo de la captura 3, las matrices son de dos dimen-
siones. En ese caso las dimensiones de las matrices son fácilmente de visualizar,
aunque no sea el caso, existe una propiedad en las matrices que devuelve la forma
que tiene la matriz: shape. Por ejemplo, si se desea conocer las dimensiones de la
matriz m1: print(m1.shape), lo que mostrará por la terminal: (2, 3). Esto quiere de-
cir que tiene 2 filas y 3 columnas. Además, tienen una propiedad size que devuelve
la cantidad de elementos.
Creación de ndarray
7
• np.zeros(dimensiones): Crea y devuelve una referencia a un array con las dimen-
siones especificadas en la tupla dimensiones cuyos elementos son todos ceros.
Por ejemplo: np.zeros((3, 2))
• np.arange(inicio, fin, salto): Crea y devuelve una referencia a un array de una di-
mensión cuyos elementos son la secuencia desde inicio hasta fin tomando valo-
res cada salto. Por ejemplo: np.arange(10, 50, 5). Hay que tener presente que del
“fin” no se incluye en el vector resultante.
• np.linspace(inicio, fin, n): Crea y devuelve una referencia a un array de una di-
mensión cuyos elementos son la secuencia de n valores equidistantes desde ini-
cio hasta fin.
8
1.2. PANDAS
• Limpieza de datos;
• Llenado de datos;
• Normalización de datos;
• Fusiona y une;
• Visualización de datos;
• Análisis estadístico;
• Inspección de datos;
• Cargar y guardar datos.
De hecho, con Pandas, se puede hacer todo lo que hacen los científicos de datos
para el análisis y manipulación de datos.
Las series se pueden crear de diversas formas, por ejemplo desde una lista o diccio-
nario de Python. En el caso de partir desde una lista, los índices no tienen un nom-
bre, solo queda el número asociado. Por otro lado, partiendo desde un diccionario
los nombres pasan a ser los mismos para los índices.
Existen varias propiedades o métodos para ver las características de una serie.
• s.index : Devuelve una lista con los nombres de las filas del DataFrame s. Según el
ejemplo, devuelve: Index([‘field1’, ‘field2’, ‘field3’, ‘field4’, ‘field5’], dtype=’object’).
El cual es otro tipo de dato definido en Pandas: Index, y al igual que otras
colecciones en Python, la misma puede ser iterable.
10
1.2.2. DataFrame
Un objeto del tipo DataFrame define un conjunto de datos estructurado en forma
de tabla donde cada columna es un objeto de tipo Series, es decir, todos los datos
de una misma columna son del mismo tipo, y las filas son registros que pueden
contener datos de distintos tipos.
Un DataFrame contiene dos índices, uno para las filas y otro para las columnas, y se
puede acceder a sus elementos mediante los nombres de las filas y las columnas. Se
puede crear un DataFrame a partir de un diccionario cuyas claves son los nombres
de las columnas y los valores son listas con los datos de las columnas, cabe aclarar
que todas las listas deben tener la misma cantidad de elementos.
11
Figura 12: [(Agregar nombre a los
índices.), 2021]
Una de las grandes ventajas que ofrece Pandas para la creación de DataFrame, es
la posibilidad de importar los datos desde diversos orígenes, por ejemplo, desde un
archivo con los valores separados por coma (CSV). Siguiendo con el ejemplo de los
países, los datos se encuentran en un archivo: paises.csv, como se muestra en la
captura de pantalla 6.
Si se cuentan los campos de la primera fila (son 4: país, capital, población y superficie)
y se comparan con el resto (son 5) se tiene una diferencia de 1 columna, en este
caso Pandas va a asumir que los primeros datos de cada registro corresponden al
índice (AR, UR, CH, etc.). Para la importación del archivo a un nuevo DataFrame se
utiliza la función read_csv(nombre_archivo).
12
02
ESTADÍSTICA
DESCRIPTIVA
Las estadísticas descriptivas son coeficientes descriptivos breves que resumen un
conjunto de datos dado, que puede ser una representación de toda la población o
una muestra de una población.
Tanto el paquete Numpy, como Pandas brindan funciones y métodos para descri-
bir los datos. Siguiendo con el ejemplo del DataFrame con países, el mismo tiene
un método: describe() el cual brinda los principales indicadores: conteo, promedio,
desvío estándar, mínimo, máximo y quartiles.
13
Además del método mencionado, existen otros como los que se detallan en la tabla
siguiente:
Método Descripción
count Cantidad de valores distintas de NaN
min, max Determinar el valor mínimo y máximo
Determina el índice del valor mínimo y máximo
argmin, argmax
(En Series)
Calcula el cuantil de la muestra, parámetro
quantile
entre 0 y 1
sum Realizar la suma de los valores
mean Calcula la media de los valores
Determina la mediana aritmética de los
median
valores
Devuelve la desviación media absoluta de los
mad
valores.
prod Realiza el producto de los valores
var Calcula la varianza de los valores
std Calcula el desvío estándar de los valores
14
03
PREDICCIONES
El análisis predictivo es el uso de datos, algoritmos estadísticos y técnicas
de aprendizaje automático para identificar la probabilidad de resulta-
dos futuros basados en datos históricos. El objetivo es ir más allá de
saber qué ha sucedido para proporcionar una mejor evaluación de lo
que sucederá en el futuro.
• ¿Un conjunto de variables predictoras hace un buen trabajo al predecir una varia-
ble (que se entiende dependiente de las primeras) de resultado?
• ¿Qué variables son significativamente predictores con respecto a la variable de
resultado y de qué manera, cómo estas impactan en la variable de resultado?
15
Estas estimaciones de regresión se utilizan para explicar la relación entre una va-
riable dependiente y una o más variables independientes. La forma más simple de
la ecuación de regresión con una variable dependiente y una independiente se de-
fine mediante la fórmula y = β X + c + ε, donde:
Existen muchos nombres para la variable dependiente de una regresión, puede de-
nominarse variable de resultado, variable de criterio, variable endógena o regresi-
va. Las variables independientes pueden denominarse variables exógenas, varia-
bles predictoras o regresores.
X = [‘age’, ‘sex’, ‘bmi’, ‘bp’, ‘s1’, ‘s2’, ‘s3’, ‘s4’, ‘s5’, ‘s6’]
16
Estos atributos corresponden a las siguientes mediciones:
17
En la línea 7, se está cargando los datos desde el datasets prearmado que tiene
sklearn para prácticas.
Línea 9 a 14, es una sola instrucción, separa los datos y los objetivos en dos grupos:
train y test. El primero para entrenar el modelo, y el segundo para validar que tan
bien entrenado ha quedado el modelo.
En la línea 22 se realiza una predicción de los valores que habían sido apartados
(X_test) para la validación del modelo y se guardan en la variable y_pred. Con eso,
se pueden realizar métricas para validar el modelo, como es el ejemplo, el cálculo
del error cuadrático medio, líneas 24 y 25.
Con las líneas 27 a 32 se realiza un gráfico donde se muestra una línea diagonal a
fin de marcar una división, y los puntos donde se muestran los valores predichos
versus los que deberían haber sido.
Existen otros métodos de regresión, que también pueden ser resueltos con el pa-
quete sklearn, por ejemplo la regresión logística, que es una clase de regresión en
la que la variable independiente se utiliza para predecir la variable dependiente.
Cuando la variable dependiente tiene dos categorías, entonces es una regresión lo-
gística binaria. Cuando la variable dependiente tiene más de dos categorías, enton-
ces es una regresión logística multinomial. Cuando se va a clasificar la categoría de
variable dependiente, se trata de una regresión logística ordinal.
18
3.2. ÁRBOLES DE DECISIÓN
Los árboles de decisión (DT) son un método de aprendizaje supervisado no pa-
ramétrico que se utiliza para clasificación y regresión. El objetivo es crear un mo-
delo que prediga el valor de una variable objetivo aprendiendo reglas de decisión
simples inferidas de las características de los datos.
Por lo general, un árbol de decisiones comienza con un solo nodo, que se ramifica
en posibles resultados. Cada uno de esos resultados conduce a nodos adicionales,
que se ramifican en otras posibilidades. Esto le da una forma de árbol.
Hay tres tipos diferentes de nodos: nodos de azar, nodos de decisión y nodos fina-
les. Un nodo de azar, representado por un círculo, muestra las probabilidades de
ciertos resultados. Un nodo de decisión, representado por un cuadrado, muestra
una decisión a tomar y un nodo final muestra el resultado final de una ruta de deci-
sión.
19
Figura 21: [(Código de ejemplo para un
Árbol de decisión clasificador.), 2021]
La línea 4 a 8, que es una sola instrucción, se genera una lista con listas con los da-
tos que definen un objetivo (hombre/mujer). Dichos objetivos se definen en la lista
target que se crea en la línea 10 a 14. Hay que tener en consideración, que a cada
posición de la lista data le corresponde la misma posición en la lista target.
Línea 21 y 22 se crean dos muestras de ejemplo, para evaluar cómo los predice el
árbol de decisión, lo que se evalúa en la línea 23.
20
Figura 22: Árbol generado a partir del
ejemplo. (Elaboración propia, 2021).
El árbol que se genera sirve para evaluar nuevos valores, por ejemplo, en el código
ejemplo se desea evaluar el conjunto a=[178, 71, 43], los valores de a son lo que
ingresan al árbol como X, entonces dependiendo del valor de cada elemento se va
descendiendo en el árbol, hasta llegar a un nodo raíz. En el ejemplo, X[2] es 43, con
lo cual se dirige al nodo derecho de la segunda línea, donde encuentra que 5 son
hombres y 0 son mujeres.
21
El concepto fundamental detrás del Random Forest es simple pero poderoso: la
sabiduría de las multitudes. En términos de ciencia de datos, la razón por la que el
modelo de Random Forest funciona tan bien es: Un gran número de modelos (ár-
boles) relativamente no correlacionados que operan como un comité superará a
cualquiera de los modelos constituyentes individuales.
Una gran ventaja del Random Forest es que se puede utilizar tanto para proble-
mas de clasificación como de regresión, que forman la mayoría de los sistemas de
aprendizaje automático actuales.
Suponiendo que se desea armarlo para clasificar, y al igual que otras clases de
sklearn, se entrena el modelo con el método fit(data, target).
22
04
CLUSTERING O
AGRUPAMIENTO
El Clustering o agrupamiento es la tarea de dividir la población o los puntos de da-
tos en varios grupos de modo que los puntos de datos de los mismos grupos sean
más similares a otros puntos de datos del mismo grupo que los de otros grupos. En
palabras simples, el objetivo es segregar grupos con rasgos similares y asignarlos
en grupos.
Se supone que el jefe de una tienda de alquiler desea comprender las preferen-
cias de sus clientes para ampliar su negocio. ¿Es posible que observe los detalles de
cada cliente y diseñe una estrategia comercial única para cada uno de ellos? Defi-
nitivamente no. Pero lo que se puede hacer es agrupar a todos sus clientes en, por
ejemplo, 10 grupos en función de sus hábitos de compra y utilizar una estrategia
separada para los clientes en cada uno de estos 10 grupos. Y esto es lo que se llama
agrupación.
4.1. KMEANS
La agrupación en clústeres de K-means es uno de los algoritmos de aprendizaje au-
tomático no supervisados más simples y populares.
23
En otras palabras, el algoritmo de K-means identifica k número de centroides y lue-
go asigna cada punto de datos al grupo más cercano, mientras mantiene los cen-
troides lo más pequeños posible.
Para hacer uso del algoritmo de KMeans en Python se debe importar la clase co-
rrespondiente:
km = KMeans(n_clusters=2)
Se le pasan los datos que se desean agrupar por medio del método fit(X) y el mo-
delo queda construido, donde a cada elemento de X le asigna un grupo, y además
el mismo se encuentra en condiciones de predecir otro valor distinto a que grupo
pertenecería:
km.predict([[1.5, 1]])
24
4.2. MEANSHIFT
Meanshift entra en la categoría de un algoritmo de agrupamiento en contraste con
el aprendizaje no supervisado que asigna los puntos de datos a los grupos de forma
iterativa al cambiar los puntos hacia el modo (el modo es la densidad más alta de
puntos de datos en la región, en el contexto del Meanshift). Como tal, también se
conoce como algoritmo de búsqueda de modo.
25
BIBLIOGRAFÍA
PONCE CRUZ, PEDRO. “INTELIGENCIA
ARTIFICIAL CON APLICACIONES A
LA INGENIERÍA”. (2010). Alfaomega
Grupo Editor.
26