线性回归

线性回归的基本思想在于,输入x与y,通过一个k让y = kx+b,而输入的x可能不止一个数值,可能有许多个数值x1,x2,x3等,故而使用x_vector来表示输入的x值,而相对于的k则为k_vector,通过矩阵乘法,将其变成一个数值。

线性回归的核心在于,通过多组数据的输入获得K值,所使用的方法有两个一个是最小二乘法,一个是梯度下降法:

TX 最小二乘法


梯度下降法(求导)求极值:



最小二乘法代码实现:

"""

if __name__ =='__main__':

X = np.random.normal(5, 1, size=20)

Y = [2 * x +2 * np.random.rand()for xin X]

fig = plt.figure()

ax = fig.add_subplot(111)

ax.set_xlabel('x')

ax.set_ylabel('y')

ax.scatter(X, Y, c='blue', marker='o', s=30)

# plt.show()

    len =len(X)

X = np.mat(np.vstack((X,np.ones(len)))).T

Y = np.mat(Y).T

res = (X.T*X).I* X.T * Y

print(res.shape)

b =float(res[1][0])

w =float(res[0][0])

plt.plot([2, 8], [w *2 + b, w *8 + b])

plt.show()

"""

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容