Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- % 1. Eksperimentalni zadaci: Linearna regresija
- clear; clc; close all;
- load('housing.mat');
- %% klasicna Linearna regresija
- % treniranje linearne regresije (train set)
- Xtrain1 = addone(Xtrain); Xtest1 = addone(Xtest); X1 = addone(X);
- w = pinv(Xtrain1) * ytrain;
- % testiranje na testnom skupu
- tocnost_modela = mean(((ytest - Xtest1*w).^2))/2;
- disp(['Tocnost predikcije modela: ', num2str(tocnost_modela)]);
- % prikazinje podataka testiranja
- plot(X, y, 'rx', 'MarkerSize', 10, 'LineWidth', 1.5);
- xlabel('naziv var (x)');
- ylabel('procijenjena vrijesnot(y)');
- hold on;
- plot(X, X1*w, 'bx', 'LineWidth', 2)
- hold off;
- %% utjecaj normalizacije
- % normalizacija podataka (samo train skupa kako ne bi sprijecili curenje
- % ingformacija.)
- Xtrain_std = normalize(Xtrain,mean(Xtrain),std(Xtrain));
- % standardizacija se obavlja i na testnom skupu podataka, al sa jednakim
- % srednjim vrijednostima kao kod testiranja
- Xtest_std = normalize(Xtest ,mean(Xtrain),std(Xtrain));
- X_std = normalize(X ,mean(Xtrain),std(Xtrain));
- Xtrain_std1 = addone(Xtrain_std); Xtest_std1 = addone(Xtest_std); X_std1 = addone(X_std);
- % treniranje linearne regresije (train set)
- w_std = pinv(Xtrain_std1) * ytrain;
- % testiranje na testnom skupu
- tocnost_modela_std = mean(((ytest - Xtest_std1*w_std).^2))/2;
- disp(['Tocnost predikcije modela: ', num2str(tocnost_modela_std)]);
- % prikazinje podataka testiranja
- plot(X_std, y, 'rx', 'MarkerSize', 10, 'LineWidth', 1.5);
- xlabel('naziv var (x)');
- ylabel('procijenjena vrijesnot(y)');
- hold on;
- plot(X_std, X_std1*w_std, 'bx', 'LineWidth', 2)
- hold off;
Add Comment
Please, Sign In to add comment