Python 生成数据 make_circles 和 make_moons

题目:

     生成数据 make_circles 和 make_moons,并显示 X = 400x2, Y = {0, 1}400 ,画图

知识要点:

     ① make_circles:

  函数 :  X_circle,Y_circle=make_circles(n_samples=400,noise=0.1,factor=0.1)
  参数 :n_samples:设置样本数量、noise:设置噪声,小的话比较集中、factor:0 < double <                  1 默认值0.8,内外圆之间的比例因子、random_state:设置随机参数 (部分)
  作用 :生成数据集,形成一个二维的大圆,包含一个小圆

     ② make_moons:

  函数:X_moon,Y_moon=make_moons(n_samples=400,noise=0.1)
  参数:n_samples:设置样本数量、noise:设置噪声(部分)
  作用:生成数据集,形成两个弯月。
  返回值:
    X:[n_samples, 2]形状的数组,生成的样本
    Y:[n_samples]形状的数组,每个样本的标签(0或1)

问题及解决:

       ①: 两张图不能同时显现(关闭一张后另一张显现)。

              a.使用plt.figure()新建窗口,并在最后使用plt.show()显示。

              b.使用plt.subpolt()划分出子图。

       ②:散点图使用圆圈标记,重叠部分太多,圆圈边界不明显。

              答: 在plt.scatter()函数中加入参数edgecolors=‘color’(color为某种颜色)

              同时可以使用不同的颜色搭配进行装饰。

       ③:noise和factor的参数可以进行多次调整,运行得到不同的图形。

               随着noise增大各点的分布更加散乱,两种不同标签的点逐渐交叉。随着factor增大,内                   圆逐渐接近外圆。

       ④:对于X_circle[:,0],X_circle[:,1] 的理解

               答:因为X的返回值是[n_samples, 2]形状的数组,所以分别以第一列和第二列的数字作                 为x,y坐标的值,两两对应形成坐标。


代码实现(Python):

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import make_circles
from sklearn.datasets import make_moons

#生成数据 make_circles 和 make_moons,并显示 X = 400x2, Y = {0, 1}400 ,画图:
#返回值x:[n_samples, 2]形状的数组,生成的样本
#     y:[n_samples]形状的数组,每个样本的标签(0或1)
def draw_circle_and_moon():
    X_circle,Y_circle=make_circles(n_samples=400,noise=0.1,factor=0.1)
    plt.figure("circle")
    plt.scatter(X_circle[:,0],X_circle[:,1],s=100,marker="o",edgecolors='r',c=Y_circle)
    #c=Y_circle划分两种标签数据的颜色
    plt.title('data by make_circles()')

    X_moon,Y_moon=make_moons(n_samples=400,noise=0.1)
    plt.figure("moon")
    plt.scatter(X_moon[:,0],X_moon[:,1],s=100,marker="o",edgecolors='m',c=Y_moon)
    plt.title('data by make_moons()')

    plt.show()

draw_circle_and_moon()

结果展示:

  

参考资料:

https://blog.csdn.net/xuxinrk/article/details/80212221  scatter函数的用法

https://blog.csdn.net/qq_42804678/article/details/96498594  make_circles和make_moons

https://jingyan.baidu.com/article/b2c186c81e8fa6c46ff6ff5b.html  make_circles 百度经验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值