New_T

Arvore Decisão Regressão

Oct 14th, 2021
823
363 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import numpy as np
  2. from sklearn.tree import DecisionTreeRegressor
  3. import matplotlib.pyplot as plt
  4. from sklearn.metrics import mean_squared_error
  5. import matplotlib.ticker as tck
  6.  
  7. entradaDadosTreino = np.sort(np.random.uniform(-2*np.pi, 2*np.pi, 100))[:, np.newaxis]
  8. saidaDadosTreino = (np.sin(entradaDadosTreino)/entradaDadosTreino).ravel()
  9.  
  10. arvoreDeRegressao = DecisionTreeRegressor(max_depth=10)
  11. arvoreDeRegressao.fit(entradaDadosTreino, saidaDadosTreino)
  12.  
  13. entradaDadosTest = np.arange(-2*np.pi, 2*np.pi, 0.01)[:, np.newaxis]
  14. saidaDadosPreditaParaEntradasDeTeste = arvoreDeRegressao.predict(entradaDadosTest)
  15.  
  16. saidaDadosRealParaOsDadosDeEntradaDoTeste = (np.sin(entradaDadosTest)/entradaDadosTest).ravel()
  17.  
  18. print(f'RMSE = {np.sqrt(mean_squared_error(saidaDadosRealParaOsDadosDeEntradaDoTeste, saidaDadosPreditaParaEntradasDeTeste))}' )
  19.  
  20. fig = plt.subplots(2)
  21. plt.subplots_adjust(hspace = 1.0)
  22. plt.subplot(2, 1, 1)
  23. plt.plot(entradaDadosTreino,saidaDadosTreino)
  24. plt.xlabel('X')
  25. plt.ylabel('Y')
  26. plt.xlim(-2*np.pi, 2*np.pi)
  27. plt.title(r'$Sinc(x) = \frac{\mathrm{sin}(x)}{x}$', fontsize=20)
  28. possicaoLegendaX= [-2*np.pi , -np.pi,0, np.pi , 2*np.pi]
  29. legendaX = ['$2\pi$','$-\pi$','0', '$\pi$', '$2\pi$']
  30. plt.xticks(possicaoLegendaX, legendaX)
  31. plt.subplot(2, 1, 2)
  32. plt.plot(entradaDadosTest,saidaDadosPreditaParaEntradasDeTeste,'r')
  33. plt.xlabel('X')
  34. plt.ylabel('Y')
  35. plt.xlim(-2*np.pi, 2*np.pi)
  36. plt.title(r'$Predict \approx Sinc(x)$', fontsize=20)
  37. possicaoLegendaX= [-2*np.pi , -np.pi,0, np.pi , 2*np.pi]
  38. legendaX = ['$2\pi$','$-\pi$','0', '$\pi$', '$2\pi$']
  39. plt.xticks(possicaoLegendaX, legendaX)
  40. plt.show()
RAW Paste Data