Regresión Lineal con TensorFlow JS: Creación y Visualización de Modelos
Clase 15 de 21 • Curso de TensorFlow.js
Resumen
¿Cómo entrenar un modelo de regresión lineal en TensorFlow JS?
El entrenamiento de un modelo de regresión lineal usando TensorFlow JS es un proceso fascinante que nos ayuda a optimizar y calcular datos en base a patrones específicos. Al dominar este proceso, podrás implementar soluciones robustas utilizando JavaScript para manejar grandes cantidades de datos y hacer predicciones precisas. En este artículo, desglosaremos los pasos esenciales para entrenar tu propio modelo de regresión lineal usando TensorFlow JS.
¿Cuáles son los pasos iniciales para comenzar?
- Importar las librerías necesarias: El primer paso es asegurarte de tener las librerías de TensorFlow JS correctas. Utiliza la versión 1.74, para evitar cualquier variación en los métodos o parámetros que debas pasarle a las funciones.
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.7.4"></script>
-
Crear el modelo: Tu modelo constará de una capa oculta y una capa de salida. Para esto, utiliza la función
sequential
que permite que los datos fluyan de manera continua de un tensor de entrada hasta la capa de salida. -
Preparar los datos: Ordena y limpia tus datos para que no contengan valores nulos antes de entrenar el modelo.
-
Entrenar y almacenar el modelo: Una vez entrenado, puedes guardar el modelo para usarlo en el futuro sin tener que volver a entrenarlo.
¿Cómo empezamos con nuestro código HTML y el script?
Inicialmente, necesitas crear una simple página HTML donde cargarás las librerías, y un archivo JavaScript para el procesamiento:
<!DOCTYPE html>
<html>
<head>
<title>Modelo de regresión</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.7.4"></script>
<script src="script.js"></script>
</body>
</html>
En el script.js
, obtendrás y limpiarás los datos de un archivo JSON, centrando la atención en el número de cuartos y el precio de las casas:
async function obtenerDatos() {
const response = await fetch('tuArchivoDeDatos.json');
const datos = await response.json();
return datos.filter(item => item.cuartos != null && item.precio != null)
.map(item => ({ cuartos: item.cuartos, precio: item.precio }));
}
¿Cómo se visualizan los datos utilizando TensorFlow para visualización?
Para entender mejor nuestros datos, es importante visualizar las relaciones entre las variables de entrada y salida. Usando el visor de visualización de TensorFlow JS, puedes implementar fácilmente un diagrama de dispersión:
async function visualizarDatos() {
const data = await obtenerDatos();
const valores = data.map(d => ({ x: d.cuartos, y: d.precio }));
tfvis.render.scatterplot(
{ name: 'Número de Cuartos vs Precio' },
{ values: valores },
{
xLabel: 'Número de Cuartos',
yLabel: 'Precio',
height: 300
}
);
}
visualizarDatos();
¿Cómo transformar los datos para el entrenamiento?
Antes de entrenar el modelo, tus datos deben ser convertidos en tensores. Los tensores son el formato que TensorFlow JS utiliza para realizar cálculos:
function convertirATensores(data) {
const entradas = data.map(d => d.cuartos);
const etiquetas = data.map(d => d.precio);
const tensorEntradas = tf.tensor2d(entradas, [data.length, 1]);
const tensorEtiquetas = tf.tensor2d(etiquetas, [data.length, 1]);
return { entradas: tensorEntradas, etiquetas: tensorEtiquetas };
}
¿Por qué es vital el uso de promesas y async
/await
?
En JavaScript, es importante usar promesas y la sintaxis async/await
para manejar procesos asincrónicos como la carga de datos desde un servidor. Esto asegura que nuestro código espere a que se completen estas operaciones antes de continuar, evitando errores debido a datos incompletos.
Implementar modelos de regresión lineal en TensorFlow JS ofrece un poderoso conjunto de herramientas para quienes deseen explorar el aprendizaje automático usando JavaScript. Al seguir estos pasos, podrás construir sistemas predictivos eficientes, garantizando un manejo óptimo y visualización de datos pertinentes. ¡Continúa tu viaje de aprendizaje y descubre las múltiples aplicaciones que esta tecnología ofrece!