def test_least_squares_err(self): x_train = TEST_DATA['ls']['x_train'] y_train = TEST_DATA['ls']['y_train'] M = TEST_DATA['ls']['M'] err = TEST_DATA['ls']['err'] _, err_computed = least_squares(x_train, y_train, M) self.assertAlmostEqual(err, err_computed, 8)
def test_least_squares_w(self): x_train = TEST_DATA['ls']['x_train'] y_train = TEST_DATA['ls']['y_train'] M = TEST_DATA['ls']['M'] w = TEST_DATA['ls']['w'] w_computed, _ = least_squares(x_train, y_train, M) max_diff = np.max(np.abs(w - w_computed)) self.assertAlmostEqual(max_diff, 0, 6)
def test_least_squares_err(self): x_train = TEST_DATA['ls']['x_train'] y_train = TEST_DATA['ls']['y_train'] M = TEST_DATA['ls']['M'] err_expected = TEST_DATA['ls']['err'] _, err = least_squares(x_train, y_train, M) self.assertEqual(np.size(err), 1) self.assertAlmostEqual(err, err_expected)
def test_least_squares_w(self): x_train = TEST_DATA['ls']['x_train'] y_train = TEST_DATA['ls']['y_train'] M = TEST_DATA['ls']['M'] w_expected = TEST_DATA['ls']['w'] w, _ = least_squares(x_train, y_train, M) self.assertEqual(np.shape(w), (7, 1)) np.testing.assert_almost_equal(w, w_expected)
# Ladowanie danych with open(os.path.join(os.path.dirname(__file__), 'data.pkl'), mode='rb') as file: data = pickle.load(file) x_plot = np.arange(0, 1.01, 0.01) y_obj = target_output(x_plot) # Dopasowanie wielomianow metoda najmniejszych kwadratow print('\n--- Dopasowanie wielomianow metoda najmniejszych kwadratow ---') print('-------------- Liczba punktow treningowych N=8. --------------') fig = plt.figure(figsize=(12, 6), num='Zadanie najmniejszych kwadratow dla N=8') for i in range(8): w, err = least_squares(data['x_train_8'], data['y_train_8'], i) y_model = polynomial(x_plot, w) sub = fig.add_subplot(2, 4, i + 1) plot_model(data['x_train_8'], data['y_train_8'], x_plot, y_obj, y_model) sub.set_title("M = {}".format(i)) plt.tight_layout() plt.draw() print('\n--- Wcisnij klawisz, aby kontynuowac ---') plt.waitforbuttonpress(0) print('\n--- Dopasowanie wielomianow metoda najmniejszych kwadratow ---') print('-------------- Liczba punktow treningowych N=50. --------------') fig = plt.figure(figsize=(12, 6), num='Zadanie najmniejszych kwadratow dla N=50')
import content as cn import numpy as np from utils import * import os import pickle x = np.array([2, -1, -2, 0, -3, -6, -10, 5, 1, 8, 10, -14]).reshape(12, 1) y = np.array([4, 3, 0, 1.5, -1, 2, 0, 5, 3, 10, 15, 0]).reshape(12, 1) x2 = np.array([-3, -2, -1, 0, 1, 2, 3]).reshape(7, 1) y2 = np.array([-27, -8, -1, 0, 1, 8, 27]).reshape(7, 1) d = cn.least_squares(x, y, 3) print(d) print() print() xs = [i for i in range(3)] print(xs)