Código de Python - Clasificacion de Datos Arboles de Decision

Imágen de perfil

Clasificacion de Datos Arboles de Decisiongráfica de visualizaciones


Python

Publicado el 17 de Octubre del 2023 por Hilario (124 códigos)
415 visualizaciones desde el 17 de Octubre del 2023
CuadernoAula-B-28-OCT-18.py
-----------------------------------------------------------------------------
La clasificación de datos mediante árboles de decisiones es un método de aprendizaje automático que se utiliza para categorizar o etiquetar datos en diferentes clases o categorías. Es una técnica de modelado predictivo que se basa en la creación de un "árbol" de decisiones, donde cada nodo interno del árbol representa una pregunta o una prueba sobre una característica específica de los datos, y las ramas que salen de ese nodo conducen a diferentes resultados o decisiones basadas en el valor de esa característica. Los nodos hoja del árbol representan las categorías o clases en las que se divide el conjunto de datos.

El proceso de clasificación a través de árboles de decisión implica:

Construcción del árbol: Se inicia con un nodo raíz que representa todo el conjunto de datos. Luego, se selecciona una característica y un umbral que se utilizará para dividir los datos en dos subconjuntos. Este proceso se repite recursivamente en cada subconjunto hasta que se alcanza un criterio de parada, como un tamaño máximo de profundidad del árbol, una cantidad mínima de muestras en los nodos hoja, o una impureza mínima.

Selección de características: En cada paso de división, se elige la característica que mejor separa los datos, lo que se logra al minimizar alguna métrica de impureza, como el índice de Gini o la entropía. La característica y el umbral que minimizan la impureza se utilizan para dividir los datos en dos ramas.

Predicción: Una vez construido el árbol, se utiliza para hacer predicciones sobre datos nuevos. Los datos nuevos se introducen en el árbol, siguiendo las ramas que corresponden a las características de esos datos, hasta llegar a un nodo hoja que representa la clase predicha.

Los árboles de decisión son atractivos porque son interpretables y fáciles de visualizar. Sin embargo, pueden ser propensos al sobreajuste (overfitting), especialmente si se construyen árboles muy profundos. Para abordar este problema, se pueden utilizar técnicas como la poda (pruning) o el uso de bosques aleatorios (random forests) que combinan múltiples árboles para mejorar la precisión y reducir el sobreajuste.

En resumen, la clasificación de datos mediante árboles de decisión es una técnica poderosa y ampliamente utilizada en aprendizaje automático para tareas de clasificación, donde el objetivo es predecir la categoría o clase a la que pertenecen los datos de entrada en función de sus características.

Requerimientos

Este sencillo ejemplo: CuadernoAula-B-28-OCT-18.py

Ha sido realizado en una plataforma Linux, concretamente, Ubuntu 20.04.6 LTS.
Ha sido editado con Sublime Text.

Para hacerlo bajo estas premisas, se debe de tener en cuenta que se deben de tener cargados los
módulos que se necesitan importar para realizar el programa, en este caso:

import numpy as np
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
from graphviz import Source

***********************************************************************
El programa se puede ejecutar bajo consola linux, con este comando:
python3 CuadernoAula-B-28-OCT-18.py
--------------------------------------------------------------------------------
Si todo va bien la salida por consola sería la siguiente:
Precisión del árbol de decisión: 0.95
El árbol de decisión se ha guardado en un archivo PDF llamado 'arbol_de_decision.pdf'.


Lo que indica que en el fichero actual de ejecución se ha guardado un archivo en formato PDF, llamado: 'árbol_de_decisión.pdf'.
En este archivo se encontrará el esquema del árbol de decisión generado.
-------------------------------------------------------------------------------------------------------------
El que quiera también lo puede ejecutar bajo Google Colab.

V-0

Publicado el 17 de Octubre del 2023gráfica de visualizaciones de la versión: V-0
416 visualizaciones desde el 17 de Octubre del 2023
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

20231017_112114
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import numpy as np
from sklearn.tree import DecisionTreeClassifier, export_graphviz
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
from graphviz import Source
 
# Datos sintéticos
X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, random_state=42)
 
# Dividir los datos en conjuntos de entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
 
# Crear un clasificador de árbol de decisión
clf = DecisionTreeClassifier(random_state=42)
 
# Entrenar el clasificador
clf.fit(X_train, y_train)
 
# Predecir en el conjunto de prueba
y_pred = clf.predict(X_test)
 
# Calcular la precisión
accuracy = accuracy_score(y_test, y_pred)
print(f'Precisión del árbol de decisión: {accuracy:.2f}')
 
# Visualizar el árbol de decisión y guardarlo en un archivo PDF
dot_data = export_graphviz(clf, out_file=None, filled=True, feature_names=['Característica 1', 'Característica 2'], class_names=['Clase 0', 'Clase 1'])
graph = Source(dot_data)
graph.format = 'pdf'
graph.render('arbol_de_decision')
 
# Mostrar el árbol de decisión en una ventana emergente (puede no funcionar en algunos entornos)
# graph.view()
 
"""
Salida por consola
-----------------------
Precisión del árbol de decisión: 0.95
El árbol de decisión se ha guardado en un archivo PDF llamado 'arbol_de_decision.pdf'.
[Finished in 2.6s]
"""



Comentarios sobre la versión: V-0 (0)


No hay comentarios
 

Comentar la versión: V-0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7447