下面展示利用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:\windows\fonts\msyh.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()

得解。

最新文章

  1. Java实现MySQL数据库备份(二)
  2. OC中面向对象2
  3. C语言之函数可变参数
  4. openssl实践总结
  5. 堡垒机 paramiko 自动登陆代码
  6. HNOI2008 GT 考试
  7. Python调试工具-Spyder
  8. IOS 表视图(UITableVIew)的使用方法(3)名单的索引显示
  9. Codeforces 461B - Appleman and Tree 树状DP
  10. USACO 2017 February Gold
  11. C++ 屏幕录制
  12. Scala面向对象编程与类型系统
  13. Here We Go(relians) Again HDU2722
  14. 查看CPU/CACHE的拓扑结构
  15. 解决eclipse在线安装不了genymotion
  16. 【读书笔记】iOS-iOS定位
  17. 慕课学习--OSI与TCP/IP网络协议
  18. JS获取周、月、季度日期
  19. java String类 trim() 方法源码分析
  20. vector类型介绍

热门文章

  1. iOS unity 互相调用加载高德地图时
  2. c博客作业--分支、顺序结构
  3. Django—模板
  4. js 实现控制点击事件在特定的毫秒内 只允许点击一次(防止重复点击)
  5. Charles SSL
  6. Java新手问题集锦
  7. webpack4与babel配合使es6代码可运行于低版本浏览器
  8. 西风 West Wind Html帮助构建器
  9. Electron 项目在 Mac 下复制和粘贴快捷键失效的解决办法
  10. vue中 v-show和v-if的区别?