双月数据生成及其常见算法(一)

双月数据部分:

数据描述:上下两个半圆。可以通过调整参数进行半圆弧位置的变化。

定义基础参数:包括两个圆之间的半径以及上下两个圆之间的位置偏差XPosition、YPosition。

NumbleCount为生成的一个半圆的数据点个数。

PI = 3.141
CicleW = 2
CicleR = 5

XPosition = 5
YPosition = 4

NumbleCount = 1000

 生成数据部分:作者使用了,极坐标的方式来生成随机的散点图,通过约束方程来对生成的散点图进行约束。通过对符合要求的数据点来进行计数,生成对应数据。

并且上半部分数据添加标签1,下半部分添加标签-1。

#定义约束方程
UpArea = 2*PI*(CicleW+CicleR)
DownArea = 2*PI*(CicleR)

count = 0
ClassX1 = []
ClassY1 = []
DataLabel = []
while(count < 2*NumbleCount):
    Delter = random.uniform(0,PI) * (360/(2*PI))
    DelterP = random.uniform(CicleR,CicleR+CicleW)
    #DelterP*(math.sin(Delter)+math.cos(Delter))
    if DelterP*math.sin(Delter) > 0 :
        ClassX1.append(DelterP*math.cos(Delter))
        ClassY1.append(DelterP*math.sin(Delter))
        DataLabel.append(1)
        count = count + 1

    Delter = random.uniform(0, -PI) * (360 / (2 * PI))
    if DelterP * math.sin(Delter) < 0:
        ClassX1.append(DelterP * math.cos(Delter)+XPosition)
        ClassY1.append(DelterP * math.sin(Delter)-YPosition)
        DataLabel.append(-1)
        count = count + 1

print("数据生成完成\n数据生成总量为:{}".format(len(ClassX1)))
plot.title('Creat Data')
plot.plot(ClassX1, ClassY1, 'r+')

 

之后数据的保存,通过csv或者mat类型的格式保存到文件中,便于后续算法的使用。

结果:

线型可分类型:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTMzOTY1ODY=,size_18,color_FFFFFF,t_70,g_se,x_16

 线型不可分类型:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcXFfNTMzOTY1ODY=,size_16,color_FFFFFF,t_70,g_se,x_16

 

 

 

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

防空洞的仓鼠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值