Tugas Uas 1

                                         



                                                     [Kembali ke Halaman Sebelumnya]

Pengaplikasian Machine Learning dalam memprediksi laju pertumbuhan penduduk menggunakan algoritma Regresi Linear 









1.      Pengertian

        Regresi linier merupakan algoritma yang digunakan untuk mengukur hubungan linier antara dua atau lebih dari dua variable dan juga merupakan salah satu dari jenis analisis prediksi yang sering digunakan pada data berskala kuantitatif (interval atau rasio). Analisis ini berfungsi untuk membuktikan apakah sekumpulan variabel bebas memiliki pengaruh signifikan dalam memprediksi variabel terikat. Persamaan garis linier adalah y = mx + b. Pada persamaan tersebut m adalah kemiringan atau gradien dan b adalah intercept atau bias

 

2.      Konsep Regresi Linear

 

Pada dasarnya konsep regresi linear ini berasal dari persamaan garis. Seperti formula regresi llinear sederhana berikut.

  



Formula di atas mengingatkan akan rumus persamaan garis ,yaitu y = mx + c, dimana m merupakan gradien atau kemiringan garis dan c merupakan konstanta. Secara umum, model regresi linear dapat diartikan sebagai penggunaan fungsi garis lurus sebagai acuan untuk memprediksi data. Pada persamaan di atas, y_topi merupakan variabel dependen dari nilai yang akan diprediksi, sementara x1 merupakan variabel independen atau variabel bebas atau prediktornya.Untuk menghasilkan garis yang tepat dengan dengan error seminimal mungkin, kita harus menentukan nilai theta0 dan theta1 yang digunakan sebagai parameter. theta0 merupakan sebuah intersep (intercept), sedangkan theta1 merupakan gradien atau kemiringan garis. theta0 dan theta1 dapat disebut juga koefisien persamaan linear.

Pada sumber lain, mungkin kita akan menemukan rumus yang berbeda dalam menotasikan fungsi regresi linear, namun pada dasarnya konsepnya tetap sama. Misalnya mungkin ada referensi yang menotasikannya dengan y = wx + a atau yang lainnya. Dalam rumus y = wx + a, w merupakan gradien dan a merupakan intersep, jadi intinya tetap sama.


3. Data percobaan


4. Program Matlab

%Import Data

jumlah = xlsread('JumlahPendudukIndonesia.xlsx')

 

x = jumlah(:,2);

y = jumlah(:,3);

m = length(x);

 

%Visualize Data

plot(x,y,'O')

 

 

%Linear Regression y = a*x + b

p = polyfit(x,y,1); %[a b]

ypred = polyval(p,x);

plot(x,y,'x');

hold on;

plot (x, ypred);

hold off;

rmse = sqrt (mean((ypred - y).^2))

rrmse = rmse/mean(y)

 

%Polynomial regression y = a*z^2 + b*x + c

p = polyfit(x,y,2); %[cba]

ypred = polyval(p,x);

plot(x,y,'x');

hold on;

plot (x, ypred);

hold off;

rmse = sqrt (mean((ypred - y).^2))

rrmse = rmse/mean(y)

 

%Normalisasi Fitur

%xnorm = (x - mean (x))/std(x);

xnorm = (x - min(x))/(max(x) - min(x));

 

%Polynomial regression with normalized

p = polyfit(xnorm,y,20);

ypred = polyval(p,xnorm);

plot(x,y,'x');

hold on;

plot (x, ypred);

hold off;

rmse = sqrt (mean((ypred - y).^2))

rrmse = rmse/mean(y)

 

%Effect complexity of the model

%Efek kompleksitas model

maxdegree = 20;

for i = 1:maxdegree

    p = polyfit(xnorm,y,i);

    ypred = polyval(p,xnorm);

    error(i) = sqrt (mean((ypred - y).^2));

end

plot(1:maxdegree, error)

 

%Split the data into training and validation sets

%Pisahkan data menjadi set pelatihan dan validasi

P = 0.5;

k = randperm(m);

xtrain = xnorm(k(1:round(P*m)));

xval = xnorm(k(round(P*m)+1:end));

ytrain = y(k(1:round(P*m)));

yval = y(k(round(P*m)+1:end));

plot(xtrain,ytrain,'O');

hold on;

plot(xval,yval,'x');

hold off;

 

%Retrain Quadratic model with training and validation split

%Latih kembali model Kuadrat dengan pemisahan pelatihan dan validasi

p = polyfit(xtrain, ytrain, 2);

ypredtrain = polyval(p,xtrain);

ypredval = polyval(p,xval);

plot(xtrain, ytrain, 'x');

hold on;

plot(xval,yval,'x');

plot(xtrain, ypredtrain, 'O');

plot(xval, ypredval, 'O');

hold off;

 

%Effect complexity on undeerfitting and overfitting

%Efek kompleksitas pada underfitting dan overfitting

P = 0.5;

maxdegree = 10;

k = randperm(m);

xtrain = xnorm(k(1:round(P*m)));

xval = xnorm(k(round(P*m)+1:end));

ytrain = y(k(1:round(P*m)));

yval = y(k(round(P*m)+1:end));

for i = 1:maxdegree

    p = polyfit(xtrain,ytrain,i);

    ypredtrain = polyval(p,xtrain);

    ypredval = polyval(p,xval);

    errortrain(i) = sqrt (mean((ypredtrain - ytrain).^2));

    errorval(i) = sqrt (mean((ypredval - yval).^2));

end

plot(1:maxdegree, errortrain);

hold on;

plot(1:maxdegree, errorval);

hold off;

 

%Itterations on training sets

%Iterasi pada set pelatihan

P = 0.5;

maxdegree = 6;

nrepeats = 50;

errortrain = zeros(maxdegree,1);

errorval = zeros(maxdegree,1);

 

for ii = 1:nrepeats

    %random training/validation split

    k = randperm(m);

    xtrain = xnorm(k(1:round(P*m)));

    xval = xnorm(k(round(P*m)+1:end));

    ytrain = y(k(1:round(P*m)));

    yval = y(k(round(P*m)+1:end));

   

    %loop Polynomial

    for i = 1:maxdegree

        p = polyfit(xtrain,ytrain,i);

        ypredtrain = polyval(p,xtrain);

        ypredval = polyval(p,xval);

        errortrain(i) = errortrain(i) + sqrt (mean((ypredtrain - ytrain).^2));

        errorval(i) = errorval(i) + sqrt (mean((ypredval - yval).^2));

    end

end

 

errortrain = errortrain/nrepeats;

errorval = errorval/nrepeats;

 

plot(1:maxdegree, errortrain);

hold on;

plot(1:maxdegree, errorval);

hold off;

 

%optimal polynomial

[M, I] = min(errorval)

 

%PREDICTIONS

p = polyfit(xnorm,y,2);

xfuture = 2021:2050;

    %normalization

    xfuturenorm = (xfuture - min(x))/(max(x) - min(x));

yfuture = polyval(p,xfuturenorm);

 

xpast = 1950:1970;

    %normalization

    xpastnorm = (xpast - min(x))/(max(x) - min(x));

ypast = polyval(p,xpastnorm);

 

plot(x,y,'O');

hold on;

plot(xfuture,yfuture);

plot(xpast,ypast);

hold off

 

 5. Tampilan Matlab


6. Vidio



 







Tidak ada komentar:

Posting Komentar

Bahan Presentasi Untuk Matakuliah  Elektronika Dan Sensor Dosen Pengampu :  Darwison, MT  OLEH : MUHAMMAD RIFDAL (1...