Árboles de decisión en Python con Scikit-Learn

Un árbol de decisión es uno de los muchos algoritmos de machine learning. Un árbol de decisión es una herramienta de decisión. Es similar a un modelo de árbol en informática. (raíz en la parte superior, hojas hacia abajo).

En este artículo, implementaremos un árbol de decisiones utilizando el módulo de machine learning scikit-learn. Es uno de los muchos módulos de machine learning, TensorFlow es otro popular.

Clasificadores

Imagine escribir un programa que tenga que predecir si una imagen contiene un hombre o una mujer. Tendrías que escribir toneladas de reglas de programación. Si te diera otro grupo de dos imágenes, tendrías que crear nuevas reglas de programación de nuevo. El machine learning es una mejor manera de resolver estos problemas.

En lugar de definir programáticamente cada regla, usamos un algoritmo que crea las reglas por nosotros. Este tipo de algoritmo se denomina clasificador. Toma datos como entrada y muestra una etiqueta como salida.

Un ejemplo práctico de esto sería, dada la imagen de una persona, el clasificador predeciría si es mujer o hombre.

El clasificador tiene estos pasos:

  • recolectar datos
  • clasificador de trenes
  • hacer prediccionesEntrenamos al clasificador dándole al algoritmo datos y etiquetas. Este tipo de machine learning se denomina aprendizaje supervisado.

En este ejemplo, usaremos matrices simples como datos. En la práctica, a menudo querrá tener grandes conjuntos de datos para hacer buenas predicciones.

Ejemplo visual de árbol de decisión

En cada nodo del árbol, podemos girar a la izquierda o a la derecha. A base de números recorremos las ramas. Al final de las ramas están los resultados. Una vez entrenado el clasificador en base a estos datos. Luego podemos usar el clasificador para hacer predicciones.

Un ejemplo gráfico de un árbol de decisión:

Con base en la entrada numérica, una computadora puede decidir la salida. Si su entrada fuera [False, True]predeciría ‘Usted’.

Instalar árbol de decision sklearn

árbol de decision sklearn

Si no ha instalado sklearn, instálelo con:

pip install -U scikit-learn

Podrás revisar la instalación asi:

python -m pip show scikit-learn  # to see which version and where scikit-learn is installed
python -m pip freeze  # to see all packages installed in the active virtualenv
python -c "import sklearn; sklearn.show_versions()"

Si aún no has instalado NumPy o SciPy, también puedes instalarlos usando conda o pip. Si utiliza pip, asegúrese de que se utiliza la rueda binaria y que NumPy y SciPy no se recompilan desde el código fuente. Esto puede ocurrir cuando se utilizan determinadas configuraciones de sistema operativo y hardware (por ejemplo, Linux en una Raspberry Pi).

Las funciones de trazado de Scikit-learn (es decir, las funciones que comienzan con «plot_» y las clases que terminan con «Display») requieren Matplotlib. Los ejemplos requieren Matplotlib y algunos requieren scikit-image, pandas o seaborn. Las dependencias de la versión mínima de Scikit-learn se enumeran a continuación, junto con su propósito.

Árbol de decisión

Importamos el árbol de decision sklearn y creamos el modelo.

from sklearn import tree
clf = tree.DecisionTreeClassifier()

Luego creamos los datos de entrenamiento para el clasificador/árbol de decisión:

X = [ [180, 15,0],                                                              
      [167, 42,1],                                                              
      [136, 35,1],                                                              
      [174, 15,0],                                                              
      [141, 28,1]]                                                              

Y = ['man', 'woman', 'woman', 'man', 'woman']

Poniendolo todo junto:

from sklearn import tree                                                        
clf = tree.DecisionTreeClassifier()                                             


X = [ [180, 15,0],                                                              
      [167, 42,1],                                                              
      [136, 35,1],                                                              
      [174, 15,0],                                                              
      [141, 28,1]]                                                              

Y = ['man', 'woman', 'woman', 'man', 'woman']                                   

clf = clf.fit(X, Y)                                                             
prediction = clf.predict([[133, 37,1]])                                         
print(prediction)

Te recomiendo mas entradas sobre Machine Learning:

La ONU advierte de la llegada de las armas autónomas, el reconocimiento facial produce errores que van más allá de ...
Alan Turing (1912-1954) fue un matemático, criptógrafo, filósofo y teórico informático que, además de trabajar en el equipo que descifró ...
El reconocimiento de voz es el proceso de convertir palabras habladas en texto. Python es compatible con muchos motores de ...
Europa tiene alrededor de 300.000 puestos de trabajo en ciberseguridad, según la Universidad de Internet. Y es que, a medida ...
Me gusta este beneficio. Me costaría mucho dejarlo ir. Me iría por una semana de 3 días. Es una locura ...
Si queremos usar texto en algoritmos de Machine Learning, tendremos que convertirlo a una representación numérica. No debería sorprender que ...

¿ Te fue de valor esta entrada Árboles de decisión en Python con Scikit-Learn?
⬇️ Si compartes esta entrada otras personas podrán aprender.⬇️