Bom dia, Jonas! :)
Muitas vezes dentro do Machine Learning, devido a algumas coisas randômicas que ocorrem por internamente nos próprios algoritmos, o resultado varia e temos até meios de controlar essa variação. Pode ser que seja isso que tenha acontecido.
Mas, pelo o que eu vi nesse código que você compartilhou, tem algumas diferenças entre ele o do github do curso que foi usado para obter esses resultados.
A primeira que acredito que seja uma boa ajustar e testar novamente é a entre dados de treino e teste. No código do curso, a porcentagem de treino é de 0.8, e no que você compartilhou é de 0.9, isso já dá uma boa diferença de resultado. Eu aconselho alterar e testar novamente.
Além disso, o do curso considera a de teste também, pois precisamos dela para o modelo classificar. Eu rodaria de novo e também incluiria porcentagem_de_teste = 0.1
(só pra ter certeza).
Também reparei em algumas diferenças de type casting, então ao invés de
Xdummies_df = pd.get_dummies(X_df).astype(int)
temos
Xdummies_df = pd.get_dummies(X_df)
e de
tamanho_de_treino = int(porcentagem_treino * len(Y))
temos
tamanho_de_treino = porcentagem_de_treino * len(Y)
Procure testar com essas alterações e, se continuar diferente damos mais uma olhada, só voltar aqui no Fórum :).