Buscar

Trabalho Inteligencia Computacional Sergio Saraiva de Sousa Neto

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

b15ba907-4e25-4fc8-b2a7-e7a1b131d0f5
Trabalho Inteligencia Computacional - Sergio Saraiva de Sousa Neto/Questão1/script4.sce
clear;
clc;
//lê dados do arquivo
X = fscanfMat("C:\Users\sergi\Desktop\Trabalho1-IC\aerogerador.dat");
//separa os vetores x e y
y = X(:,2);
x = X(:,1);
//encontra o beta
X1 = [ones(2250,1)x];
b1 = inv(X1'*X1)*X1'*y;
X2 = [ones(2250,1)x x^2];
b2 = inv(X2'*X2)*X2'*y;
X3 = [ones(2250,1)x x^3];
b3 = inv(X3'*X3)*X3'*y;
X4 = [ones(2250,1)x x^2 x^3 x^4];
b4 = inv(X4'*X4)*X4'*y;
//determina os valores de ybarra e ychapeu
ybarra=mean(y,'r');
ychap = X4*b4;
//determina o erro
e4 = y - ychap;
//plota os graficos
plot(x,y,"b*");
plot(x,ychap, "r-");
//determina o Coeficiente de determinação
SQe = sum(e4^2);
Syy = sum((y-ybarra)^2);
R1 = 1-(SQe/Syy);
//determina o R² ajustado
SQeAdj = SQe/(2250-5);
SyyAdj = Syy/(2250-1);
R2 = 1 - (SQeAdj/SyyAdj);
printf("O R² é: %f \n", R1);
printf(" O R² ajustado é: %f", R2);
Trabalho Inteligencia Computacional - Sergio Saraiva de Sousa Neto/Questão1/script2.sce
clear;
clc;
//lê dados do arquivo
X = fscanfMat("C:\Users\sergi\Desktop\Trabalho1-IC\aerogerador.dat");
//separa os vetores x e y
y = X(:,2);
x = X(:,1);
//encontra o beta
X1 = [ones(2250,1)x];
b1 = inv(X1'*X1)*X1'*y;
X2 = [ones(2250,1)x x^2];
b2 = inv(X2'*X2)*X2'*y;
//determina os valores de ybarra e ychapeu
ybarra=mean(y,'r');
ychap = X2*b2;
//determina o erro
e2 = y - ychap;
//plota os graficos
plot(x,y,"b*");
plot(x,ychap, "r-");
//determina o Coeficiente de determinação
SQe = sum(e2^2);
Syy = sum((y-ybarra)^2);
R1 = 1-(SQe/Syy);
//determina o R² ajustado
SQeAdj = SQe/(2250-3);
SyyAdj = Syy/(2250-1);
R2 = 1 - (SQeAdj/SyyAdj);
printf("O R² é: %f \n", R1);
printf(" O R² ajustado é: %f", R2);
Trabalho Inteligencia Computacional - Sergio Saraiva de Sousa Neto/Questão2/RegressaoMultipla.m
clear;
clc;
D =[122 139 0.115; 
 114 126 0.120; 
 086 090 0.105; 
 134 144 0.090; 
 146 163 0.100; 
 107 136 0.120; 
 068 061 0.105; 
 117 062 0.080; 
 071 041 0.100; 
 098 120 0.115];
 
x = [D(:,1) D(:,2)];
x1 = D(:,1);
x2 = D(:,2);
y = D(:,3);
X = [ones(10,1),x];
b = inv(X'*X)*X'*y;
%determina os valores de ybarra e ychapeu
ybarra=mean(y,2);
ychap = X*b;
%determina o erro
e1 = y - ychap;
%plota os graficos
plot3(x1,x2,y,"b*");
grid on;
hold on;
plot3(x1,x2,ychap,"r-");
%[X,Y] = meshgrid(x1,x2);
%Z = [ones(10,1),ychap];
%mesh(X,Y,ychap);
%determina o Coeficiente de determinação
SQe = sum((e1).^2);
Syy = sum((y-ybarra).^2);
R1 = 1-(SQe/Syy);
Trabalho Inteligencia Computacional - Sergio Saraiva de Sousa Neto/Questão1/script1.sce
clear;
clc;
//lê dados do arquivo
X = fscanfMat("C:\Users\sergi\Desktop\Trabalho1-IC\aerogerador.dat");
//separa os vetores x e y
y = X(:,2);
x = X(:,1);
//encontra o beta
X1 = [ones(2250,1)x];
b1 = inv(X1'*X1)*X1'*y;
//determina os valores de ybarra e ychapeu
ybarra=mean(y,'r');
ychap = X1*b1;
//determina o erro
e1 = y - ychap;
//plota os graficos
plot(x,y,"b*");
plot(x,ychap, "r-");
//determina o Coeficiente de determinação
SQe = sum(e1^2);
Syy = sum((y-ybarra)^2);
R1 = 1-(SQe/Syy);
//determina o R² ajustado
SQeAdj = SQe/(2250-2);
SyyAdj = Syy/(2250-1);
R2 = 1 - (SQeAdj/SyyAdj);
printf("O R² é: %f \n", R1);
printf(" O R² ajustado é: %f", R2);
Trabalho Inteligencia Computacional - Sergio Saraiva de Sousa Neto/Questão1/script5.sce
clear;
clc;
//lê dados do arquivo
X = fscanfMat("C:\Users\sergi\Desktop\Trabalho1-IC\aerogerador.dat");
//separa os vetores x e y
y = X(:,2);
x = X(:,1);
//encontra o beta
X1 = [ones(2250,1)x];
b1 = inv(X1'*X1)*X1'*y;
X2 = [ones(2250,1)x x^2];
b2 = inv(X2'*X2)*X2'*y;
X3 = [ones(2250,1)x x^3];
b3 = inv(X3'*X3)*X3'*y;
X4 = [ones(2250,1)x x^2 x^3 x^4];
b4 = inv(X4'*X4)*X4'*y;
X5 = [ones(2250,1)x x^2 x^3 x^4 x^5];
b5 = inv(X5'*X5)*X5'*y;
//determina os valores de ybarra e ychapeu
ybarra=mean(y,'r');
ychap = X5*b5;
//determina o erro
e5 = y - ychap;
//plota os graficos
plot(x,y,"b*");
plot(x,ychap, "r-");
//determina o Coeficiente de determinação
SQe = sum(e5^2);
Syy = sum((y-ybarra)^2);
R1 = 1-(SQe/Syy);
//determina o R² ajustado
SQeAdj = SQe/(2250-6);
SyyAdj = Syy/(2250-1);
R2 = 1 - (SQeAdj/SyyAdj);
printf("O R² é: %lf \n", R1);
printf(" O R² ajustado é: %lf", R2);
Trabalho Inteligencia Computacional - Sergio Saraiva de Sousa Neto/Questão1/script3.sce
clear;
clc;
//lê dados do arquivo
X = fscanfMat("C:\Users\sergi\Desktop\Trabalho1-IC\aerogerador.dat");
//separa os vetores x e y
y = X(:,2);
x = X(:,1);
//encontra o beta
X1 = [ones(2250,1)x];
b1 = inv(X1'*X1)*X1'*y;
X2 = [ones(2250,1)x x^2];
b2 = inv(X2'*X2)*X2'*y;
X3 = [ones(2250,1)x x^2 x^3];
b3 = inv(X3'*X3)*X3'*y;
//determina os valores de ybarra e ychapeu
ybarra=mean(y,'r');
ychap = X3*b3;
//determina o erro
e3 = y - ychap;
//plota os graficos
plot(x,y,"b*");
plot(x,ychap, "r-");
//determina o Coeficiente de determinação
SQe = sum(e3^2);
Syy = sum((y-ybarra)^2);
R1 = 1-(SQe/Syy);
//determina o R² ajustado
SQeAdj = SQe/(2250-4);
SyyAdj = Syy/(2250-1);
R2 = 1 - (SQeAdj/SyyAdj);
printf("O R² é: %f \n", R1);
printf(" O R² ajustado é: %f", R2);
Trabalho Inteligencia Computacional - Sergio Saraiva de Sousa Neto/.~lock.Documento1.docx#
,sergio,Sergio,23.04.2018 23:45,file:///home/sergio/.config/libreoffice/4;
Trabalho Inteligencia Computacional - Sergio Saraiva de Sousa Neto/Documento1.pdf
UNIVERSIDADE FEDERAL DO CEARÁ
CAMPUS SOBRAL
ENGENHARIA DA COMPUTAÇÃO
INTELIGENICA COMPUTACIONAL
SÉRGIO SARAIVA DE SOUSA NETO – 385138
IMPLEMENTAÇÃO REGRESSÃO LINEAR E MULTIPLA
SOBRAL
2018.1
1. INTRODUÇÃO
Utilizando-se dos conhecimentos absorvidos em sala de aula,
foi proposto um trabalho para a implementação dos métodos de 
regressão multipla e linear em linguagem de programação. Foi 
utilizado Scilab, para a regressão linar, e o MatLab, para a 
regressão multipla, além de que as ferramentas gráficas do 
MatLab foram mais fáceis e poderosas de usar em comparação as
do Scilab.
Os métodos tentam prever, usando como base, 
comportamentos observados, no caso do trabalho, um 
aerogerador, traçando uma reta por meio do método de minimos 
quadrados, tornando possível uma estimativa bastante próxima 
de cenários reais não observados.
2. REGRESSÃO LINEAR
Após a leitura dos dados do arquivo por meio da função 
"fscafMat", os valores foram armazenados na matriz X, e depois 
os vetores foram divididos nas componentes x e y. Em seguida 
encontramos o X1 e o beta 1 pela formula beta = (X1'*X1)^(-
1)*X1'*y. Determinamos então ychap, multiplicando o X1 por 
beta1. Essa será a reta plotada no gráfico.
2.1 ANÁLISE DO R² E R² AJUSTADO
Os valores encontrados foram satisfatórios e esperados, e 
notou-se que a partir de um certo número de fatores o ganho não 
é tão considerável em R², além de que pode se tornar muito 
dispendioso computacionalmete, pois quanto mais fatores, maior 
o custo, e a partir dessa quantidade de fatores o ganho é mínimo.
As retas também conseguiram demonstrar bem os dados 
observados, contudo nota-se pouca diferença a partir do quarto 
fator.
3. REGRESSÃO MULTIPLA
Após a leitura dos dados da base de dados D, foram 
separadas as colunas 1 e 2 na matriz x e a coluna 3 foi alocada no
vetor independente x. Há também a divisão da matriz x em dois 
vetores de coluna única onde x1 é a coluna 1 da matriz x e o x2 é
a coluna 2 da matriz x2. Encontramos, então X e Beta (b) e por 
fim calculamos y chapeu.
Tentamos plotar o plano, contudo não foi possível solucionar 
o erro acusado
pelo o MatLab. Entretanto traçamos uma reta com 
o plot3 e percebemos que ela passa proxima aos pontos e que se 
a vemos de um certo angulo é possível imaginar um plano.
3.1 ANÁLISE DE R²
Quando observamos a variável R1 (que representa R² no 
código) no MatLab ele diz que o seu valor é -inf, mas se 
executarmos o mesmo código no Scilab o valor passa a ser 
0.723882. Este valor não é muito satisfatório, mas pode ser 
melhorado com a utilização de mais fatores quando 
determinamos o y chapeu.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais