生成如图所示的环形数据集,这里外矩形的X跟Y的范围为(0.5,2.5),内矩形X跟Y的范围为(0.7,2.3)。

原理:依次迭代生成先生成均匀分布的在大矩形内的数据点,在判断生成的每个数据点是否落在介于大矩形跟小矩形中即环中,若落在环中,则保留这个点。 若生成的点的数量到预期值,则停止迭代。

若直接生成介于环中的数据,则环中的数据点会不均匀,因为四角会重复生成。

加入噪声与生成数据类似,只是判断若生成的噪声不在环形中,则此数据为噪声数据。

def get_data(num_point,num_noise,seed):

"""

生成环形数据与噪声

@param num_point: 正常数据点的个数

@param num_noise: 噪声的个数

@param seed: 随机数种子。若seed值设置的一样,则每次随机生成的数据点都一样

@return: 环形数据,噪声

"""

np.random.seed(seed)

# 设置生成环形的坐标数据,即大矩形跟小矩形坐标

X_small = (0.7, 2.3)

Y_small = (0.7, 2.3)

X_large = (0.5, 2.5)

Y_large = (0.5, 2.5)

point = []

# 若生成的点的数量没有到达预期目标将不停迭代

while len(point)!=num_point:

#生成介于大矩形的均匀分布的数据点

X_point = X_large[0] + (X_large[1]-X_large[0]) * np.random.rand()

Y_point = Y_large[0] + (Y_large[1]-Y_large[0]) * np.random.rand()

#判断此点是否符合要求

if (X_large[0]

or Y_large[0]

point.append((X_point, Y_point))

point = np.array(point)

#生成噪声

noise_Xcor = (0,3)

noise_Ycor = (0,3)

noise = []

while len(noise) != num_noise:

X_noise = noise_Xcor[0]+(noise_Xcor[1]-noise_Xcor[0]) * np.random.rand()

Y_noise = noise_Ycor[0]+(noise_Ycor[1]-noise_Ycor[0]) * np.random.rand()

if not (X_large[0]

or Y_large[0]

noise.append((X_noise, Y_noise))

return np.array(point),np.array(noise)

绘制最终图形

def draw(data_point, data_noise):

'''

绘制图像

@param data_point: 环形数据

@param data_noise: 噪声

@return:

'''

fig = plt.figure()

ax = fig.add_subplot(111)

plt.scatter(data_point[:, 0], data_point[:, 1], c='r', marker='.')

plt.scatter(data_noise[:, 0], data_noise[:, 1], c='b', marker='.')

plt.show()

python创建数据集_python 生成环形人工数据集相关推荐

  1. python创建窗体_python生成窗口

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 2.python生成目录树上述 cmd 方式虽然可以生成目录树,但是并不美观,让 ...

  2. python训练数据集_python – 如何训练大型数据集进行分类

    我有一个1600000推文的训练数据集.我该如何训练这类巨大的数据. 我尝试过使用nltk.NaiveBayesClassifier.如果我跑步,训练需要5天以上. def extract_featu ...

  3. 大乐透python预测程序_Python生成随机验证码,大乐透号码

    随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__': check_code = "" # ...

  4. python创建列表_python创建与遍历List二维列表的方法

    python 创建List二维列表 lists = [[] for i in range(3)] # 创建的是多行三列的二维列表 for i in range(3): lists[0].append( ...

  5. python 创建子类_python创建子类的方法分析

    本文实例讲述了python创建子类的方法.分享给大家供大家参考,具体如下: 如果你的类没有从任何祖先类派生,可以使用object作为父类的名字.经典类的声明唯一不同之处在于其没有从祖先类派生---此时 ...

  6. python创建追加_Python文件的创建与追加

    (转载)https://www.xshell.net/python/python_open.html Posted by 破冰 on 2013-9-17 17:29 Tuesday 一.用Python ...

  7. python创建矩阵_Python创建对称矩阵的方法示例【基于numpy模块】

    本文实例讲述了Python创建对称矩阵的方法.分享给大家供大家参考,具体如下: 对称(实对称)矩阵也即: step 1:创建一个方阵 >>> import numpy as np & ...

  8. 如何用python创建文件_python在指定目录创建文件

    Python无法创建文件夹,如何制定创建目录?温柔也好,凶狠也罢.想有一个陌生的自己,给自己一些惊喜. /主目录/桌面/gnssIR_python-master:/usr/local/bin:/usr ...

  9. python创建变量_python创建变量

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 创建: 当python变量'赋值'时,根据值类型创建变量,如:a=1引用: 当参 ...

  10. python生成10000个样本数据集_python – 为什么随机抽样比例数据集不是样本量? (pandas .sample()示例)...

    当从不同大小的分布中随机抽样时,我惊讶地发现执行时间似乎主要是根据从中采样的数据集的大小而不是被采样的值的数量来缩放.例: import pandas as pd import numpy as np ...

最新文章

  1. 网上有打印按键怎么设置下载_打印机共享怎么设置 如何设置打印机共享【详细攻略】...
  2. tp5 sum某个字段相加得到总数
  3. redis5种数据结构讲解及使用场景
  4. 828c语言程序设计_21计算机考研只考一门高级语言程序设计的院校大汇总!
  5. WIN10下ADB工具包安装的教程和总结 --201809
  6. Spring Boot 2.0与Java 9
  7. C#调用Java方法(详细实例)
  8. 图书封面的故事之——“巴别塔”选自《七周七语言:理解多种编程范型》
  9. linux用户和用户组及权限管理
  10. 今天给同学写5个数据结构算法的题...感觉很有价值的几个题..感兴趣的坐下。。...
  11. aspose.words .net 导出word表
  12. 遍历图像方法以及注意事项
  13. Pandas python
  14. 在知行EDI系统中实施SNIP验证
  15. reviewboard mysql_reviewboard安装实战
  16. 元素周期表排列的规律_元素周期表是根据什么排列的?
  17. Random + Scanner 场景试炼
  18. 全国女人都当妓女的古代神秘国(转载)
  19. Qt - QTChart绘制图表
  20. [HDF5] 封装了一个简单的C++ HDF5工具库,实现常用数据类型的读写

热门文章

  1. JAVA和JVM运行原理揭秘
  2. asp.net下载的方法1
  3. 给linux默认mysql设置root密码
  4. android 屏幕宽高
  5. java对象创建、对象内存布局、对象的访问定位、句柄池、直接指针
  6. java 开发必备的安全架构知识
  7. Spring的注入方式中,官方推荐哪种方式
  8. 关于结构体嵌套的字节大小的问题
  9. [easyui] - 在easyui的table中展示提示框
  10. 高并发架构系列:最全消息队列有哪些?详解消息队列的选型与应用