采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
为什么老师视频中a求出来值和我的不一样后面有极小的偏差,b却是一样的,然后后面导致了y_predict也跟着出现了偏差。应该都是浮点数,还是操作系统的问题吗:)
你这样描述我不能很确定是不是操作系统的问题。浮点数的精度是很复杂的一个问题,整体,到了某个误差精度,我们都应该假设浮点数的结果是错误的(通常单精度取 6 位,双精度取 15 位)。
但是到了精度无法覆盖的地方,这个错误的结果会是多少?因为错误的结果进行累计,最终产生的累积误差会是多少,和(自顶向下)编译器(或者解析器的实现),操作系统,机器的芯片实现,都可能有关。但是仅仅从浮点数的表示(包括位数)老说,我没有听说过有操作系统的差异。(这一点和整型的 long 不同,可以参考这个回答:https://coding.imooc.com/learn/questiondetail/jlqGx6zEn4GXe1Dk.html )
但是因为上述描述的诸多原因,如果你的结果和我视频中的结果有差异,也是完全有可能的。(甚至 Python 版本的不同或者 sklearn 版本的不同,都可能导致这样的差异。)但还存在其他可能。你可以尝试一下在你的环境下运行课程的官方代码,看是否也存在这个差异?如果也存在这个差异,就是“系统问题”了。但是这个问题的核心不一定在 OS 上。
本课程的官方代码传送门:https://git.imooc.com/coding-169/coding-169
继续加油!:)
就是我的a值是0.8,和视频里面差值很小,视频里面是0.8然后拖尾很长一串0跟了个4的这种,然后导致我的notebook直接算出来是刚好5.2而不是视频里面的很长的小数,在pycharm里面封装好后预测出来就和视频里面还有我自己notebook计算的是一样的结果刚好5.2了。因为我知道在python里面运算会有浮点误差,精度是通过扩充位数来提高的,还有就是整型的long那个问题也是我问的,这里遇到这个问题所以想问问是不是系统导致的精度的问题:)
你的 a 值显示 0.8 很有可能只是显示的结果而已。你使用 %.16f 打印出来试试看?
这样打印出来就对了,所以为什么我的b值没有变化呢0.0如果是notebook版本问题导致的把我a的值和最终预测值的位数给输出成2位小数了,那b的值为啥还是正常的呢,是因为b的倒数第二位小数就不是9的问题吗?b=0.39999999999999947
登录后可查看更多问答,登录/注册
Python3+sklearn,兼顾原理、算法底层实现和框架使用。
2.5k 19
3.5k 17
2.9k 15
1.6k 15
1.4k 14