线性回归(python实现)
Posted 有点锋芒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线性回归(python实现)相关的知识,希望对你有一定的参考价值。
数据集:
[D=lbrace (x_1,y_1),(x_2,y_2),...,(x_m,y_m)
brace
]
其中:
[x_i = (x_{i1};x_{i2};...;x_{id})
]
单属性,二分类
分类面:
[f(x)= omega x + b
]
最小均方差求(omega , b)
[min sum_{i=1}^m (f(x_i)-y_i)^2
]
解得:
[omega = frac{sum_{i=1}^m y_i(x_i- hat x)}{sum_{i=1}^m x^2 - frac 1m sum_{i=1}^m(x_i)^2}
]
[b= frac 1m sum_{i=1}^m(y_i - omega x_i)
]
python程序
import numpy as np
import matplotlib.pyplot as plt
N = 50
X = np.random.rand(N)
Y = np.random.rand(N)
#print(X)
plt.scatter(X, Y, alpha=0.6)#散点图绘制
#求omiga
xg = 0.0 #x均值
xf = 0.0 #x平方
for i in X:
xg += i
xf += i**2
xg /= N
omiga_m = 0.0
for i in range(N):
omiga_m += Y[i]*(X[i] - xg)
omiga_d = xf - (N*xg)**2/N
omiga = omiga_m/omiga_d
#求偏移b
b_temp = 0.0
for i in range(N):
b_temp += Y[i] - omiga*X[i]
b = b_temp/N
x_linear = np.linspace(0, 1, num=50)
y_linear = [omiga*i + b for i in x_linear]
plt.plot(x_linear, y_linear, color = ‘red‘)
plt.show()
效果
以上是关于线性回归(python实现)的主要内容,如果未能解决你的问题,请参考以下文章
python实现normal equation进行一元多元线性回归
Liner Regression 线性回归及Python代码