一元线性回归的MATLAB编程实现
2018-03-28 15:24
344 查看
load('Copy_of_data.mat', 'data')
X=data(:,1);
y=data(:,2);
pos0=find(y==0);
pos1=find(y==1);
x_pos=1:size(y);
hold on
plot(X(pos0,:),y(pos0,:),'ro','LineWidth',2,'MarkerSize',7);
plot(X(pos1,:),y(pos1,:),'k+','LineWidth',2,'MarkerSize',7);
%一元线性回归的w和b只是标量,可以直接用求导后的形式表示出来
m=size(X,1);
x_u=sum(X,1)/m;
w=sum(y.*(X-x_u))/(sum(X.*X)-1/m*(sum(X,1)*sum(X,1)));
b=1/m*(sum(y-w.*X));
%做预测
y_hat=w*X+b;
plot(X,y_hat,'g-','LineWidth',2,'MarkerSize',7);
y_0=find(y_hat<0.5);
y_1=find(y_hat>=0.5);
y_hat2=y_hat;
y_hat2(y_0)=0;
y_hat2(y_1)=1;
accuracy=size(find(y_hat2==y),1)/m;一元线性回归的测试数据(Copy_of_data.mat)如下链接:https://download.csdn.net/download/qq_34911780/10313609
X=data(:,1);
y=data(:,2);
pos0=find(y==0);
pos1=find(y==1);
x_pos=1:size(y);
hold on
plot(X(pos0,:),y(pos0,:),'ro','LineWidth',2,'MarkerSize',7);
plot(X(pos1,:),y(pos1,:),'k+','LineWidth',2,'MarkerSize',7);
%一元线性回归的w和b只是标量,可以直接用求导后的形式表示出来
m=size(X,1);
x_u=sum(X,1)/m;
w=sum(y.*(X-x_u))/(sum(X.*X)-1/m*(sum(X,1)*sum(X,1)));
b=1/m*(sum(y-w.*X));
%做预测
y_hat=w*X+b;
plot(X,y_hat,'g-','LineWidth',2,'MarkerSize',7);
y_0=find(y_hat<0.5);
y_1=find(y_hat>=0.5);
y_hat2=y_hat;
y_hat2(y_0)=0;
y_hat2(y_1)=1;
accuracy=size(find(y_hat2==y),1)/m;一元线性回归的测试数据(Copy_of_data.mat)如下链接:https://download.csdn.net/download/qq_34911780/10313609
相关文章推荐
- 一元线性回归的详解及其Spss和Java的实现 之 spss实现
- 一元线性回归分析及java实现
- 利用最小二乘法实现图片中多个点的一元线性回归
- 一元线性回归的详解及其Spss和Java的实现 Java实现
- Java实现一元线性回归
- 一元线性回归的Python编程实现
- 一元线性回归的详解及其Spss和Java的实现 之 理论说明
- 基于TensorFlow实现一元线性回归
- Python实现机器学习一(实现一元线性回归)
- 【转载】用OCTAVE实现一元线性回归的梯度下降算法
- 【机器学习】用Octave实现一元线性回归的梯度下降算法
- 利用最小二乘法实现图片中多个点的一元线性回归
- matlab实现一元线性回归和多元线性回归
- 利用最小二乘法实现图片中多个点的一元线性回归
- matlab实现一元线性回归和多元线性回归
- 线性回归问题简单实现matlab
- 利用栈实现两个一元多项式相加
- 用链表实现一元多项式的加、减、乘、求导运算
- 利用简单的一元线性回归分析估计软件项目开发时间
- 机器学习线性回归实现