方法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()
训练效果如下:
训练集散点图:
测试集的散点图: