实验一:生成正态分布的数据作为线性回归图像的噪声

2018/09/29

这部分的代码在
/root/OldFile/sklearn/linear_regression下,名字为lr_normal_noise.py。

我感觉这里的一个困难是我对这个库的API不够熟悉导致的。另一方面,也是对原来的那些个分布不理解导致的。
想生成的图是这个样子的。

正态分布的图

结果弄成的图是这样的,
程序的图

不知道是我API调错了,还是说哪里弄错了。(这里是对正态分布的形式弄错了,可以从实验三中看出
代码是这样的。

1 #! /usr/bin/python                                                                                            
  2 #coding:utf-8
  3 #2018/09/29
  4 #Author:VChao
  5 
  6 import os
  7 import matplotlib
  8 matplotlib.use('Agg')
  9 import matplotlib.pyplot as plt
 10 import numpy as np
 11 from scipy import stats
 12 
 13 
 14 
 15 def PlotMy(data):
 16     Filename = 'Myfig.png'
 17     plt.plot(data[:,0],data[:,1],'ro')
 18     plt.plot(data[:,1],data[:,0],'bo')
 19     plt.savefig(Filename)
 20 
 21 def main():
 22     x = np.arange(-3,3,0.2)
 23     y = x * 3 + 2 +  np.randmo.rand * stats.norm.pdf(x,0,1) 
 24     plt.scatter(x,y)
 25     plt.savefig("test.png")
 26 
 27 
 28     os.system("sz test.png")
 29 
 31 
 32 if __name__ == "__main__":
 33     main()

我本意是想生成,正态分布的,均值为0的数据,然后作为噪声来进行拟合。
我感觉这里是用的这个API错了,这个API是生成概率密度函数的,所以导致最后的结果就是不对了。
从整体上来看,最后如果是我弄的话,最后生成的这个散点图,还是一个正态分布的函数,最后的数据还是不对的,也就是说,还是不对的。


看了另外的一个博客,https://blog.csdn.net/qq_25420115/article/details/52822584?locationNum=16&fps=1
这个我不知道是不是对的,就是他的这个噪声真的是正态分布吗??不明白。

增加高斯噪声

代码如下:

23 def main():
 24     x = np.arange(-3,3,0.1)
 25     y = x * 3 + 2
 26     for i in range(x.size):
 27         y[i] =    random.gauss(0,12)
 28     plt.scatter(x,y)
 29     plt.savefig("test.png")

这里我觉得有点不对的地方,就是他增加高斯噪声的过程,因为这样弄得就是这个高斯噪声是完全不想关的。
就比如说,你看这个地方,你怎么说你这个东西的均值就是0呢。


看了这个东西:https://blog.csdn.net/ikerpeng/article/details/20703851
最后还是利用了np的库,就是

23 def main():
 24     x = np.arange(-3,3,0.06)
 25     y = x * 3 + 2
 26     y += np.random.normal(0,2,100)
 27     plt.scatter(x,y)
 28     plt.savefig("test.png")
 29 
 30 
 31     os.system("sz test.png")

效果图是这样的,


期望的样本图

我感觉还是什么地方没有弄好,就是没有真正搞清楚自己是怎么弄得。
就是,概率密度函数和真正的分布还是有差别的。因为我想要的就是随机的几个值。
不对不对,还是需要梳理一下。

下面这个图是我画出来的一个纯粹是正态分布的图,1000个点,就是纯粹的这个模拟函数生成的数。

正态分布

从这里可以看出来,就是说,他并不是我想象中的那样,真的成一个正态分布的曲线。
由此我也想起来了,当时说的那个大数定律。
也就是说,概率性的东西,和我真实的这个理解还是有偏差的。
(这个后续在分析)
那为什么,前面的那个,按照每一个坐标点加上的正态数不对,我猜可能是因为他们不是同一个分布产生的,毕竟调用了这么多次的随机函数。


其实这个就是一个鸿沟,就是概率密度函数,和真实的数据分布这一块,这之间的关系,怎么用概率论的理论来解释。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值