请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于求a,b值的问题

为什么老师视频中a求出来值和我的不一样后面有极小的偏差,b却是一样的,然后后面导致了y_predict也跟着出现了偏差。应该都是浮点数,还是操作系统的问题吗:)

正在回答

1回答

你这样描述我不能很确定是不是操作系统的问题。浮点数的精度是很复杂的一个问题,整体,到了某个误差精度,我们都应该假设浮点数的结果是错误的(通常单精度取 6 位,双精度取 15 位)。


但是到了精度无法覆盖的地方,这个错误的结果会是多少?因为错误的结果进行累计,最终产生的累积误差会是多少,和(自顶向下)编译器(或者解析器的实现),操作系统,机器的芯片实现,都可能有关。但是仅仅从浮点数的表示(包括位数)老说,我没有听说过有操作系统的差异。(这一点和整型的 long 不同,可以参考这个回答:https://coding.imooc.com/learn/questiondetail/jlqGx6zEn4GXe1Dk.html  )


但是因为上述描述的诸多原因,如果你的结果和我视频中的结果有差异,也是完全有可能的。(甚至 Python 版本的不同或者 sklearn 版本的不同,都可能导致这样的差异。)但还存在其他可能。你可以尝试一下在你的环境下运行课程的官方代码,看是否也存在这个差异?如果也存在这个差异,就是“系统问题”了。但是这个问题的核心不一定在 OS 上。


本课程的官方代码传送门:https://git.imooc.com/coding-169/coding-169


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕沐9165406 #1
    就是我的a值是0.8,和视频里面差值很小,视频里面是0.8然后拖尾很长一串0跟了个4的这种,然后导致我的notebook直接算出来是刚好5.2而不是视频里面的很长的小数,在pycharm里面封装好后预测出来就和视频里面还有我自己notebook计算的是一样的结果刚好5.2了。因为我知道在python里面运算会有浮点误差,精度是通过扩充位数来提高的,还有就是整型的long那个问题也是我问的,这里遇到这个问题所以想问问是不是系统导致的精度的问题:)
    回复 有任何疑惑可以回复我~ 2022-02-05 17:26:24
  • liuyubobobo 回复 提问者 慕沐9165406 #2
    你的 a 值显示 0.8 很有可能只是显示的结果而已。你使用 %.16f 打印出来试试看?
    回复 有任何疑惑可以回复我~ 2022-02-05 17:55:44
  • 提问者 慕沐9165406 回复 liuyubobobo #3
    这样打印出来就对了,所以为什么我的b值没有变化呢0.0如果是notebook版本问题导致的把我a的值和最终预测值的位数给输出成2位小数了,那b的值为啥还是正常的呢,是因为b的倒数第二位小数就不是9的问题吗?b=0.39999999999999947
    回复 有任何疑惑可以回复我~ 2022-02-05 18:29:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信