生成父母平均身高和孩子身高的测试数据 作者:马育民 • 2019-08-04 11:01 • 阅读:10660 ### 需要了解 1. 高尔顿的父母与孩子身高规律参见下文: [高尔顿与回归分析的起源](https://www.malaoshi.top/show_1EF3kBEIOzFX.html "高尔顿与回归分析的起源") 2. numpy正态分布随机数组 https://www.malaoshi.top/show_1EF3oY0pMDWs.html # 目的 高尔顿收集1000多例父母和孩子的身高,并总结出父母平均身高与孩子身高的规律:```Y= 0.8567+0.516*X```(y是孩子身高,x是父母身高) 我们知道此规律后,模拟出1000例数据: 1. 首先生成父母平均身高:1.65米-1.85米的1000条记录 2. 我们根据父母和孩子的身高规律:```Y= 0.8567+0.516*X```,生成孩子的身高 **注意:** 真实生活中,孩子不可能是这个身高,会有上下浮动 3. 以第二步的孩子身高为基础,生成正态分布的随机身高 # 代码实现 ``` import numpy as np # 记录的总数 count=1000 # 父母平均身高 parent_height=np.linspace(1.65,1.85,count) # 根据高尔顿的规律,生成孩子的身高 y= 0.8567+0.516*parent_height # 以上面孩子的身高为基础,生成正态分布的随机身高 son_height=np.random.normal(loc=y, scale=0.03, size=count) # print(son_height) ``` 画成图 ``` import matplotlib.pyplot as plt # 画成图像,便于理解 plt.plot(parent_height) plt.scatter(parent_height,son_height) plt.show() ``` 执行后,生成图像如下图: [![](https://www.malaoshi.top/upload/pic/python/20200826180557.png)](https://www.malaoshi.top/upload/pic/python/20200826180557.png) x轴是数量,y轴是父母身高 --- [![](https://www.malaoshi.top/upload/pic/python/20200826180619.png)](https://www.malaoshi.top/upload/pic/python/20200826180619.png) x轴是父母身高,y轴是孩子身高 原文出处:http://malaoshi.top/show_1EF3opdAFDCf.html