Objetivo: Proporcionar una comprensión básica de qué es el machine learning y cómo se aplica en diversos contextos.
Objetivo: Conocer los algoritmos más utilizados en machine learning y sus aplicaciones.
Conceptos básicos.
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
Conceptos básicos.
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
Conceptos básicos.
from sklearn.svm import SVC
model = SVC()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
Conceptos básicos.
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=150, batch_size=10)
predictions = model.predict(X_test)
Una red neuronal es un sistema de computación inspirado en el funcionamiento del cerebro humano. Está compuesta por nodos (o neuronas) que se organizan en capas: capa de entrada, capas ocultas y capa de salida. Cada nodo recibe entradas, las procesa y transmite una salida.
Las neuronas de una red están conectadas entre sí mediante conexiones. Estas conexiones tienen pesos que determinan la importancia de las entradas. Cuando una entrada pasa a través de una neurona, se multiplica por el peso y pasa por una función de activación que determina si la neurona se activa.
Una red neuronal se compone de tres tipos de capas:
Las funciones de activación determinan si una neurona se activa o no. Algunas de las funciones más comunes son:
El proceso de aprendizaje en redes neuronales es supervisado y se realiza mediante un algoritmo llamado retropropagación (backpropagation). Este algoritmo ajusta los pesos de las conexiones de la red mediante el cálculo del error en la salida y propagándolo hacia atrás para actualizar los pesos de manera eficiente.
El entrenamiento de una red neuronal implica alimentar datos de entrada y calcular el error de salida. El modelo ajusta sus pesos utilizando algoritmos de optimización como el descenso por gradiente. Durante el entrenamiento, los datos se dividen en conjuntos de entrenamiento y validación para evitar el sobreajuste y evaluar la capacidad del modelo para generalizar.
Las redes neuronales convolucionales (CNN) son un tipo de red especialmente diseñada para procesar datos con una estructura en forma de grilla, como imágenes. Utilizan capas convolucionales que aplican filtros a las imágenes para extraer características importantes, como bordes y texturas.
Las redes neuronales recurrentes (RNN) son útiles para datos secuenciales, como texto o series temporales. Tienen conexiones que permiten que la información fluya hacia atrás en el tiempo, lo que permite que la red tenga una memoria de estados anteriores, ideal para tareas como el procesamiento de lenguaje natural y predicciones temporales.
El overfitting ocurre cuando un modelo aprende demasiado bien los detalles del conjunto de entrenamiento, incluyendo el ruido, lo que afecta su capacidad para generalizar a nuevos datos. El underfitting, por otro lado, sucede cuando el modelo no es lo suficientemente complejo para capturar patrones importantes en los datos.
El descenso por gradiente es un algoritmo utilizado para minimizar la función de pérdida de la red neuronal. Ajusta los pesos de la red en la dirección de la menor pendiente de la función de pérdida. Se pueden utilizar variantes como el descenso por gradiente estocástico (SGD) y métodos más avanzados como Adam para mejorar la eficiencia del aprendizaje.
Objetivo: Ver cómo se utilizan los algoritmos de machine learning en la práctica a través de estudios de caso.