Machine Learning y Datascience
Machine Learning y Datascience
EL ALTO - BOLIVIA
SEPTIEMBRE 2020
INDICE
INTRODUCCIÓN. ............................................................................................................................................... 3
MACHINE LEARNING. ....................................................................................................................................... 4
Tipos de machine learning ........................................................................................................................... 5
ANALISIS PREDECTIVO. ..................................................................................................................................... 6
LIMPIEZA Y PROCESAMIENTO DE DATOS. ........................................................................................................ 8
VISUALIZACIÓN DE DATOS. ............................................................................................................................ 11
Scatter ........................................................................................................................................................ 12
Histogramas ............................................................................................................................................... 12
Boxplot ....................................................................................................................................................... 13
REGLA DE STURGES. ....................................................................................................................................... 13
DATA WRANGLING - SIMULACION DE MONTE CARLO. ................................................................................. 14
Simulación de Montecarlo ............................................................................................................................. 16
REGRESIÓN LINEAL. ........................................................................................................................................ 19
Aplicación De Regresión Lineal Con Python ............................................................................................... 21
REGRESIÓN LOGÍSTICA. .................................................................................................................................. 24
Modelo Logístico ........................................................................................................................................ 25
FORMULA ................................................................................................................................................... 25
Regresión Logística Con Python ................................................................................................................. 30
BIBLIOGRAFÍAS ............................................................................................................................................... 30
INTRODUCCIÓN.
El lenguaje de programación Python se está consolidando como uno de los lenguajes más populares
para la computación científica. Gracias a su naturaleza interactiva de alto nivel y su ecosistema de
bibliotecas científicas en proceso de maduración, es una opción atractiva para el desarrollo
algorítmico y el análisis de datos exploratorios.
Sin embargo, como lenguaje de uso general, es cada vez más utilizado no solo en entornos
académicos sino también en la industria.
Aprovecha este rico entorno para proporcionar implementaciones de vanguardia de muchos
algoritmos de aprendizaje automático bien conocidos, mientras se mantiene una interfaz fácil de
usar estrechamente integrada con el lenguaje Python. Esto responde a la creciente necesidad de
análisis de datos estadísticos en las industrias de software y web, así como en campos fuera de la
informática, como biología o física.
MACHINE LEARNING.
Machine Learning es uno de los subcampos de la Inteligencia Artificial y puede ser definido como:
“Machine Learning es la ciencia que permite que las computadoras aprendan y actúen como lo
hacen los humanos, mejorando su aprendizaje a lo largo del tiempo de una forma autónoma,
alimentándolas con datos e información en forma de observaciones e interacciones con el mundo
real.”
El Aprendizaje Automático consiste en una disciplina de las ciencias informáticas, relacionada con
el desarrollo de la Inteligencia Artificial, y que sirve, como ya se ha dicho, para crear sistemas que
pueden aprender por sí solos.
Es una tecnología que permite hacer automáticas una serie de operaciones con el fin de reducir la
necesidad de que intervengan los seres humanos. Esto puede suponer una gran ventaja a la hora
de controlar una ingente cantidad de información de un modo mucho más efectivo.
Como estas acciones se realizan de manera autónoma por el sistema, se dice que el aprendizaje es
automático, sin intervención humana
Lo que se denomina aprendizaje consiste en la capacidad del sistema para identificar una gran serie
de patrones complejos determinados por una gran cantidad de parámetros.
Es decir, la máquina no aprende por sí misma, sino un algoritmo de su programación, que se
modifica con la constante entrada de datos en la interfaz, y que puede, de ese modo, predecir
escenarios futuros o tomar acciones de manera automática según ciertas condiciones. Como estas
acciones se realizan de manera autónoma por el sistema, se dice que el aprendizaje es automático,
sin intervención humana.
ANALISIS PREDECTIVO.
Por ejemplo, si quieres predecir el desarrollo del cáncer, o la posibilidad de que el crédito
sea aprobado, necesitas encontrar una columna con el estado de la enfermedad o si
préstamo se concede o no, estas serán las columnas destinos para cada problema.
Finalmente, es hora de hacer el trabajo preparatorio para limpiar las características de los
algoritmos de Machine Learning. Para limpiar el conjunto de datos, es necesario manejar
los valores que faltan y las características categóricas, porque la matemática subyacente en
la mayoría de los modelos de Machine Learning asume que los datos son numéricos y no
contienes valores que faltan. Además, la librería Scikit Learn devuelve un error si se intenta
entrenar un modelo como la Regresión Lineal y la Regresión Logística utilizando datos que
contienen valores perdidos o no numéricos.
Manejar valores faltantes
Hay varias causas de que falten valores, a veces faltan valores porque no existen, o porque
la recopilación de datos es inadecuada o porque la entrada de datos es deficiente. Por
ejemplo, si alguien es menor de edad, y la pregunta se aplica a personas mayores de 18 año,
entonces la pregunta tendrá un valor que falta. En tales casos, sería un error rellenar un
valor para esa pregunta.
Escala y normalización
La escala es importante si necesitas especificar que una modificación en una cantidad no es
igual a otra modificación en otra. Con la ayuda del escalado, te aseguras de que aunque
algunas características son grandes no se usarán como predictor principal. Por ejemplo, si
se utiliza la edad y el salario de una persona en la predicción, algunos algoritmos prestarán
más atención al salario porque es más grande, lo que no tiene ningún sentido.
VISUALIZACIÓN DE DATOS.
Una buena visualización puede dar a quien la observa un sentido rico y amplio de
un conjunto de datos. Puede comunicar los datos de manera precisa a la vez que expone
los lugares en dónde se necesita más información o dónde una hipótesis no se sostiene.
Por otra parte, la visualización nos proporciona un lienzo para aplicar nuestras propias
ideas, experiencias y conocimientos cuando observamos y analizamos datos, permitiendo
realizar múltiples interpretaciones. Si como dice el dicho "una imagen vale más que mil
palabras", un gráfico interactivo bien elegido entonces podría valer cientos de pruebas
estadísticas.
Scatter
Un diagrama de dispersión es un diagrama en el que cada valor del conjunto de datos está
representado por un punto.
Histogramas
Un histograma es útil para ver la distribución de una variable, es decir, nos permite ver los
valores más comunes.
En el siguiente ejemplo deseamos ver la distribución de la cantidad media de habitaciones
en el estudio realizado.
Boxplot
En los gráficos Boxplot (o Box and Whiskers, más conocidos como Caja y Bigotes) se
representan los cinco números (mínimo, cuartil 1, mediana, cuartil 3 y máximo), lo que nos
puede ayudar a hacernos una idea de la asimetría de la distribución. Los gráficos de Caja y
Bigotes también permiten detectar valores atípicos y outliers.
La función para representar los diagramas de Caja y Bigotes es boxplot(). Como siempre, es
recomendable echar un vistazo a los argumentos de la función.
REGLA DE STURGES.
La regla de Sturges es un criterio utilizado para determinar el número de clases o intervalos que
son necesarios para representar gráficamente un conjunto de datos estadísticos. Esta regla fue
enunciada en 1926 por el matemático alemán Herbert Sturges.
Data Wrangling
Uno de los errores más comunes de los proyectos de Big Data, es pensar que empiezan con
el análisis. Cualquier proyecto de Big Data necesita un paso previo para poder ser exitoso:
el Data Wrangling.
Los datos, en su forma natural (lo que llamamos “Raw Data”), suelen tener errores de
registro que imposibilitan un análisis exacto. Al ser registrados por distintos sistemas y
personas, es normal que terminemos con un fichero en el que un mismo valor esté
expresado de distintas maneras (por ejemplo, una fecha puede estar registrada como 28 de
Junio, o como 28/06 en una mismo archivo), pueden haber registros en blanco, y por
supuesto, errores gramaticales.
Al momento de hacer un análisis de esos datos, todos esos registros tienen que
reprocesarse. Es decir, se tiene que limpiar, unificar, consolidar y normalizar los datos para
que se puedan utilizar y lograr extraer información de valor. De esto va el Data Wrangling,
de preparar los datos para poder ser aprovechados.
Cómo Empezar a Hacer Data Wrangling
Antes de empezar hay que saber es que el Data Wrangling es un proceso largo. De hecho,
usualmente es lo que le toma más tiempo a un data analysts. De acuerdo a una encuesta
realizada en el 2017, un analista de datos puede pasar, en promedio, el 80% de su tiempo
en Data Wrangling.
Por la inversión de tiempo que implica el Data Wrangling, hay que tener muy claro que se
quiere obtener de los datos. Es decir, tener una pregunta clara con respecto al negocio.
Empezar a organizar los datos sin saber que se está buscando en ellos es el camino más
seguro al fracaso de esta clase de proyectos.
Una vez que tenemos una pregunta que buscamos responder a través de los datos, puede
empezarse el proceso de Data Wrangling.
Identificar los datos relevantes: una empresa de transporte digitalizada, tiene una cantidad
ingente de datos. No todos van a ser relevantes para cada inquietud que se tenga. Hay que
buscar los datos relacionados con la pregunta que queremos contestar.
Establecer un formato: en este momento hay que definir el formato en el que deben estar
los registros. En el ejemplo de la fecha, tocaría decidir si se deja el registro en números o se
deja mezclando números y letras. Todo debe estar escrito de la misma manera. Si un valor
se registra en números, siempre debe registrarse en números. Si un nombre se registra solo
con iniciales, debe registrarse siempre así.
Una buena idea es, paralelamente a esto, ir creando un manual con los formatos
establecidos para que todas las personas involucradas en el registro de la información estén
creando ficheros unificados.
Limpiar: una vez definido el formato, hay que asegurarnos de que todos los registros
cumplan con él, y además hay que eliminar registros en blanco, errores, y datos que no sean
relevantes para lo que queremos saber.
Agregar: a veces, será necesario agregar datos de otro fichero o incluso unir dos ficheros
distintos para poder hacer un análisis más exacto.
Validar los registros: después de asegurarnos que los datos están unificados y tenemos
todos los que necesitamos para el análisis, hay que validar que todos los registros sean
consistentes.
Simulación de Montecarlo
La simulación de Montecarlo es un método estadístico utilizado para resolver problemas
matemáticos complejos a través de la generación de variables aleatorias.
La simulación de Montecarlo o método de Montecarlo, le debe el nombre al famoso casino del
principado de Mónaco. La ruleta es el juego de casino más famoso y también el ejemplo más
sencillo de mecanismo que permite generar números aleatorios.
La clave de este método está en entender el término ‘simulación’. Realizar una simulación consiste
en repetir o duplicar las características y comportamientos de un sistema real. Así pues, el objetivo
principal de la simulación de Montecarlo es intentar imitar el comportamiento de variables reales
para, en la medida de lo posible, analizar o predecir cómo van a evolucionar.
A través de la simulación se pueden resolver desde problemas muy sencillos, hasta problemas muy
complejos. Algunos problemas pueden solucionarse con papel y bolígrafo. Sin embargo, la mayoría
requieren el uso de programas informáticos como Excel, R Studio o Matlab. Sin estos programas,
resolver determinados problemas llevaría muchísimo tiempo.
Supongamos que queremos contratar a un gestor que realice operaciones por nosotros en
la bolsa de valores. El gestor presume de haber ganado 50% de rentabilidad durante el
último año con una cuenta de valores de 20.000 dólares. Para confirmar que lo que dice es
verdad, le pedimos su track record auditado. Es decir, el registro de todas sus operaciones
verificado por una auditor (para evitar estafas y cuentas falsas). El gestor nos facilita toda la
documentación y procedemos a valorar la cuenta de resultados.
La regresión lineal es un campo de estudio que enfatiza la relación estadística entre dos variables
continúas conocidas como variables de predicción y respuesta. (Nota: cuando hay más de una
variable predictora, se convierte en regresión lineal múltiple).
La variable predictora se denota con mayor frecuencia como “x” y también se conoce como variable
independiente.
La variable de respuesta se denota con mayor frecuencia como “y” y también se conoce como
variable dependiente.
Entonces, ¿cuál es el nuevo término relación estadística?
Antes de entrar en la relación estadística, debemos saber qué es la relación determinista. (Nota: la
regresión lineal no se trata de estudiar la relación determinista o funcional, sin embargo, debemos
conocer estas relaciones para comprender mejor la regresión lineal)
Relación determinista: La relación entre dos variables se llama determinista si una variable
determina perfectamente la otra variable.
por ejemplo, si conocemos el radio de un círculo, entonces podemos determinar perfectamente su
circunferencia como:
Circunferencia = 2 × π × radio
De manera similar, se sabe que la relación entre grados Fahrenheit y grados Celsius es:
Fahr = (9/5) × Cels + 32
Entonces, si vemos el gráfico anterior, está muy claro que los puntos de datos observados (x, y)
caen directamente en una línea sin ninguna desviación de la línea, lo que muestra que se
determinan perfectamente entre sí. Con un valor Fahrenheit determinado, determinará
exactamente un valor Celsius y viceversa.
Algunas otras relaciones deterministas son:
Ley de Hooke: Y = α + βX , donde Y = cantidad de estiramiento en un resorte, y X = peso aplicado.
Ley de Ohm: I = V / r , donde V = voltaje aplicado, r = resistencia e I = corriente.
Ley de Boyle: para una temperatura constante, P = α / V , donde P = presión, α = constante para
cada gas y V = volumen de gas.
Qué es la regresión lineal?: Relación estadística
• La variable de respuesta y es la mortalidad por cáncer de piel (número de muertes por
cada 10 millones de personas)
• La variable predictora x es la latitud (grados norte) en el centro de cada uno de los 49
estados en los EE. UU.
Podrías anticipar que si vivieras en las latitudes más altas del norte de los EE. UU., Estarías menos
expuesto a los dañinos rayos del sol y, por lo tanto, tendrás menos riesgo de muerte por cáncer de
piel. El diagrama de dispersión apoya tal hipótesis.
Parece haber una relación lineal negativa entre la latitud y la mortalidad debido al cáncer de piel,
pero la relación no es perfecta. De hecho, la trama exhibe cierta “ tendencia ” , pero también exhibe
cierta “ dispersión ”. Por lo tanto, es una relación estadística , no determinista.
Algunos otros ejemplos de relaciones estadísticas pueden incluir:
• Altura y peso: a medida que aumenta la altura, es de esperar que aumente el peso, pero no
perfectamente.
• Consumo de alcohol y contenido de alcohol en sangre: a medida que aumenta el consumo
de alcohol, es de esperar que aumente el contenido de alcohol en sangre, pero no
perfectamente.
• Capacidad pulmonar vital y paquetes de años de tabaquismo: a medida que aumenta la
cantidad de tabaquismo (según lo cuantificado por el número de paquetes de años de
tabaquismo), es de esperar que la función pulmonar (según lo cuantificado por la capacidad
pulmonar vital) disminuya, pero no perfectamente.
• Velocidad de conducción y millaje de gasolina: a medida que aumenta la velocidad de
conducción, es de esperar que disminuya el millaje de gasolina, pero no de manera perfecta.
Pongamos que necesitamos realizar una investigación para una empresa. Esta quiere saber la
relación entre las ventas de una empresa y sus gastos en publicidad. ¿Qué podemos hacer? El
análisis de regresión lineal nos permite saber en qué grado los gastos en publicidad explican la
variable ventas. Así, esta última variable será la variable dependiente del modelo, mientras que la
variable explicativa o independiente serán los gastos en publicidad.
Hemos usado una regresión lineal para encontrar los parámetros de la línea que minimiza
el error de los datos que tenemos. El proceso de aprendizaje consiste en estimar los
parámetros w y b. Así nos queda que, para estos datos, los mejores valores son:
w= 0.0918 \\ b = 1.2859
w=0.0918
b=1.2859
así que nos queda:
y = 0.0918x + 1.2859
y=0.0918x+1.2859
Podemos usar este modelo de regresión lineal para estimar cuáles serán los resultados para
otros valores de x. Por ejemplo, si queremos saber el resultado para x = 5, usaremos el
modelo anterior y veremos que el resultado es 1.7449:
y = 0.0918 \cdotp 5 + 1.2859 = 1.7449
y=0.0918⋅5+1.2859=1.7449
Este es un ejemplo muy simple. En realidad, los problemas de machine learning tienen
muchas más variables. Sin embargo, he escogido este ejemplo porque es muy fácil de
visualizar, explicar y entender. Espero que la intuición de este ejemplo sirva para entender
lo que está pasando cuando haya más variables.
que buscamos con la tendencia de predicción. Para hacerlo se mide el error con respecto a
los puntos de entrada y el valor “Y” de salida real. El algoritmo deberá minimizar el coste de
una función de error cuadrático y esos coeficientes corresponderán con la recta óptima.
Hay diversos métodos para conseguir minimizar el coste. Lo más común es utilizar una
versión vectorial y la llamada Ecuación Normal que nos dará un resultado directo.
Ejemplos de regresión lineal simple usando Python
Regresión lineal simple en Python (con 1 variable)
REGRESIÓN LOGÍSTICA.
La Regresión Logística Simple, desarrollada por David Cox en 1958, es un método de regresión que
permite estimar la probabilidad de una variable cualitativa binaria en función de una variable
cuantitativa. Una de las principales aplicaciones de la regresión logística es la de clasificación
binaria, en el que las observaciones se clasifican en un grupo u otro dependiendo del valor que
tome la variable empleada como predictor. Por ejemplo, clasificar a un individuo desconocido
como hombre o mujer en función del tamaño de la mandíbula.
Es importante tener en cuenta que, aunque la regresión logística permite clasificar, se trata de un
modelo de regresión que modela el logaritmo de la probabilidad de pertenecer a cada grupo. La
asignación final se hace en función de las probabilidades predichas.
La existencia de una relación significativa entre una variable cualitativa con dos niveles y una
variable continua se puede estudiar mediante otros test estadísticos tales como t-
test o ANOVA (un ANOVA de dos grupos es equivalente al t-test). Sin embargo, la regresión
logística permite además calcular la probabilidad de que la variable dependiente pertenezca a cada
una de las dos categorías en función del valor que adquiera la variable independiente. Supóngase
que se quiere estudiar la relación entre los niveles de colesterol y los ataques de corazón. Para ello,
se mide el colesterol de un grupo de personas y durante los siguientes 20 años se monitoriza que
individuos han sufrido un ataque. Un t-test entre los niveles de colesterol de las personas que han
sufrido ataque vs las que no lo han sufrido permitiría contrastar la hipótesis de que el colesterol y
los ataques al corazón están asociados. Si además se desea conocer la probabilidad de que una
persona con un determinado nivel de colesterol sufra un infarto en los próximos 20 años, o poder
conocer cuánto tiene que reducir el colesterol un paciente para no superar un 50% de probabilidad
de padecer un infarto en los próximos 20 años, se tiene que recurrir a la regresión logística
Modelo Logístico
FORMULA
Los logits de las probabilidades binomiales desconocidas (i.e., los logaritmos de la razón de
momios) son modeladas como una función lineal de los Xi.
Note que un elemento particular de Xi puede ser ajustado a 1 para todo i obteniéndose
una constante independiente en el modelo. Los parámetros desconocidos βj son
usualmente estimados a través de máxima verosimilitud.
_{k}x_{k,i})}}}}
donde f(X) es una función analítica en X. Con esta elección, la red de capa simple es idéntica
al modelo de regresión logística. Esta función tiene una derivada continua, la cual permite
ser usada en propagación hacia atrás. Esta función también es preferida pues su derivada
es fácilmente calculable:
Implementación práctica
que puede reducirse al cálculo de una regresión lineal para la función logit de la
probabilidad:
Para hacer la regresión deben tomarse los valores {\displaystyle X_{i}} de las
observaciones ordenados de mayor a menor y formar la siguiente tabla:
X1 ε1 π(X1) g(X1)
X2 ε2 π(X2) g(X2)
... ... ... ...
Xn εn π(Xn) g(Xn)
_{1}X_{i}}
Ejemplo
Sea p(x) la probabilidad de éxito cuando el valor de la variable predictora es x. Entonces
sea
{e^{B_{0}+B_{1}x}}{1+e^{B_{0}+B_{1}x}}}.}
Cuando x = 50, un éxito es dos veces tan probable como una falla. Es decir,
se puede decir simplemente que los odds son 2 a 1.
Regresión Logística Con Python
BIBLIOGRAFÍAS
Cielen, D., Meysman, A., & Ali, M. (2016). Introducing data science: big data, machine learning, and more,
using Python tools. Manning Publications Co..
Sammut, C., & Webb, G. I. (2017). Encyclopedia of machine learning and data mining. Springer.
Raschka, S. (2018). MLxtend: providing machine learning and data science utilities and extensions to
Python's scientific computing stack. Journal of open source software, 3(24), 638.
Jordan, M. I., & Mitchell, T. M. (2015). Machine learning: Trends, perspectives, and
prospects. Science, 349(6245), 255-260.
Peyré, G., & Cuturi, M. (2019). Computational Optimal Transport: With Applications to Data
Science. Foundations and Trends® in Machine Learning, 11(5-6), 355-607.
Ferguson, A. L. (2017). Machine learning and data science in soft materials engineering. Journal of
Physics: Condensed Matter, 30(4), 043002.
Gutierrez, D. D. (2015). Machine learning and data science: an introduction to statistical learning methods
with R. Technics Publications.