Inicio » Formación » Keras y Scikit-learn: Principales bibliotecas de machine learning en Python

Keras y Scikit-learn: Principales bibliotecas de machine learning en Python

Hoy en día, Python, con su amplio ecosistema de bibliotecas, se ha convertido en uno de los lenguajes de programación más populares para trabajar en tareas de machine learning. Entre las más utilizadas se encuentran Keras y Scikit-learn, que ofrecen una amplia gama de herramientas y funcionalidades para construir y entrenar modelos de aprendizaje automático. En este post, hablaremos de estas dos bibliotecas y ver ejemplos de cómo utilizarlas en la práctica.

Keras: Una biblioteca de Deep Learning

Keras es una biblioteca de aprendizaje profundo (Deep Learning) escrita en Python. Proporciona una interfaz de alto nivel para construir y entrenar modelos de redes neuronales de manera eficiente. Se enfoca en la usabilidad y la modularidad, lo que la hace muy popular entre los desarrolladores de ML.

Ejemplo de código en Keras

A continuación, os mostramos un ejemplo básico de cómo se puede utilizar Keras para construir y entrenar un modelo de clasificación de imágenes:

  • from keras.models import Sequential
  • from keras.layers import Dense, Flatten
  • from keras.datasets import mnist
  • from keras.utils import to_categorical

 

  • # Cargar el conjunto de datos MNIST

(x_train, y_train), (x_test, y_test) = mnist.load_data()

  • # Preprocesamiento de datos

x_train = x_train.reshape((60000, 28, 28, 1)) x_train = x_train.astype(‘float32’) / 255 x_test = x_test.reshape((10000, 28, 28, 1)) x_test = x_test.astype(‘float32’) / 255 y_train = to_categorical(y_train) y_test = to_categorical(y_test)

  • # Construir el modelo

model = Sequential()

model.add(Flatten(input_shape=(28, 28, 1))) model.add(Dense(64, activation=’relu’)) model.add(Dense(10, activation=’softmax’))

  • # Compilar y entrenar el modelo

model.compile(optimizer=’adam’, loss=’categorical_crossentropy’, metrics=[‘accuracy’])

model.fit(x_train, y_train, epochs=10, batch_size=32)

  • # Evaluar el modelo

loss, accuracy = model.evaluate(x_test, y_test) print(‘Test accuracy:’, accuracy)

 

En este ejemplo, se utiliza el conjunto de datos MNIST, que consiste en imágenes de dígitos escritos a mano. El modelo se compone de una capa de aplanamiento, una capa oculta completamente conectada con función de activación ReLU y una capa de salida con función de activación softmax. El modelo se compila y se entrena utilizando el optimizador Adam para luego, evaluar el modelo en el conjunto de prueba y mostrar la precisión obtenida.

Como podéis observar, Keras hace que sea muy sencillo crear un modelo avanzado como es una red neuronal. En tan solo unas cuantas líneas hemos sido capaces de generar un modelo capaz de hacer una tarea compleja como es la clasificación de imágenes.

A pesar de que la cantidad de código a desarrollar no sea muy elevada, en él intervienen conceptos que tienen cierta complejidad, como el de capas, el de función de activación, o el de optimizador. Keras es una librería muy potente, pero para poder utilizarla al máximo, es necesario tener unos conocimientos avanzados, y por ello en ocasiones para usuarios que están iniciándose en el mundo del ML es preferible el uso de la librería que veremos en la siguiente sección.

Aun así, si te has quedado intrigado por el significado de estos términos, te animamos a que revises nuestro artículo “Glosario de ML” para obtener más información.

Keras y Scikit-learn

Scikit-learn: Una biblioteca para ML tradicional 

Scikit-learn es una biblioteca de aprendizaje automático clásico escrita en Python. Proporciona una amplia variedad de algoritmos y herramientas para tareas comunes de ML, como clasificación, regresión, agrupamiento y reducción de la dimensionalidad. Scikit-learn es conocida por su facilidad de uso y su enfoque en la eficiencia computacional.

Ejemplo de código en Scikit-learn

Os mostramos un ejemplo de cómo se puede utilizar Scikit-learn para construir y entrenar un modelo de clasificación utilizando el algoritmo de Random Forests: 

  • from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import
  • load_iris from sklearn.model_selection import train_test_split from sklearn.metrics
  • import accuracy_score # Cargar el conjunto de datos Iris iris = load_iris() X = iris.data
  • y = iris.target # Dividir el conjunto de datos en entrenamiento y prueba X_train,
  • X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

 

  • # Construir el modelo de bosques aleatorios 

model = RandomForestClassifier(n_estimators=100)

  • # Entrenar el modelo

model.fit(X_train, y_train)

  • # Realizar predicciones en el conjunto de prueba 

y_pred = model.predict(X_test) # Calcular la precisión del modelo accuracy = accuracy_score(y_test, y_pred) print(‘Test accuracy:’, accuracy)

 

En este ejemplo, se utiliza el conjunto de datos Iris, que consiste en mediciones de diferentes características de flores de iris. Es un dataset muy utilizado para hacer pruebas y en entornos de formación. Se divide el conjunto de datos en conjuntos de entrenamiento y prueba, como siempre que queremos entrenar un modelo de ML, y se construye un modelo de random forest con 100 árboles de decisión. Luego, se entrena el modelo utilizando el conjunto de entrenamiento y se realizan predicciones en el conjunto de prueba. Finalmente, se calcula la precisión del modelo en base a las predicciones realizadas.

Como podéis apreciar, Scikit-learn también permite la construcción de modelos de ML utilizando muy poco código. Con tan solo ejecutar la función Random Forest Classifier hemos construido el modelo y con los métodos fit y predict hemos sido capaces de entrenarlo y realizar predicciones. Si no existiese esta librería tendríamos que escribir nosotros mismos todo el código necesario para ejecutar este algoritmo de bagging. En cambio, Scikit-learn simplifica mucho las cosas.

 

A modo de recomendación, visita la documentación oficial para poder ver todos los modelos que puedes construir con esta librería. Allí podrás verlos clasificados por tipo y además ver los métodos que incluyen cada uno de ellos.

https://scikit-learn.org/stable/

 

Para conocer todas nuestras novedades suscríbete a nuestra newsletter .También puedes seguirnos en nuestras redes sociales:

Solicita Información



    Suscríbete a la newsletter