资源经验分享Python实现基于最小二乘法的线性回归

Python实现基于最小二乘法的线性回归

2019-12-17 | |  83 |   0

原标题:Python实现基于最小二乘法的线性回归

原文来自:博客园      原文链接:https://www.cnblogs.com/geeksongs/p/10602630.html


下面展示利用Python实现基于最小二乘法的线性回归模型,同时不需要引入其他科学计算以及机器学习的库。

利用Python代码表示如下:

 

#首先引入数据集x,和y的值的大小利用Python的数据结构:列表,来实现。

 

y=[4,8,13,35,34,67,78,89,100,101]

 

x=[0,1,2,3,4,5,6,7,8,9]

 

#然后再引入Python当中的绘图库,用于检测我们利用线性回归得到的结果是否正确

 

from matplotlib.font_manager import FontProperties

 

font = FontProperties(fname=r"c:windowsfontsmsyh.ttc", size=15)

 

import matplotlib.pyplot as plt

 

k = 0

 

for i in range(10):

 

    j = k

 

    k = j+i**2

 

    print(k)

 

    print(i)#实现计算x的平方

 

a11 = k

 

k=0

 

print("n")#换行,使我们的结果更加清晰

 

for i in range(10):

 

    #实现计算X的求和

 

    j = k

 

    k = j+i

 

    print(k)

 

a12 = k

 

#下面开始计算y*x的求和

 

k=0

 

for i in range(10):

 

    j = k

 

    k = j+y[i]*i

 

    print("我们k的大小是{}".format(k))

 

yixi = k

 

b1 = yixi

 

#现在再来计算我们yi求和后的大小

 

 

 

k=0

 

for i in range(10):

 

   j = k

 

   k = j+y[i]

 

   print(k)

 

yi = k

 

b2 = yi

 

#计算完毕,现在根据求出偏导数后的值计算我们斜率和截距的大小

 

#根据题意可得到:

 

a22 = 10

 

a21 = a12

 

#因此根据线性代数的克拉默法则,我们可以将其写成一个二阶行列式的形式:

 

print("现在开始打印行列式的各个值:")

 

print(a11)

 

print(a12)

 

print(a21)

 

print(a22)#检查无误后开始用克拉默法则进行计算

 

 

 

k = (b1*a22-a12*b2)/(a11*a22-a12*a21)

 

b = (a11*b2-a21*b1)/(a11*a22-a12*a21)

 

print("n")

 

print("K的大小是:{}".format(k))

 

print("b的大小是:{}".format(b))

 

plt.scatter(x,y)

 

plt.title("利用最小二乘法实现线性单元回归n制作人:Geeksongs",fontproperties=font)

 

plt.plot([0,12],[(a11*b2-a21*b1)/(a11*a22-a12*a21),((b1*a22-a12*b2)/(a11*a22-a12*a21))*12+b],linewidth=3,color="black")

 

plt.show()

 

得解。 

 

免责声明:本文来自互联网新闻客户端自媒体,不代表本网的观点和立场。

合作及投稿邮箱:E-mail:editor@tusaishared.com

上一篇:利用线性回归模型判断文章类别

下一篇:深度学习之目标检测:非极大值抑制源码解析(nms)

用户评价
全部评价

热门资源

  • Python 爬虫(二)...

    所谓爬虫就是模拟客户端发送网络请求,获取网络响...

  • TensorFlow从1到2...

    原文第四篇中,我们介绍了官方的入门案例MNIST,功...

  • TensorFlow从1到2...

    “回归”这个词,既是Regression算法的名称,也代表...

  • 机器学习中的熵、...

    熵 (entropy) 这一词最初来源于热力学。1948年,克...

  • TensorFlow2.0(10...

    前面的博客中我们说过,在加载数据和预处理数据时...