Para quem tiver interesse, o código abaixo mostra de maneira gráfica a relação do parâmetro (profundidade máxima da árvore) com a eficácia média.
# Biblioteca gráfica
import plotly.graph_objects as go
# Definindo uma função com o parâmetro da árvore de decisão
def roda_arvore_de_decisao(max_depth):
SEED = 301
np.random.seed(SEED)
cv = GroupKFold(n_splits = 10)
modelo = DecisionTreeClassifier(max_depth=max_depth)
results = cross_validate(modelo, x, y, cv = cv, groups = dados.modelo, return_train_score=False)
return results['test_score'].mean() * 100
# Tirando a eficácia média de cada parâmetro
media = []
n_prof = np.linspace(1,30,30)
for i in n_prof:
aux = roda_arvore_de_decisao(i)
media.append(aux)
# Plotando o resultado
fig = go.Figure()
fig = fig.add_trace(go.Scatter(x = n_prof,y = media)) # Inserindo o gráfico como argumento da função add_trace
fig.update_layout(
title = "Acurácia média do DecisionTree",
xaxis_title = "Profundidade máxima da árvore",
yaxis_title = "Acurácia média",
autosize=False,
width=1000,
height=400,
)
O que resulta no seguinte gráfico: