top of page
Buscar

MACHINE LEARNING


ree

En la era digital actual, el aprendizaje automático ha surgido como una de las tecnologías más revolucionarias, transformando la forma en que las máquinas aprenden y se adaptan a través de la experiencia. Este campo de la inteligencia artificial ha desencadenado avances significativos en una amplia gama de industrias, desde la medicina hasta las finanzas, y ha promovido un cambio fundamental en la forma en que las empresas abordan la toma de decisiones y la automatización de procesos.

El machine learning se basa en el desarrollo de algoritmos y modelos computacionales que permiten a las máquinas aprender patrones a partir de datos y tomar decisiones sin intervención humana directa. A través del análisis de grandes conjuntos de datos, las máquinas pueden identificar correlaciones, tendencias y patrones que a menudo escapan a la percepción humana, lo que les permite realizar predicciones precisas y tomar decisiones informadas.

En resumen, losalgoritmos de Machine Learningaprenden de forma autónoma a realizar una tarea o hacer predicciones a partir de datos y mejorar su rendimiento con el tiempo. Una vez entrenado, el algoritmo podrá encontrar los patrones en nuevos datos.


principales algoritmos de Machine Learning:

  • Los algoritmos de regresión, lineal o logística, permiten comprender las relaciones entre los datos. La regresión lineal se utiliza para predecir el valor de una variable dependiente en función del valor de una variable independiente. Sería por ejemplo, para predecir las ventas anuales de un comercial en función de su nivel de estudios o de experiencia. La regresión logística a su vez se utiliza cuando las variables dependientes son binarias. Otro tipo de algoritmo de regresión llamado máquina de vectores de soporte es pertinente cuando las variables dependientes son más difíciles de clasificar.

ree
  • El árbol de decisiones. Ese algoritmo permite establecer recomendaciones basadas en un conjunto de reglas de decisión partiendo de datos clasificados. Por ejemplo, es posible recomendar por qué equipo de fútbol apostar basándose en datos como la edad de los jugadores o el porcentaje de victorias del equipo.

ree
  • Los algoritmos de asociación permiten descubrir patrones y relaciones en los datos, e identificar las relaciones “si/entonces”, llamadas “reglas de asociación». Esas reglas son similares a las que se utilizan en el campo del Data Mining o minería de datos.

ree
  • Las redes neuronales son algoritmos en forma de red con varias capas. La primera permite la captación de datos, una o más capas escondidas permiten sacar conclusiones de los datos captados y la última capa asigna una probabilidad a cada conclusión.

ree
  • Una red de neuronas “profunda” está compuesta por múltiples capas ocultas que permiten afinar los resultados de la anterior. Es la que se utiliza en el campo del Deep Learning.

CÓDIGO DE BOSQUES ALEATORIOS EN BASE A ÁRBOLES DE DESICIONES:

import pandas as pd from google.colab import files uploaded=files.upload()


personas = pd.read_csv("ingresos.csv") print(personas.sample(frac=2/3, replace=True)) print(personas.sample(frac=2/3, replace=True)) print(personas.sample(frac=2/3, replace=True)) print(personas.sample(frac=2/3, replace=True)) print(personas.sample(frac=2/3, replace=True))


from random import sample print(personas.columns[:-1], "\n") print(sample(set(personas.columns[:-1]), 3))


import matplotlib.pyplot as plt from sklearn import tree for arbol in bosque.estimators_: tree.plot_tree(arbol, feature_names=personas.columns[:-1]) plt.show()



RESULTADO OBTENIDO DEL COLAB:

ree

CÓDIGO EJEMPLO DE REGRESIÓN LOGÍSTICA:

import numpy as np

import matplotlib.pyplot as plt

import math

# Creamos una función logística vectorial (ufuncs)

logistica = np.frompyfunc(lambda b0, b1, x:

1 / (1 + math.exp(-(b0 + b1*x))),

3, 1)

# Graficamos la función logística

plt.figure(figsize=(8, 4))


# Diferentes pendientes

plt.scatter(np.arange(-5, 5, 0.1),

logistica(0, 1, np.arange(-5, 5, 0.1)),

color="green")


plt.scatter(np.arange(-5, 5, 0.1),

logistica(0, 2, np.arange(-5, 5, 0.1)),

color="gold")


plt.scatter(np.arange(-5, 5, 0.1),

logistica(0, 3, np.arange(-5, 5, 0.1)),

color="red")


plt.title("Función Logística Estándar - Diferentes 'Pendientes'", fontsize=14.0)

plt.ylabel("Probabilidad", fontsize=13.0)

plt.xlabel("Valores", fontsize=13.0)

plt.show()


# Persona Normal de 60 a 100 latidos por minuto.

# Persona con Taquicardia de hasta 220 latidos por minuto.

personas_normal = [65, 70, 80, 80, 80,

90, 95, 100, 105, 110]


personas_taquicardia = [105, 110, 110, 120, 120,

130, 140, 180, 185, 190]


# Graficamos una función logística

plt.figure(figsize=(6, 4))


# y = b0 + b1x

# y = -46.68057196 + 0.42460226x


plt.scatter(np.arange(60, 200, 0.1),

logistica(-46.68057196, 0.42460226,

np.arange(60, 200, 0.1)))


# Graficamos la frecuencia cardíaca de las personas

plt.scatter(personas_normal, [0]*10,

marker="o", c="green", s=250, label="Normal")

plt.scatter(personas_taquicardia, [1]*10,

marker="o", c="red", s=250, label="Taquicardia")


# Graficamos las probabilidades para tres (3) individuos

individuos = [80, 110, 180]


probalidades = logistica(-46.68057196, 0.42460226, individuos)


plt.scatter(individuos, probalidades,

marker="*", c="darkorange", s=500)


plt.text(individuos[0]+7, 0.05, "%0.2f" % probalidades[0],

size=12, color="black")

plt.text(individuos[1]+7, 0.48, "%0.2f" % probalidades[1],

size=12, color="black")

plt.text(individuos[2]+7, 0.90, "%0.2f" % probalidades[2],

size=12, color="black")

plt.text(0, 1, "TAQUICARDIA", size=12, color="red")

plt.text(0, 0, "NORMAL", size=12, color="red")

plt.ylabel("Probabilidad de Taquicardia", fontsize=13.0)

plt.xlabel("Frecuencia cardíaca (latidos por minuto)", fontsize=13.0)

plt.legend(bbox_to_anchor=(1, 0.2))

plt.show()


# Diferentes funciones logísticas con diferentes "pendientes"

plt.figure(figsize=(6, 4))


for b1 in np.arange(0.35, 0.49, 0.025):

plt.scatter(np.arange(60, 200, 0.1),

logistica(-46.68057196,

b1,

np.arange(60, 200, 0.1)),

label="b_1=%0.2f" % b1)

# Graficamos la frecuencia cardíaca de las personas

plt.scatter(personas_normal, [0]*10,

marker="o", c="green", s=250, label="Normal")

plt.scatter(personas_taquicardia, [1]*10,

marker="o", c="red", s=250, label="Taquicardia")


plt.title("Máxima Verosimilitud", fontsize=18.0)

plt.text(0, 1, "TAQUICARDIA", size=12, color="red")

plt.text(0, 0, "NORMAL", size=12, color="red")

plt.ylabel("Probabilidad de Taquicardia", fontsize=13.0)

plt.xlabel("Frecuencia cardíaca (latidos por minuto)", fontsize=13.0)

plt.legend(bbox_to_anchor=(1, 1))

plt.show()


from sklearn.linear_model import LogisticRegression

from sklearn.model_selection import train_test_split


frecuencias_cardiacas = [[65], [70], [80], [80], [80],

[90], [95], [100], [105], [110],

[105], [110], [110], [120], [120],

[130], [140], [180], [185], [190]]


clase = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0,

1, 1, 1, 1, 1, 1, 1, 1, 1, 1]


# Creamos conjuntos de entrenamiento y de prueba del modelo

datos_entrena, datos_prueba, clase_entrena, clase_prueba = \

train_test_split(frecuencias_cardiacas,

clase,

test_size=0.30)


# Creamos el modelo de Regresión Logística

modelo = LogisticRegression().fit(datos_entrena, clase_entrena)

np.set_printoptions(suppress=True)

print(modelo.predict(datos_prueba))

print(modelo.predict_proba(datos_prueba))

print(modelo.score(datos_prueba, clase_prueba))

print(modelo.intercept_, modelo.coef_)


RESULTADOS OBTENIDOS:

ree

ree


 
 
 

Entradas recientes

Ver todo

Comentarios


bottom of page