初始化数据集 这里通过服从高斯分布的随机函数来伪造数据集 :param mu0: 高斯0的均值 :param sigma0: 高斯0的方差 :param mu1: 高斯1的均值 :param sigma1: 高斯1的方差 :param alpha0: 高斯0的系数 :param alpha1: 高斯1的系数 :return: 混合了两个高斯分布的数据
(mu0, sigma0, mu1, sigma1, alpha0, alpha1)
| 24 | import time |
| 25 | |
| 26 | def loadData(mu0, sigma0, mu1, sigma1, alpha0, alpha1): |
| 27 | ''' |
| 28 | 初始化数据集 |
| 29 | 这里通过服从高斯分布的随机函数来伪造数据集 |
| 30 | :param mu0: 高斯0的均值 |
| 31 | :param sigma0: 高斯0的方差 |
| 32 | :param mu1: 高斯1的均值 |
| 33 | :param sigma1: 高斯1的方差 |
| 34 | :param alpha0: 高斯0的系数 |
| 35 | :param alpha1: 高斯1的系数 |
| 36 | :return: 混合了两个高斯分布的数据 |
| 37 | ''' |
| 38 | #定义数据集长度为1000 |
| 39 | length = 1000 |
| 40 | |
| 41 | #初始化第一个高斯分布,生成数据,数据长度为length * alpha系数,以此来 |
| 42 | #满足alpha的作用 |
| 43 | data0 = np.random.normal(mu0, sigma0, int(length * alpha0)) |
| 44 | #第二个高斯分布的数据 |
| 45 | data1 = np.random.normal(mu1, sigma1, int(length * alpha1)) |
| 46 | |
| 47 | #初始化总数据集 |
| 48 | #两个高斯分布的数据混合后会放在该数据集中返回 |
| 49 | dataSet = [] |
| 50 | #将第一个数据集的内容添加进去 |
| 51 | dataSet.extend(data0) |
| 52 | #添加第二个数据集的数据 |
| 53 | dataSet.extend(data1) |
| 54 | #对总的数据集进行打乱(其实不打乱也没事,只不过打乱一下直观上让人感觉已经混合了 |
| 55 | # 读者可以将下面这句话屏蔽以后看看效果是否有差别) |
| 56 | random.shuffle(dataSet) |
| 57 | |
| 58 | #返回伪造好的数据集 |
| 59 | return dataSet |
| 60 | |
| 61 | def calcGauss(dataSetArr, mu, sigmod): |
| 62 | ''' |