打乱sklearn鸢尾花数据集的方法
在分类鸢尾花数据集的时候发现数据是按类别排列的,因此想打乱数据集便于训练数据和测试数据的分割。鸢尾花数据集中的数据是按字典存放的,需要打乱字典并且保留样本和标签的对应关系。本想在网上搜索简便方法,但是暂时没有找到,于是自己写了一个不算简便的方法,希望看到这篇文章的小伙伴如果有简便方法可以告知我一下
1. 导入数据,查看原始数据格式
from sklearn import datasets
import random
from sklearn.model_selection import train_test_split
#查看数据
iris = datasets.load_iris()
print(iris)
鸢尾花数据以字典的形式存放,样本包含四个特征: - sepal length (cm) - sepal width (cm) - petal length (cm) - petal width (cm),三个类别: - Iris-Setosa - Iris-Versicolour - Iris-Virginica
2. 打乱数据
x = iris['data']
y = iris['target']
#打乱鸢尾花数据集
id = [i for i in range(0,len(x))]
random.shuffle(id)
x_copy = x.copy()
y_copy = y.copy()
for j in range(0,len(x)):
x[j] = x_copy[id[j]]
y[j] = y_copy[id[j]]
#print(x,y)
3. 分割数据集
x_train,x_test,y_train,y_test = train_test_split(x,y,train_size=0.7)