使用python自动生成数据集(手动创建和内置函数生成两类)

方法1:手写数据集划分

(1)导包

#方法1:自己手写划分数据集
#第一步:导包
import numpy as np
from matplotlib import pyplot as plt
from sklearn.datasets import make_blobs

(2)生成自定义数据集

#第二步:生成自定义数据集
x,y=make_blobs(
    n_samples=300,#样本点为300个
    n_features=2,#设置为2维
    centers=3,#设置三类数据
    cluster_std=1,#类内标准差为1
    center_box=(-10,10),#表示取值的范围
    random_state=233,#随机数种子,输入相同的随机数种子就能够生成相同的数据
    return_centers=False#增加一个类别中心点坐标的返回值,这里暂时用不到 
)
#生成的x代表样本的特征值,y代表标签

(3)绘制散点图

#第三步:绘制散点图
plt.scatter(x[:,0],x[:,1],c=y,s=15)#x[:,0]代表的是每一个横坐标,x[:,1]代表的是每一个纵坐标,c代表标签值(区分颜色),s代表每一个点的大小
plt.show()

(4)划分数据集

#第四步:划分数据集
#4.1设置索引数组,并将其充分打乱顺序
index=np.arange(20)
np.random.shuffle(index)
#4.2获取第二步中设置的300个数据(用相同的随机数种子就可以做到)
np.random.seed(233)
data=np.random.permutation(len(x))
#4.3设置训练集的比例为0.7
train_size=0.7 
#把测试集和训练集的下标序号分别截取出来
train_index=data[:int(len(x)*train_size)]
test_index=data[int(len(x)*train_size):]
#从而获取训练集和测试集的xy集合
x_train=x[train_index]
y_train=y[train_index]
x_test=x[test_index]
y_test=y[test_index]

(5)使用散点图验证训练集和测试集

#第五步:使用散点图进行验证
#5.1训练集的散点图
plt.scatter(x_train[:,0],x_train[:,1],c=y_train,s=15)
plt.show()
#5.2测试集的散点图
plt.scatter(x_test[:,0],x_test[:,1],c=y_test,s=15)
plt.show()

(6)上述代码pycharm完整汇总

#方法1:自己手写划分数据集
#第一步:导包
import numpy as np
from matplotlib import pyplot as plt
from sklearn.datasets import make_blobs
#第二步:生成自定义数据集
x,y=make_blobs(
    n_samples=300,#样本点为300个
    n_features=2,#设置为2维
    centers=3,#设置三类数据
    cluster_std=1,#类内标准差为1
    center_box=(-10,10),#表示取值的范围
    random_state=233,#随机数种子,输入相同的随机数种子就能够生成相同的数据
    return_centers=False#增加一个类别中心点坐标的返回值,这里暂时用不到
)
#生成的x代表样本的特征值,y代表标签
#第三步:绘制散点图
plt.scatter(x[:,0],x[:,1],c=y,s=15)#x[:,0]代表的是每一个横坐标,x[:,1]代表的是每一个纵坐标,c代表标签值(区分颜色),s代表每一个点的大小
plt.show()
#第四步:划分数据集
#4.1设置索引数组,并将其充分打乱顺序
index=np.arange(20)
np.random.shuffle(index)
#4.2获取第二步中设置的300个数据(用相同的随机数种子就可以做到)
np.random.seed(233)
data=np.random.permutation(len(x))
#4.3设置训练集的比例为0.7
train_size=0.7
#把测试集和训练集的下标序号分别截取出来
train_index=data[:int(len(x)*train_size)]
test_index=data[int(len(x)*train_size):]
#从而获取训练集和测试集的xy集合
x_train=x[train_index]
y_train=y[train_index]
x_test=x[test_index]
y_test=y[test_index]
#第五步:使用散点图进行验证
#5.1训练集的散点图
plt.scatter(x_train[:,0],x_train[:,1],c=y_train,s=15)
plt.show()
#5.2测试集的散点图
plt.scatter(x_test[:,0],x_test[:,1],c=y_test,s=15)
plt.show()

方法2:使用内置函数完成数据集划分

(1)导包

#方法2:使用内置方法快速完成
#第一步:导包
import numpy as np
from matplotlib import pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.model_selection import train_test_split#这个是新增的

(2)生成自定义数据集

#第二步:生成基本数据集
x,y=make_blobs(
    n_samples=300,#样本点为300个
    n_features=2,#设置为2维
    centers=3,#设置三类数据
    cluster_std=1,#类内标准差为1
    center_box=(-10,10),#表示取值的范围
    random_state=233,#随机数种子,输入相同的随机数种子就能够生成相同的数据
    return_centers=False#增加一个类别中心点坐标的返回值,这里暂时用不到 
)
#生成的x代表样本的特征值,y代表标签

(3)划分数据集(使用内置函数快速完成)

y代表标签
#第三步:生成训练集和测试集
x_train,x_test,y_train,y_test=train_test_split(x,y,train_size=0.7,random_state=233,stratify=y)#train_size=0.7是测试集比例,233是随机数种子
#stratify=y作用是将这划分之后的训练集和测试集中三个样本的数量能够平均,不会出现某种类别多,某种类别少的情况

(4)使用散点图验证训练集和测试集

#第四步:使用散点图进行验证
#训练集的散点图
plt.scatter(x_train[:,0],x_train[:,1],c=y_train,s=15)
plt.show()
#测试集的散点图
plt.scatter(x_test[:,0],x_test[:,1],c=y_test,s=15)
plt.show()

(5)上述pycharm完整代码汇总

#方法2:使用内置方法快速完成
#第一步:导包
import numpy as np
from matplotlib import pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.model_selection import train_test_split#这个是新增的
#第二步:生成基本数据集
x,y=make_blobs(
    n_samples=300,#样本点为300个
    n_features=2,#设置为2维
    centers=3,#设置三类数据
    cluster_std=1,#类内标准差为1
    center_box=(-10,10),#表示取值的范围
    random_state=233,#随机数种子,输入相同的随机数种子就能够生成相同的数据
    return_centers=False#增加一个类别中心点坐标的返回值,这里暂时用不到
)
#生成的x代表样本的特征值,y代表标签
#第三步:生成训练集和测试集
x_train,x_test,y_train,y_test=train_test_split(x,y,train_size=0.7,random_state=233,stratify=y)#train_size=0.7是测试集比例,233是随机数种子
#stratify=y作用是将这划分之后的训练集和测试集中三个样本的数量能够平均,不会出现某种类别多,某种类别少的情况
#第四步:使用散点图进行验证
#4.1的散点图
plt.scatter(x_train[:,0],x_train[:,1],c=y_train,s=15)
plt.show()
#4.2的散点图
plt.scatter(x_test[:,0],x_test[:,1],c=y_test,s=15)
plt.show()

训练效果如下:

训练集散点图:

测试集的散点图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

还不秃顶的计科生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值