码迷,mamicode.com
首页 > 其他好文 > 详细

线性回归

时间:2020-06-06 23:18:23      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:公式   hub   otl   math   log   ima   wan   pos   lis   

线性回归知识(参考链接)

技术图片

 

 技术图片

 

 正规方程推导过程

代码实现

  matlab

x(1:10,1) = [-0.5,-0.45,-0.35,-0.35,-0.1,0,0.2,0.25,0.3,0.5];
x(1:10,2) = 1;
y = [-0.2,0.1,-1.25,-1.2,0,0.5,-0.1,0.2,0.5,1.2];
y = transpose(y);
figure;
hold on
scatter(x(:,1),y,‘r‘,‘filled‘);
axis([-1.0,1.0,-3.0,3.0])
%求权重
x_T = transpose(x);
w = inv(x_T*x)*x_T*y;
hat_y = x*w;
disp(‘权重‘); disp(w);
x1 = linspace(-1,1,50);
hat_y = x1*w(1)+w(2);
plot(x1,hat_y,‘g‘);
axis([-1.0,1.0,-3,3]);
title(‘线性回归‘)
xlabel(‘x‘)
ylabel(‘y‘)

 技术图片

 

 

 Python

 1 import numpy as np
 2 import math
 3 import matplotlib.pyplot as plt
 4  X = np.hstack((np.array([[-0.5,-0.45,-0.35,-0.35,-0.1,0,0.2,0.25,0.3,0.5]]).reshape(-1, 1), np.ones((10,1))*1))
 5 y = np.array([-0.2,0.1,-1.25,-1.2,0,0.5,-0.1,0.2,0.5,1.2]).reshape(-1,1)
 6 # 用公式求权重
 7 w = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
 8 hat_y = X.dot(w)
 9 print("Weight:{}".format{list(w)})
10 x = np.linspace(-1, 1, 50)
11 hat_y = x * w[0] + w[1]
12 plt.figure(figsize=(4,4))
13 plt.xlim(-1.0, 1.0)
14 plt.xticks(np.linspace(-1.0, 1.0, 5))
15 plt.ylim(-3, 3)
16 plt.plot(x, hat_y, color=red)
17 plt.scatter(X[:,0], y[:,0], color=black)
18 plt.xlabel($x_1$)
19 plt.ylabel($y$)
20 plt.title($Linear Regression$)
21 plt.show()

 技术图片

 

线性回归

标签:公式   hub   otl   math   log   ima   wan   pos   lis   

原文地址:https://www.cnblogs.com/andrew-address/p/13057512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!