机器学习 鸢尾花数据集划分 - 训练集、测试集

目录

一:加载数据

二:数据集整理

三:数据集划分 


一:加载数据

加载数据,并创建一个DataFrame,便于数据分析

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
from sklearn.utils import shuffle

# 1加载数据
iris_datasets = load_iris()
# 2 创建一个DataFrame 特征+标签
df = pd.DataFrame(iris_datasets['data'], columns=iris_datasets.feature_names)
print(df.head(), df.shape)

   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)
0                5.1               3.5                1.4               0.2
1                4.9               3.0                1.4               0.2
2                4.7               3.2                1.3               0.2
3                4.6               3.1                1.5               0.2
4                5.0               3.6                1.4               0.2 (150, 4)

打印出鸢尾花数据集(头部信息)以及规格(150行4列),如上所示 

二:数据集整理

2-1 添加标签列

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
from sklearn.utils import shuffle

# 1加载数据
iris_datasets = load_iris()
# 2 创建一个DataFrame 特征+标签
df = pd.DataFrame(iris_datasets['data'], columns=iris_datasets.feature_names)
# 3 添加标签列
df['label'] = iris_datasets['target']
print(df.head(), df.shape)

头部信息及规格如下 

   sepal length (cm)  sepal width (cm)  ...  petal width (cm)  label
0                5.1               3.5  ...               0.2      0
1                4.9               3.0  ...               0.2      0
2                4.7               3.2  ...               0.2      0
3                4.6               3.1  ...               0.2      0
4                5.0               3.6  ...               0.2      0

[5 rows x 5 columns] (150, 5)

2-2 数据打乱

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
from sklearn.utils import shuffle

# 1加载数据
iris_datasets = load_iris()
# 2 创建一个DataFrame 特征+标签
df = pd.DataFrame(iris_datasets['data'], columns=iris_datasets.feature_names)
# 3 添加标签列
df['label'] = iris_datasets['target']
# 4 数据打乱
df = shuffle(df)
print(df.head(), df.shape)

 头部信息(随机取前5个数据)及规格如下 

     sepal length (cm)  sepal width (cm)  ...  petal width (cm)  label
60                 5.0               2.0  ...               1.0      1
85                 6.0               3.4  ...               1.6      1
64                 5.6               2.9  ...               1.3      1
100                6.3               3.3  ...               2.5      2
116                6.5               3.0  ...               1.8      2

[5 rows x 5 columns] (150, 5)

2-3 索引重新排序

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
from sklearn.utils import shuffle

# 1加载数据
iris_datasets = load_iris()
# 2 创建一个DataFrame 特征+标签
df = pd.DataFrame(iris_datasets['data'], columns=iris_datasets.feature_names)
# 3 添加标签列
df['label'] = iris_datasets['target']
# 4 数据打乱
df = shuffle(df)
# 5 索引重新排序
df.reset_index(drop=True, inplace=True)
print(df.head(10), df.shape)

 头部信息(随机取前10个数据,同时进行索引排序)及规格如下  

   sepal length (cm)  sepal width (cm)  ...  petal width (cm)  label
0                4.4               2.9  ...               0.2      0
1                6.3               2.5  ...               1.5      1
2                4.8               3.0  ...               0.3      0
3                4.6               3.4  ...               0.3      0
4                6.1               2.8  ...               1.3      1
5                5.7               2.9  ...               1.3      1
6                5.9               3.0  ...               1.5      1
7                6.2               2.8  ...               1.8      2
8                5.2               3.5  ...               0.2      0
9                5.0               3.3  ...               0.2      0

[10 rows x 5 columns] (150, 5)

三:数据集划分 

本节数据集划分,相对于前一节文章,使用到pandas、numpy 

3-1 特征数据集划分

特征训练集 + 特征测试集

DataFrame-->array 使用.values

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
from sklearn.utils import shuffle

# 1加载数据
iris_datasets = load_iris()
# 2 创建一个DataFrame 特征+标签
df = pd.DataFrame(iris_datasets['data'], columns=iris_datasets.feature_names)
# 3 添加标签列
df['label'] = iris_datasets['target']
# 4 数据打乱
df = shuffle(df)
# 5 索引重新排序
df.reset_index(drop=True, inplace=True)
# 6 数据集划分:训练集 + 测试集
# 特征数据--前4列  DataFrame-->array  使用.values
x = df.iloc[:, :4].values
print(x, type(x))
# 特征训练集 120条 占比0.8
x_train = x[:120]
# 特征测试集 30条 占比0.2
x_test = x[120:]
[[5.1 2.5 3.  1.1]
 [5.1 3.3 1.7 0.5]
 [5.4 3.9 1.7 0.4]
 [6.5 3.  5.2 2. ]
 [5.1 3.4 1.5 0.2]
 [6.8 3.2 5.9 2.3]
 [7.2 3.6 6.1 2.5]
 [6.4 2.7 5.3 1.9]
 [4.6 3.4 1.4 0.3]
 [4.9 3.1 1.5 0.2]
 [6.1 2.6 5.6 1.4]
 [5.5 3.5 1.3 0.2]
 [7.1 3.  5.9 2.1]
 [4.8 3.  1.4 0.3]
 [5.7 3.  4.2 1.2]
 [6.4 3.2 4.5 1.5]
 [6.7 3.1 5.6 2.4]
 [6.4 3.2 5.3 2.3]
 [5.6 2.9 3.6 1.3]
 [6.2 2.8 4.8 1.8]
 [5.6 2.8 4.9 2. ]
 [5.4 3.7 1.5 0.2]
 [5.1 3.5 1.4 0.2]
 [5.5 2.4 3.8 1.1]
 [6.  3.  4.8 1.8]
 [6.2 2.2 4.5 1.5]
 [5.6 3.  4.1 1.3]
 [4.6 3.1 1.5 0.2]
 [5.6 2.5 3.9 1.1]
 [5.8 4.  1.2 0.2]
 [5.1 3.7 1.5 0.4]
 [5.9 3.2 4.8 1.8]
 [4.4 3.2 1.3 0.2]
 [5.7 2.8 4.5 1.3]
 [6.1 3.  4.9 1.8]
 [5.1 3.8 1.5 0.3]
 [6.7 3.  5.  1.7]
 [4.7 3.2 1.3 0.2]
 [5.4 3.4 1.7 0.2]
 [6.5 2.8 4.6 1.5]
 [6.7 3.  5.2 2.3]
 [5.7 4.4 1.5 0.4]
 [5.8 2.7 4.1 1. ]
 [5.2 2.7 3.9 1.4]
 [6.4 2.8 5.6 2.1]
 [6.5 3.  5.5 1.8]
 [7.6 3.  6.6 2.1]
 [5.  3.2 1.2 0.2]
 [5.  3.4 1.5 0.2]
 [7.9 3.8 6.4 2. ]
 [5.2 3.4 1.4 0.2]
 [7.4 2.8 6.1 1.9]
 [5.5 2.6 4.4 1.2]
 [6.8 2.8 4.8 1.4]
 [4.4 3.  1.3 0.2]
 [6.  2.2 4.  1. ]
 [6.8 3.  5.5 2.1]
 [5.6 2.7 4.2 1.3]
 [5.8 2.8 5.1 2.4]
 [6.4 3.1 5.5 1.8]
 [6.7 2.5 5.8 1.8]
 [6.3 2.3 4.4 1.3]
 [5.2 4.1 1.5 0.1]
 [5.  3.4 1.6 0.4]
 [6.  3.4 4.5 1.6]
 [5.1 3.5 1.4 0.3]
 [6.3 2.8 5.1 1.5]
 [7.7 3.8 6.7 2.2]
 [5.6 3.  4.5 1.5]
 [7.2 3.  5.8 1.6]
 [6.3 3.3 4.7 1.6]
 [6.  2.2 5.  1.5]
 [6.4 2.9 4.3 1.3]
 [6.3 3.4 5.6 2.4]
 [4.7 3.2 1.6 0.2]
 [7.7 2.8 6.7 2. ]
 [6.9 3.1 5.1 2.3]
 [6.9 3.2 5.7 2.3]
 [4.8 3.1 1.6 0.2]
 [6.9 3.1 5.4 2.1]
 [6.9 3.1 4.9 1.5]
 [5.8 2.7 5.1 1.9]
 [7.2 3.2 6.  1.8]
 [5.1 3.8 1.6 0.2]
 [4.9 3.1 1.5 0.1]
 [6.1 2.9 4.7 1.4]
 [5.8 2.7 3.9 1.2]
 [6.1 3.  4.6 1.4]
 [5.7 2.5 5.  2. ]
 [5.5 4.2 1.4 0.2]
 [5.7 2.8 4.1 1.3]
 [6.4 2.8 5.6 2.2]
 [4.6 3.6 1.  0.2]
 [6.7 3.3 5.7 2.1]
 [6.2 2.9 4.3 1.3]
 [6.7 3.1 4.4 1.4]
 [5.  2.  3.5 1. ]
 [5.  2.3 3.3 1. ]
 [6.5 3.2 5.1 2. ]
 [4.3 3.  1.1 0.1]
 [5.  3.5 1.3 0.3]
 [5.5 2.4 3.7 1. ]
 [5.9 3.  4.2 1.5]
 [6.3 2.5 5.  1.9]
 [6.2 3.4 5.4 2.3]
 [5.9 3.  5.1 1.8]
 [4.8 3.4 1.6 0.2]
 [5.1 3.8 1.9 0.4]
 [4.4 2.9 1.4 0.2]
 [5.4 3.4 1.5 0.4]
 [4.9 3.  1.4 0.2]
 [5.8 2.6 4.  1.2]
 [5.8 2.7 5.1 1.9]
 [5.  3.3 1.4 0.2]
 [5.4 3.9 1.3 0.4]
 [6.3 3.3 6.  2.5]
 [6.6 2.9 4.6 1.3]
 [7.3 2.9 6.3 1.8]
 [5.4 3.  4.5 1.5]
 [5.2 3.5 1.5 0.2]
 [6.7 3.3 5.7 2.5]
 [6.  2.9 4.5 1.5]
 [5.  3.  1.6 0.2]
 [5.7 2.9 4.2 1.3]
 [4.8 3.4 1.9 0.2]
 [5.3 3.7 1.5 0.2]
 [5.  3.5 1.6 0.6]
 [6.3 2.7 4.9 1.8]
 [6.6 3.  4.4 1.4]
 [4.5 2.3 1.3 0.3]
 [5.7 3.8 1.7 0.3]
 [5.7 2.6 3.5 1. ]
 [4.9 2.5 4.5 1.7]
 [6.  2.7 5.1 1.6]
 [6.7 3.1 4.7 1.5]
 [4.6 3.2 1.4 0.2]
 [7.7 2.6 6.9 2.3]
 [4.9 2.4 3.3 1. ]
 [6.5 3.  5.8 2.2]
 [4.9 3.6 1.4 0.1]
 [6.1 2.8 4.  1.3]
 [7.7 3.  6.1 2.3]
 [5.5 2.5 4.  1.3]
 [4.8 3.  1.4 0.1]
 [6.3 2.9 5.6 1.8]
 [7.  3.2 4.7 1.4]
 [6.1 2.8 4.7 1.2]
 [5.  3.6 1.4 0.2]
 [5.5 2.3 4.  1.3]
 [6.3 2.5 4.9 1.5]] <class 'numpy.ndarray'>

特征数据集   转换为ndarray,如上所示 

3-2 标签数据集划分

标签训练集 + 标签测试集

将二维数组[拍平]变为一维的数组 使用np.ravel

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
from sklearn.utils import shuffle

# 1加载数据
iris_datasets = load_iris()
# 2 创建一个DataFrame 特征+标签
df = pd.DataFrame(iris_datasets['data'], columns=iris_datasets.feature_names)
# 3 添加标签列
df['label'] = iris_datasets['target']
# 4 数据打乱
df = shuffle(df)
# 5 索引重新排序
df.reset_index(drop=True, inplace=True)
# 6 数据集划分:训练集 + 测试集
# 特征数据--前4列  DataFrame-->array  使用.values
x = df.iloc[:, :4].values
# 特征训练集 120条 占比0.8
x_train = x[:120]
# 特征测试集 30条 占比0.2
x_test = x[120:]
# 标签--label  将二维数组[拍平]变为一维的数组 使用.ravel
y = np.ravel(df.iloc[:, :4].values)
print(y, type(y))
# 标签训练集 120条 占比0.8
y_train = y[:120]
# 标签测试集 30条 占比0.2
y_test = y[120:]
[4.7 3.2 1.3 0.2 6.5 3.  5.5 1.8 6.4 2.7 5.3 1.9 4.8 3.  1.4 0.1 6.8 3.2
 5.9 2.3 6.2 2.8 4.8 1.8 6.5 2.8 4.6 1.5 5.8 2.7 3.9 1.2 6.6 2.9 4.6 1.3
 6.3 2.5 5.  1.9 5.4 3.9 1.7 0.4 7.7 3.8 6.7 2.2 5.5 4.2 1.4 0.2 5.2 3.5
 1.5 0.2 6.6 3.  4.4 1.4 6.1 2.8 4.7 1.2 6.  2.7 5.1 1.6 5.8 2.7 5.1 1.9
 6.8 2.8 4.8 1.4 6.5 3.  5.2 2.  6.9 3.2 5.7 2.3 6.1 2.9 4.7 1.4 6.4 3.2
 5.3 2.3 5.2 2.7 3.9 1.4 6.7 3.  5.  1.7 6.3 2.3 4.4 1.3 5.6 2.7 4.2 1.3
 5.6 3.  4.1 1.3 4.4 2.9 1.4 0.2 5.1 3.3 1.7 0.5 6.4 3.2 4.5 1.5 7.2 3.6
 6.1 2.5 6.3 2.5 4.9 1.5 5.5 2.5 4.  1.3 4.4 3.  1.3 0.2 6.1 3.  4.9 1.8
 7.2 3.2 6.  1.8 5.3 3.7 1.5 0.2 5.7 2.8 4.1 1.3 5.  2.3 3.3 1.  6.3 2.9
 5.6 1.8 5.  3.4 1.5 0.2 5.2 4.1 1.5 0.1 4.9 2.4 3.3 1.  6.1 2.6 5.6 1.4
 4.4 3.2 1.3 0.2 6.7 3.3 5.7 2.1 7.6 3.  6.6 2.1 6.5 3.2 5.1 2.  4.9 2.5
 4.5 1.7 5.1 3.5 1.4 0.2 5.7 3.  4.2 1.2 6.3 2.8 5.1 1.5 5.7 3.8 1.7 0.3
 5.1 3.8 1.5 0.3 6.  2.9 4.5 1.5 5.9 3.  4.2 1.5 5.5 2.6 4.4 1.2 6.8 3.
 5.5 2.1 5.7 2.8 4.5 1.3 5.2 3.4 1.4 0.2 5.1 3.8 1.9 0.4 4.8 3.4 1.9 0.2
 4.6 3.6 1.  0.2 6.3 3.3 6.  2.5 6.9 3.1 5.4 2.1 6.2 3.4 5.4 2.3 6.3 3.4
 5.6 2.4 5.8 2.6 4.  1.2 4.9 3.1 1.5 0.2 6.9 3.1 5.1 2.3 6.3 2.7 4.9 1.8
 6.7 3.1 4.4 1.4 6.2 2.9 4.3 1.3 5.4 3.  4.5 1.5 6.7 3.3 5.7 2.5 5.  3.5
 1.3 0.3 5.1 2.5 3.  1.1 5.8 4.  1.2 0.2 6.4 2.9 4.3 1.3 5.6 2.5 3.9 1.1
 5.1 3.4 1.5 0.2 6.7 3.  5.2 2.3 4.8 3.  1.4 0.3 5.9 3.2 4.8 1.8 4.7 3.2
 1.6 0.2 6.1 2.8 4.  1.3 4.6 3.1 1.5 0.2 4.9 3.1 1.5 0.1 6.5 3.  5.8 2.2
 7.1 3.  5.9 2.1 5.4 3.4 1.7 0.2 5.4 3.4 1.5 0.4 7.7 3.  6.1 2.3 6.  3.4
 4.5 1.6 5.  3.5 1.6 0.6 5.9 3.  5.1 1.8 5.8 2.8 5.1 2.4 7.4 2.8 6.1 1.9
 5.  3.3 1.4 0.2 6.7 2.5 5.8 1.8 5.1 3.5 1.4 0.3 5.6 2.9 3.6 1.3 6.4 2.8
 5.6 2.2 4.6 3.2 1.4 0.2 5.6 2.8 4.9 2.  5.7 4.4 1.5 0.4 5.7 2.6 3.5 1.
 5.  3.6 1.4 0.2 5.  3.  1.6 0.2 5.6 3.  4.5 1.5 7.  3.2 4.7 1.4 5.8 2.7
 5.1 1.9 5.4 3.9 1.3 0.4 5.  3.4 1.6 0.4 6.7 3.1 5.6 2.4 4.8 3.4 1.6 0.2
 6.1 3.  4.6 1.4 6.  2.2 5.  1.5 6.4 3.1 5.5 1.8 5.5 2.3 4.  1.3 6.4 2.8
 5.6 2.1 5.4 3.7 1.5 0.2 5.  3.2 1.2 0.2 4.9 3.  1.4 0.2 4.9 3.6 1.4 0.1
 6.2 2.2 4.5 1.5 5.1 3.8 1.6 0.2 4.5 2.3 1.3 0.3 5.5 2.4 3.8 1.1 6.  3.
 4.8 1.8 5.7 2.5 5.  2.  5.1 3.7 1.5 0.4 5.8 2.7 4.1 1.  6.9 3.1 4.9 1.5
 7.9 3.8 6.4 2.  6.3 3.3 4.7 1.6 7.3 2.9 6.3 1.8 7.7 2.8 6.7 2.  7.7 2.6
 6.9 2.3 5.7 2.9 4.2 1.3 5.  2.  3.5 1.  4.3 3.  1.1 0.1 4.8 3.1 1.6 0.2
 5.5 3.5 1.3 0.2 7.2 3.  5.8 1.6 5.5 2.4 3.7 1.  4.6 3.4 1.4 0.3 6.  2.2
 4.  1.  6.7 3.1 4.7 1.5] <class 'numpy.ndarray'>

标签数据集   转换为ndarray,如上所示 

完整源码,步骤详尽,如下可以自取,

可以自己打印 :特征训练集x_train、特性测试集x_test、标签训练集y_train、标签测试集y_test     【加深理解最重要】

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np
from sklearn.utils import shuffle

# 1 加载数据
iris_datasets = load_iris()

# 2 创建一个DataFrame 特征+标签
df = pd.DataFrame(iris_datasets['data'], columns=iris_datasets.feature_names)

# 3 添加标签列
df['label'] = iris_datasets['target']

# 4 数据打乱
df = shuffle(df)

# 5 索引重新排序
df.reset_index(drop=True, inplace=True)

# 6 数据集划分:训练集 + 测试集
# 6-1 特征数据--前4列  DataFrame-->array  使用.values
x = df.iloc[:, :4].values
# 特征训练集 120条 占比0.8
x_train = x[:120]
# 特征测试集 30条 占比0.2
x_test = x[120:]

# 6-2 标签--label  将二维数组[拍平]变为一维的数组 使用.ravel
y = np.ravel(df.iloc[:, :4].values)
# 标签训练集 120条 占比0.8
y_train = y[:120]
# 标签测试集 30条 占比0.2
y_test = y[120:]
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

chenruhan_QAQ_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值