Advertisement
fevzi02

Untitled

Dec 12th, 2023
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.42 KB | None | 0 0
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from numpy.linalg import inv
  4.  
  5. # ... [Ваш текущий код до определения функции nadaraya_watson]
  6.  
  7. def lawless_regression(X_train, y_train, x, h):
  8. weights = np.exp(-((X_train - x)**2) / (2 * h**2))
  9. W = np.diag(weights.ravel())
  10. A = np.vstack([X_train.T, np.ones(len(X_train))]).T
  11. AW = A.T.dot(W)
  12. theta = inv(AW.dot(A)).dot(AW.dot(y_train))
  13. return x * theta[0] + theta[1]
  14.  
  15. # ... [Остальная часть вашего кода для непараметрической регрессии]
  16.  
  17. plt.figure(figsize=(24, 8))
  18.  
  19. # Отображение результатов метода Надарая-Ватсона
  20. plt.subplot(1, 2, 1)
  21. # ... [Код для отображения результатов метода Надарая-Ватсона]
  22.  
  23. plt.title('Непараметрическая регрессия: Метод Надарая-Ватсона')
  24.  
  25. # Отображение результатов метода Лоулесса
  26. plt.subplot(1, 2, 2)
  27. for h in h_values:
  28. y_pred = np.array([lawless_regression(X, y, x, h) for x in X_test])
  29. plt.plot(X_test, y_pred, label=f'h = {h}')
  30.  
  31. plt.scatter(X, y, color='k', label='Исходные данные')
  32. plt.xlabel('X')
  33. plt.ylabel('y')
  34. plt.title('Непараметрическая регрессия: Метод Лоулесса')
  35. plt.legend()
  36. plt.show()
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement