Depois do salto, a subida exige inteligência — não só força. Aqui você recore ao cérebro artificial para tomar decisões melhores a cada pedalada.
Treinar 100 pilotos manualmente é inviável. Mas se tivermos os dados históricos de 6 corridas — peso, velocidade, inclinação, resultado — podemos ensinar uma máquina a decidir.
Features (entradas): [velocidade, peso, inclinação_rampa]
Label (saída): 0 = BURACO, 1 = QUASE, 2 = VOOU, 3 = LENDÁRIO
# Dataset do Circuito Ferradura — corridas históricas
X_treino = [
[4.5, 65, 15], # velocidade, peso (kg), inclinação (°)
[7.0, 70, 20],
[9.5, 60, 25],
[11.0, 55, 30],
[3.0, 80, 10],
[8.5, 63, 22],
[6.5, 72, 18],
[12.0, 58, 35],
]
y_treino = [0, 1, 2, 3, 0, 2, 1, 3] # BURACO, QUASE, VOOU, LENDÁRIO
CLASSES = ["BURACO", "QUASE", "VOOU", "LENDÁRIO"]
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# Treinar a árvore de decisão
modelo = DecisionTreeClassifier(max_depth=4, random_state=42)
modelo.fit(X_treino, y_treino)
# Prever resultado para um novo piloto
novo_piloto = [[8.0, 67, 21]]
predicao = modelo.predict(novo_piloto)
print(f"Resultado previsto: {CLASSES[predicao[0]]}")
Resultado previsto: VOOU
# Acurácia no conjunto de treino
precisao = accuracy_score(y_treino, modelo.predict(X_treino))
print(f"Acurácia: {precisao:.0%}")
Acurácia: 100%
Com o modelo treinado, criamos um bot que analisa as condições da pista em tempo real e sugere a velocidade ideal para o salto.
class BotFerradura:
def __init__(self, modelo, classes):
self.modelo = modelo
self.classes = classes
def analisar(self, velocidade: float, peso: float, inclinacao: float) -> str:
entrada = [[velocidade, peso, inclinacao]]
codigo = self.modelo.predict(entrada)[0]
resultado = self.classes[codigo]
if codigo == 0:
dica = "⚠️ Aumente a velocidade! Risco de buraco."
elif codigo == 3:
dica = "🏆 Velocidade lendária! Segure o guidão."
else:
dica = f"✅ Resultado previsto: {resultado}"
return dica
bot = BotFerradura(modelo, CLASSES)
print(bot.analisar(9.0, 65, 25))
✅ Resultado previsto: VOOU
Expanda o dataset para 20 corridas, separe 80% para treino e 20% para teste real,
avalie a acurácia no conjunto de teste, e ajuste o max_depth para encontrar
o modelo mais equilibrado (sem overfitting). Documente os resultados.