Al ser de lista blanca, me parece muy interesante su uso en la agricultura, como un método de aprendizaje de las diferentes decisiones tomadas en las etapas de siembra y cosecha.
Introducción a árboles de decisión
¿Qué son los árboles de decisión?
Tu primer árbol de decisión con scikit-learn
Análisis de datos para tu primer árbol de decisión
Entrenamiento y evaluación de árbol de decisión con scikit-learn
¿Cómo funcionan los árboles de decisión?
¿Cuándo usar árboles de decisión?
Quiz: Introducción a árboles de decisión
Proyecto práctico: árboles de decisión
Conociendo problema a resolver y dataset de clasificación
Análisis exploratorio de datos para árbol de decisión
Procesamiento de datos para el entrenamiento de árbol de decisión
Entrenamiento de modelo de clasificación con árbol de decisión
¿Cómo evaluar un modelo de árbol de decisión?
Evaluación de resultados del modelo de árbol de decisión
Quiz: Proyecto práctico: árboles de decisión
Introducción a random forest
¿Qué son los random forest o bosques aleatorios?
Tu primer random forest con scikit-learn
Análisis de datos para tu primer random forest
Entrenamiento de tu primer modelo de random forest con scikit-learn
Evaluación de tu primer modelo de random forest con scikit-learn
¿Cómo funcionan los random forest?
¿Cuándo utilizar random forest?
Quiz: Introducción a random forest
Proyecto práctico: random forest
Entrenamiento de modelo de clasificación de carros con random forest
Evaluación de resultados del modelo de clasificación con random forest
Quiz: Proyecto práctico: random forest
Conclusión
Proyecto final y cierre
Comparte tu proyecto de Random Forest y obtén tu certificado
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 5
Preguntas 2
Al ser de lista blanca, me parece muy interesante su uso en la agricultura, como un método de aprendizaje de las diferentes decisiones tomadas en las etapas de siembra y cosecha.
Hola Platzinautas, les recomiendo que investiguen XGBoost un modelo regresor muy poderoso, en este ejemplo en particular obtuvo mejor desempeño que el recomendado con un accuracy un 10% superior, les comparto el código con los dos modelos para que comparen, por otro lado los valores del XGBoost están por defecto, se le pueden configurar y setear como los estimators, y mejorar aun mas.
from sklearn.datasets import load_digits
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.linear_model import LogisticRegression
from imblearn.under_sampling import RandomUnderSampler
from sklearn.model_selection import GridSearchCV
from sklearn.model_selection import train_test_split
df = pd.read_csv('titanic.csv')
df.drop(['Name', 'Fare'], axis=1, inplace=True)
df.columns = ['Survived', 'Pclass', 'Sex', 'Age', 'SibSp', 'Parch']
df = pd.get_dummies(df, columns=['Sex'], drop_first=True)
df.rename(columns ={'Sex_male': 'Sex'}, inplace=True)
X = df.drop('Survived', axis=1)
y= df['Survived']
X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.25, random_state=0)
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train,y_train)
y_train_pred = tree.predict(X_train)
y_test_pred = tree.predict(X_test)
from xgboost import XGBRegressor
from sklearn.metrics import accuracy_score
model = XGBRegressor()
model.fit(X_train,y_train)
y_train_pre = model.predict(X_train)
y_test_pre = model.predict(X_test)
from sklearn.metrics import mean_squared_error
mse_train = mean_squared_error(y_train, y_train_pre)
mse_test = mean_squared_error(y_test, y_test_pre)
inverted_mse_train = 1 -mse_train
inverted_mse_test = 1 -mse_test
print("Inverted MSE (Train):", inverted_mse_train)
print("Inverted MSE (Test):", inverted_mse_test)
train_accuracy = accuracy_score(y_train, y_train_pred)
test_accuracy = accuracy_score(y_test, y_test_pred)
print(X_train)
print('El accuracy en train es: ', train_accuracy)
print('El accuracy en test es: ', test_accuracy)
importances = tree.feature_importances_
columns = X.columns
data = pd.DataFrame([importances], columns=columns)
sns.barplot(data, palette='bright', saturation=2.0, linewidth=2)
plt.show()
Ventajas:
Desventajas:
¿Cuando usar arboles de decision?
Se puede aplicar en el proceso de evaluación del cliente para determinar si es factible o no otorgar un crédito a un potencial cliente en base a datos cuantitativo y cualitativo del cliente.
Si hablamos de los arboles decisicion necesitamos saber que:
Fuente: https://scikit-learn.org/stable/modules/tree.html#mathematical-formulation
Los aprendices pueden crear árboles demasiado complejos que no generalizan bien los datos. Esto se llama sobreajuste.
Pueden ser inestables porque pequeñas variaciones en datos pueden generar un árbol completamente diferente. Este problema se mitiga mediante el uso de árboles de decisión dentro de un conjunto.
Las predicciones de los árboles de decisión no son uniformes ni continuas, sino aproximaciones constantes por partes, como se ve en la figura anterior. Por lo tanto, no son buenos para la extrapolación.
Dichos algoritmos no pueden garantizar la devolución del árbol de decisión globalmente óptimo. Esto se puede mitigar entrenando varios árboles en un alumno de conjunto, donde las características y las muestras se muestrean aleatoriamente con reemplazo.
Hay conceptos que son difíciles de aprender porque los árboles de decisión no los expresan fácilmente, como XOR, problemas de paridad o multiplexor.
Los aprendices crean árboles sesgados si dominan algunas clases. Por lo tanto, se recomienda equilibrar el conjunto de datos antes de ajustarlo al árbol de decisión.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.