Uno de los primeros intentos fue Google Flu Trends (GFT). monitorea en línea los comportamientos de seguimiento de salud de millones de usuarios y lo compara con un nivel de referencia histórico de actividad de influenza para una región correspondiente, Google esperaba predecir los patrones de gripe.
Se puede predecir epidemias o problemas de salud pública basados en la probabilidad de que una persona vuelva a sufrir la misma dolencia. O predecir las posibilidades de que una persona con enfermedad conocida termine en Cuidados Intensivos debido a cambios en las condiciones ambientales.
Tarea predictiva una agencia de seguros de coche. Puede crear un modelo predictivo que indique el riego de que una persona necesite hacer uso del seguro contratado y, en función de los resultados obtenidos, la agencia puede establecer un precio.
¿Cómo funciona el algoritmo de regresión lineal en Machine Learning?
Recordemos que los algoritmos de Machine Learning Supervisados, aprenden por sí mismos y -en este caso- a obtener automáticamente esa “recta” 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.
NOTA: cuando hablo de “recta” es en el caso particular de regresión lineal simple. Si hubiera más variables, hay que generalizar el término. Hagamos un Ejercicio Práctico En este ejemplo cargaremos un archivo .csv de entrada obtenido por webscraping que contiene diversas URLs a artículos sobre Machine Learning de algunos sitios muy importantes como Techcrunch o KDnuggets y como características de entrada -las columnas- tendremos:
• Title: Titulo del Artículo • url: ruta al artículo • Word count: la cantidad de palabras del artículo, • # of Links: los enlaces externos que contiene, • # of comments: cantidad de comentarios, • # Images video: suma de imágenes (o videos), • Elapsed days: la cantidad de días transcurridos (al momento de crear el archivo) • # Shares: nuestra columna de salida que será la “cantidad de veces que se compartió el artículo”.
A partir de las características de un artículo de machine learning intentaremos predecir, cuantas veces será compartido en Redes Sociales.
Haremos una primer predicción de regresión lineal simple -con una sola variable predictora- para poder graficar en 2 dimensiones (ejes X e Y) y luego un ejemplo de regresión Lineal Múltiple, en la que utilizaremos 3 dimensiones (X,Y,Z) y predicciones.
NOTA: el archivo .csv contiene mitad de datos reales, y otra mitad los generé de manera aleatoria, por lo que las predicciones que obtendremos no serán reales. Intentaré en el futuro hacer webscrapping de los enlaces que me faltaban y reemplazar los resultados por valores reales. Requerimientos para hacer el Ejercicio Para realizar este ejercicio, crearemos una Jupyter notebook con código Python y la librería SkLearn muy utilizada en Data Science. Recomendamos utilizar la suite de Anaconda. Puedes leer este artículo donde muestro paso a paso como instalar el ambiente de desarrollo. Podrás descargar los archivos de entrada csv o visualizar la notebook online (al final del artículo los enlaces). Predecir cuántas veces será compartido un artículo de Machine Learning. Regresión lineal simple en Python (con 1 variable) Aqui vamos con nuestra notebook! Comencemos por importar las librerías que utilizaremos:
1 # Imports necesarios 2 import numpy as np 3 import pandas as pd 4 import seaborn as sb 5 import matplotlib.pyplot as plt 6 %matplotlib inline 7 from mpl_toolkits.mplot3d import Axes3D 8 from matplotlib import cm 9 plt.rcParams['figure.figsize'] = (16, 9) 10 plt.style.use('ggplot') 11 from sklearn import linear_model 12 from sklearn.metrics import mean_squared_error, r2_score Leemos el archivo csv y lo cargamos como un dataset de Pandas. Y vemos su tamaño 1 #cargamos los datos de entrada 2 data = pd.read_csv("./articulos_ml.csv") 3 #veamos cuantas dimensiones y registros contiene 4 data.shape Nos devuelve (161,8)
Veamos esas primeras filas 1 #son 161 registros con 8 columnas. Veamos los primeros registros 2 data.head()
Se ven algunos campos con valores NaN (nulos) por ejemplo algunas urls o en comentarios. Veamos algunas estadísticas básicas de nuestros datos de entrada: 1 # Ahora veamos algunas estadísticas de nuestros datos 2 data.describe()
Aqui vemos que la media de palabras en los artículos es de 1808. El artículo más corto tiene 250 palabras y el más extenso 8401. Intentaremos ver con nuestra relación lineal, si hay una correlación entre la cantidad de palabras del texto y la cantidad de Shares obtenidos. Hacemos una visualización en general de los datos de entrada: 1 # Visualizamos rápidamente las caraterísticas de entrada 2 data.drop(['Title','url', 'Elapsed days'],1).hist() 3 plt.show()
Vamos a filtrar los datos de cantidad de palabras para quedarnos con los registros con menos de 3500 palabras y también con los que tengan Cantidad de compartidos menos a 80.000. Lo gratificaremos pintando en azul los puntos con menos de 1808 palabras (la media) y en naranja los que tengan más.
filtered_data = data[(data['Word count'] <= 3500) & (data['# Shares'] <= 80000)]
colores=['orange','blue'] tamanios=[30,60]
f1 = filtered_data['Word count'].values f2 = filtered_data['# Shares'].values
asignar=[] for index, row in filtered_data.iterrows(): if(row['Word count']>1808): asignar.append(colores[0]) else: asignar.append(colores[1])
plt.scatter(f1, f2, c=asignar, s=tamanios[0]) plt.show()

Machine Learning supervisado En esta modalidad se podría entender como algoritmos que “aprenden” de los datos introducidos por una persona. En este caso:
Se necesita la intervención humana para etiquetar, clasificar e introducir los datos en el algoritmo. El algoritmo genera datos de salida esperados, ya que en la entrada han sido etiquetados y clasificados por alguien. Existen dos tipos de datos que pueden ser introducidos en el algoritmo: Clasificación: clasifican un objeto dentro de diversas clases. Por ejemplo, para determinar si un paciente está enfermo o si un correo electrónico es spam. Regresión: predicen un valor numérico. Sería el caso de los precios de una casa al escoger diferentes opciones o la demanda de ocupación de un hotel.
El aprendizaje supervisado lo que busca es generizar una entrada y una salida . El parámetro de entrada lo que hace es predecir lo que está sucediendo.. el aprendizaje supervisado silve para que un robot distinga las cosa y para que hagan sus tareas oh deberes es un tema muy importante porque así se pueden educar los robot para que hagan lo que tú decees
Análisis muestral del índice de mortalidad para la población de RD que contrajeron Covid-19 desde el 15 de marzo 2020 hasta la fecha.
Lenguaje supervisado su funcionamiento de basa en la detección de patrones o cadenas de algoritmos para las resoluciones de problemas, ya sea descriptivo o predictivo, para esto acumula informaciones en variables y mediante esos datos ya almacenados puede decir o diferencial cosas, ya sean animales , personas o patrones.
Las tareas descriptivas en un modelo de aprendizaje supervisado identifican patrones o relaciones entre variables concretas, en este caso una tarea descriptiva puede ser un algoritmo que pueda identificar que animal se muestra en una imagen con la información o rasgos que se haya introducido previamente en un conjunto de variables determinando la relación entre ellas.
El aprendizaje supervisado es dónde podemos administrar y suministras los datos de entrada y salida con estos datos el arrojará el resultado esperado.
Es un tema extenso e interesante para analizar y trabajar.
Joel Montan Maldonado
No tengas miedo a fracasar, ten miedo a no intentarlo.
Son ideales para la detección de spam, análisis de opiniones, pronóstico del tiempo, predicciones de precios, detección de raza de perro, entre otras.