Como desarrollador de JavaScript, sumergirse en el aprendizaje automático no es tan desalentador como podría parecer. Si bien es técnicamente posible manejar todo con los paquetes de Node.js, el ecosistema Python ML es demasiado rico y está bien establecido para ignorarlo. Además, es fantástico trabajar con Python. Por lo tanto, tiene sentido usar Python para el trabajo pesado en el backend. Una vez que tenga su modelo listo, puede exportarlo a un formato compatible con el front-end y cargarlo en el cliente para ejecutar predicciones.
En esta publicación, crearemos un modelo para predecir la popularidad de un artista en función de su número de seguidores en Twitter.
El primer paso es tener en nuestras manos un conjunto de datos. Para este proyecto, usaremos un archivo artistas.csv similar a este:
twitter_followers,popularity,handle 111024636,94,justinbieber 107920365,91,rihanna 106599902,89,katyperry 95307659,97,taylorswift13 66325495,87,selenagomez 66325135,71,selenagomez 60943147,83,jtimberlake 54815915,82,britneyspears 53569307,85,shakira
Como puedes ver, aquí hay dos valores clave: twitter_followers y popularidad. Esto nos prepara muy bien para un modelo de secuencia, donde x será twitter_followers e y será popularidad.
Modelo de secuencia es una de las opciones más sencillas para construir un modelo. Si bien la elección depende en última instancia del caso de uso específico, lo mantendré simple y me apegaré a este enfoque por ahora.
Cuando estás creando un modelo, hay algunas tareas básicas que deberás realizar:
El siguiente código le brinda una buena descripción general de estas tareas, aunque no es la imagen completa. Puedes consultar el código completo en Github.
def get_model(x, y): x_normalized = layers.Normalization( axis=None, ) x_normalized.adapt(np.array(x)) model = tensorflow.keras.Sequential([x_normalized, layers.Dense(units=1)]) model.compile( optimizer=tensorflow.keras.optimizers.Adam(learning_rate=0.1), loss="mean_squared_error", ) model.fit( x, y, epochs=2, verbose=0, validation_split=0.2, ) return model def main: train_features, test_features, train_labels, test_labels = split_data(dataset) model = get_model( train_features["twitter_followers"], train_labels, ) test_loss = model.evaluate( test_features["twitter_followers"], test_labels, verbose=2 ) model.export("./saved_model")
Como puedes ver, el código Python es bastante sencillo. Hay una función principal que se encarga de dividir los datos, obtener el modelo, evaluarlo y finalmente guardarlo.
En pocas palabras, estos son los pasos esenciales para crear un modelo. Pero seamos realistas: construir un modelo que realmente funcione es tanto un arte como una ciencia. Mi objetivo aquí es simplemente mostrar lo fácil que puede ser comenzar con Python. Sin embargo, se necesitan muchas cosas para crear un modelo que funcione bien, como tener un conjunto de datos sólido, limpiar y normalizar sus datos, elegir el modelo y la configuración correctos y tener la potencia informática para entrenarlo. ¡Todas estas tareas requieren una gran inversión de tiempo y esfuerzo!
Ahora que tenemos nuestro modelo entrenado y guardado, es hora de incorporarlo al frontend. En este paso es donde cargaremos el modelo en un formato compatible con la web, para que podamos ejecutar predicciones directamente en el navegador. Ya sea que esté usando TensorFlow.js u otra biblioteca, la integración del aprendizaje automático en su aplicación web abre un mundo de posibilidades. ¡Veamos cómo hacerlo!
TensorFlow ofrece un paquete npm llamado tensorflowjs_converter que ayuda a convertir modelos guardados en JSON y binario.
tensorflowjs_converter --input_format=tf_saved_model model/saved_model out/public
ls -la out/public group1-shard1of1.bin model.json
Esta configuración facilita el acceso a los archivos necesarios para su aplicación web.
Puedes consultar el código completo en Github.
const model = await tensorflow.loadGraphModel("model.json"); const getPopularity = (followers) => { const followers = 1_000; const normalized = followers; const x = tensorflow.tensor(normalized).reshape([-1, 1]); const result = model.predict(x); const values = result.arraySync(); const y = values[0][0].toFixed(2) * 100; const popularity = y; return popularity; };
Como se mencionó anteriormente, este modelo tiene como objetivo "predecir la popularidad" en función del número de seguidores de Twitter. Si bien puede parecer un ejemplo simple, demuestra de manera efectiva cómo generar un modelo en el backend y consumirlo en el frontend.
Observe cómo getPopularity procesa un poco la entrada, pero la línea clave es model.predict(x), que utiliza el modelo para predecir un valor (y) basado en la entrada x.
Dirígete a la página de demostración y prueba algunos identificadores de Twitter. Es una forma divertida de ver cómo el modelo predice la popularidad según el número de seguidores.
TensorFlow es una biblioteca increíble que proporciona herramientas para el desarrollo tanto de backend como de frontend. Cualquier desarrollador de JavaScript puede sumergirse en la creación de un modelo usando Python o un lenguaje similar y luego importar fácilmente ese modelo a la interfaz para ejecutar predicciones.
Si bien el aprendizaje automático es un campo vasto que requiere mucho conocimiento, herramientas como TensorFlow ayudan a cerrar la brecha entre los desarrolladores de software y de aprendizaje automático. ¡Hace que el viaje sea mucho más sencillo para aquellos que buscan incorporar ML en sus proyectos!
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3