Recursos do Minicurso
Agora vamos usar o modelo treinado para estimar os jogadores no test_data.
Assim como fizemos com o train_data, criamos x_test e y_test.
A função model.predict() vai gerar uma lista de resultados previstos.
# queremos ordenar os dados de teste pelo valor alvo ("Overall")
test_data = test_data.sort_values([target], ascending=False)
x_test = test_data[features]
y_test = test_data[target]
y_pred = model.predict(x_test)
Vamos comparar com as avaliações reais dos jogadores:
# adiciona uma nova coluna com a pontuação prevista
test_data['Predicted Overall'] = y_pred.copy()
# adiciona a diferença percentual entre previsto e real
difference = (y_pred - y_test) / y_test * 100
test_data['Difference (%)'] = difference
# mostra o resultado
test_data[["Name", "Nationality", "Club", "Overall", "Predicted Overall", "Difference (%)"]]
Uau! Incrível, né? Com esse resultado, dá até pra usar esse modelo pra estimar a pontuação de qualquer jogador do mundo!
Agora vamos fazer um gráfico pra visualizar isso:
# Mostrar gráfico
plt.scatter(range(0,y_test.shape[0]), y_test, color='blue', label="Real")
plt.plot(range(0,y_test.shape[0]), y_pred, color='red', label="Previsto")
# adicionar marcações, rótulos e legenda
plt.xticks(())
plt.xlabel("Jogadores (ordenados pela pontuação real)")
plt.ylabel("Pontuação geral")
plt.legend(loc='upper right')
plt.show()
