“双月”数据集的生成

问题描述:

最近在看《神经网络与机器学习》一书,里面的实验都是使用的“双月”数据集,如图所示:

但是书中并没有给出这个数据集的来源或者生成方式,所以我自己根据图中的描述信息,利用python来生成数据集,考虑到问题的灵活性,所以并没有把数据集存储下来,而是需要用的时候再生成。

实现思路:

基本假设:

  1. 区域A固定不动
  2. 区域B的圆心可以随着d的不同以及r的不同而调整
  3. 区域A和区域B的半径相同
  4. 半径r表示圆心到圆环中部的位置

半圆的生成:(参数方程表示)

  1. 半径:(均匀分布)
  2. 角度:区域A ,区域B  (角度都是均匀分布)

代码实现:

import numpy as np
import matplotlib.pyplot as pltdef generate_data(n, r=10, w=6, d=1):theta1 = np.random.uniform(0, np.pi, size=n)theta2 = np.random.uniform(-np.pi, 0, size=n)w1 = np.random.uniform(-w/2, w/2, size=n)w2 = np.random.uniform(-w/2, w/2, size=n)one = np.ones_like(theta1)# data_A_i = [1, coord_x, coord_y, label], label = 1 or -1data_A = np.array([one, (r+w1)*np.cos(theta1), (r+w1)*np.sin(theta1), one]).Tdata_B = np.array([one, r + (r+w2)*np.cos(theta2), -d + (r+w2)*np.sin(theta2), -one]).Treturn data_A, data_Bclass Data:def __init__(self, n, r=10, w=6, d=1):self.n = n          # 数据对数,A、B区域各有n个点self.r = r          # 半径self.w = w          # 圆环的宽度self.d = d          # 区域B的向下偏移量self.data_A = []    # 区域A的数据集self.data_B = []    # 区域B的数据集self.data_AB = []   # 混合区域A和区域B的数据集def get_data(self):self.data_A, self.data_B = generate_data(self.n, self.r, self.w, self.d)all_data = np.vstack([self.data_A,self.data_B])np.random.shuffle(all_data)self.data_AB = all_datadef plot(self):fig = plt.figure()plt.scatter(self.data_A[:, 1], self.data_A[:, 2], marker='x')plt.scatter(self.data_B[:, 1], self.data_B[:, 2], marker='+')plt.show()if __name__ == "__main__":# data_A, data_B = generate_data(1000)# print(data_A)# print(data_B)# fig = plt.figure()# plt.scatter(data_A[:,1], data_A[:, 2], marker='x')# plt.scatter(data_B[:,1], data_B[:, 2], marker='+')# plt.show()data_set = Data(1000)data_set.get_data()print(data_set.data_AB)data_set.plot()

示例:

n = 1000,r = 10,w = 6,d = 1.

注:

  1. 当时生成数据是为了模式分类实验去的,所以生成的数据带有偏置项,同时带有标签项(区域A为+1,区域B为-1),如果有需要可以自行处理。
  2. 目前编程菜鸟一只,不会面向对象编程却硬要写,大佬勿喷!如有疑问,敬请评论!

“双月”数据集的生成相关推荐

  1. 基于双月数据集单层感知机_python

    前言 一.单层感知机 二.双月数据集 三.程序 1.引入库 2.主函数 总结 完整程序 前言 本文主要针对双月数据集实现二分类问题. 一.单层感知机 单层感知机目标是将被感知数据集划分为两类的分离超平 ...

  2. ​NVIDIA针对数据不充分数据集进行生成改进,大幅提高CIFAR-10数据生成

    ©PaperWeekly 原创 · 作者|武广 学校|合肥工业大学硕士生 研究方向|图像生成 生成对抗网络因其优异的生成质量而得到广泛的关注,然而想要得到高质量的生成结果往往需要大批量的训练数据进行加 ...

  3. 使用 matlab 数据集的生成(generate datasets)

    一般手工生成的数据集(artificial datasets),通常用于实验部分最开始的演示和示意,用于对结果的一种精确计算和量化分析. 1. Swiss/Helix/Twinpeaks/Broken ...

  4. 图像生成 - 使用BigGAN在Imagenet数据集上生成高质量图像。

    图像生成是计算机视觉领域中的重要问题,其目的是生成具有高质量和真实感的图像.最近,Google提出的BigGAN方法在图像生成任务上取得了巨大的成功,可以生成高分辨率和高质量的图像.在本文中,我们将介 ...

  5. supermap新建数据源_supermap iDesktop 处理数据集及生成场景缓存

    使用 supermap 可以实现网页对三维场景数据的渲染,但是我们拿到数据时,一般不能直接应用,需要对数据进行数据源处理.三维模型数据转二维面数据.BIM 简化.移除重复点.生成场景缓存等操作,对数据 ...

  6. 瑞士卷(Swiss Roll)数据集的生成

    瑞士卷(Swiss Roll)数据集的生成 很多科研的同学,在看一些降维算法时,经常会碰到作者用三维的瑞士卷数据集来测试算法降维后的效果,那么该数据集是如何生成的呢,如何将三维图以x,y为正面视角展示 ...

  7. 目标检测Faster RCNN 批量标记数据集,生成xml,csv以及record文件

    目标检测Faster RCNN 批量标记数据集,生成xml,csv以及record文件 0.将png图片转换为jpg import os from PIL import Image# dirname_ ...

  8. [深度学习-实践]GAN入门例子-利用Tensorflow Keras与数据集CIFAR10生成新图片

    系列文章目录 深度学习GAN(一)之简单介绍 深度学习GAN(二)之基于CIFAR10数据集的例子; 深度学习GAN(三)之基于手写体Mnist数据集的例子; 深度学习GAN(四)之PIX2PIX G ...

  9. 基于双月数据集利用感知层进行分类

    1.生成数据集 class moon_data_class(object):def __init__(self,N,d,r,w):self.N=Nself.w=wself.d=dself.r=rdef ...

最新文章

  1. 二手宏碁上网本装linux,Acer国内20日首发“上网本” 放弃Linux使用XP
  2. P5725 【深基4.习8】求三角形(python3实现)
  3. 热门话题“30岁还没结婚你会考虑将就么?”数据告诉你,网友们都如何做出抉择...
  4. (转)解决Google Adsense广告只显示英文的问题
  5. javaScript技巧表:单提交验证类[转载]
  6. tsp的理论和实践(10)tsp系列暂停一下
  7. 怎么使用PDF编辑器在PDF中插入图片?PDF插入图片的教程
  8. 【历史上的今天】1 月 14 日:IBM 计算机先驱诞生;Windows 7 寿终正寝;诺基亚收购阿尔卡特
  9. 乐高spike python_乐高教育EV3比SPIKE Prime更好的十个理由!
  10. 常用正则用法汇总 (转载)
  11. dolphinscheduler 2.0.3 Docker部署 不支持mysql的解决办法
  12. 模板元编程(TMP)
  13. 敏捷实践 | 如何正确使用故事点预估工作量?
  14. Hbase------regionServer
  15. 《剑指Offer》之“平衡二叉树”
  16. 带有数字钥匙的智能电动车已商用
  17. 服务器并发处理是什么?
  18. 项目管理中,如何对各种文件进行统一版本管理?
  19. 技巧分享:我的VM黑群晖安装及独特网络访问方案
  20. CH-90Na螯合树脂技术在废水除镍、除总铬、除重上的应用

热门文章

  1. 华为日志服务器文档,华为日志服务器配置
  2. 大厂面试:一个四年多经验程序员的BAT面经(字节、阿里、腾讯)
  3. adc量化单位_高速ADC的关键指标:量化误差、offset/gain error、DNL、INL、ENO...
  4. 自己实现SDIO wifi Marvell8801/Marvell88w8801驱动 介绍(一) ---- 芯片介绍
  5. 大厂是如何用DevCloud流水线实现自动化部署Web应用的?
  6. 【计算机系统】LC-3中断试验
  7. 解析域名,获得公网地址
  8. 离散数学复习:二元关系
  9. Android Fragment 真正的完全解析
  10. facebook女程序员_Facebook的新“ Messenger Kids”应用程序对我的孩子安全吗?