En este artículo, usaremos tf.estimator.LinearClassifier para construir y entrenar un modelo en el famoso conjunto de datos del Titanic. Todo esto se hace usando la API de TensorFlow.
Importar bibliotecas
Las bibliotecas de Python nos facilitan el manejo de los datos y la realización de tareas típicas y complejas con una sola línea de código.
- pandas – Esta biblioteca ayuda a cargar el marco de datos en un formato de matriz 2D y tiene múltiples funciones para realizar tareas de análisis de una sola vez.
- entumecido – Las matrices Numpy son muy rápidas y pueden realizar grandes cálculos en muy poco tiempo.
- matplotlib/nacido en el mar – Esta biblioteca se utiliza para dibujar visualizaciones.
Python3
|
Importar conjunto de datos
Importamos el conjunto de datos usando la API de Tensorflow para conjuntos de datos y luego lo cargamos en el marco de datos de panda.
Salida:
Python3
|
Necesitamos los datos para las columnas categóricas y la columna numérica (continua) en el conjunto de datos por separado para inicializar nuestro modelo de clasificación lineal.
Python3
|
Salida:
['sex', 'n_siblings_spouses', 'parch', 'class', 'deck', 'embark_town', 'alone'] ['age', 'fare']
Python3
|
Necesitamos crear una función invocable que se pueda pasar a la función LinearClassifier.
Python3
|
Ahora estamos listos para comenzar a entrenar el modelo tf.estimator.LinearClassifier utilizando el enorme conjunto de datos. La clasificación lineal, como sugiere el nombre, es un modelo lineal que se usa para aprender los límites de decisión entre múltiples clases del objeto, pero debe ser lineal y no no lineal, como lo hacemos en el algoritmo SVM.
Modelo de clasificador lineal
Python3
|
Salida:
{'accuracy': 0.75, 'accuracy_baseline': 0.625, 'auc': 0.8377411, 'auc_precision_recall': 0.7833674, 'average_loss': 0.47364476, 'label/mean': 0.375, 'loss': 0.4666896, 'precision': 0.6666667, 'prediction/mean': 0.37083066, 'recall': 0.6666667, 'global_step': 200}
Aquí podemos ver que el modelo ha sido evaluado en múltiples matrices utilizando el conjunto de datos de validación y la precisión obtenida también es muy satisfactoria.