当我们需要对数据集进行训练、验证和测试时,常常需要按比例将数据集划分为不同的部分。Python提供了很多方法来完成这个任务,下面我们将分步骤讲解如何用Python按比例随机切分数据集。
步骤一:导入所需的库
首先,我们需要导入Python的一些库来处理数据集。我们需要使用numpy
库读取数据集,以及使用train_test_split
函数按比例随机划分数据集。
import numpy as np
from sklearn.model_selection import train_test_split
步骤二:读取数据集
我们需要将数据集读取进来并进行处理。这里我们假设数据集存储在一个csv
文件中,且每行包含一个样本数据。
data = np.genfromtxt('dataset.csv', delimiter=',')
X = data[:, :-1]
y = data[:, -1]
首先,我们使用numpy
中的genfromtxt
函数读取数据集,将所有数据读取到一个二维数组中。我们然后使用X = data[:, :-1]
和y = data[:, -1]
将特征和标签分别存储在两个数组中。
步骤三:按比例随机划分数据集
有了数据集,我们可以使用train_test_split
函数来按比例随机划分数据集。该函数的第一个参数是所要切分的数据集,第二个参数是要切分成几个部分,第三个参数是切分时按比例划分的大小。在下面的示例中,我们将数据集划分为训练集和测试集,比例为3:1。
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
示例一:按比例随机划分数据集为训练集和测试集
import numpy as np
from sklearn.model_selection import train_test_split
# 读取数据集
data = np.genfromtxt('dataset.csv', delimiter=',')
X = data[:, :-1]
y = data[:, -1]
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
# 显示每个部分数据的大小
print(f"Number of training examples: {X_train.shape[0]}")
print(f"Number of testing examples: {X_test.shape[0]}")
输出结果:
Number of training examples: 75
Number of testing examples: 25
这里我们读取了一个csv
文件,并将其分割成训练集和测试集,比例为3:1。然后我们打印出了每个部分的数据大小。
示例二:按比例随机划分数据集为训练集、验证集和测试集
下面这个示例展示了如何按比例随机划分数据集为训练集、验证集和测试集,比例为6:2:2。
import numpy as np
from sklearn.model_selection import train_test_split
# 读取数据集
data = np.genfromtxt('dataset.csv', delimiter=',')
X = data[:, :-1]
y = data[:, -1]
# 划分数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=42)
# 显示每个部分数据的大小
print(f"Number of training examples: {X_train.shape[0]}")
print(f"Number of validation examples: {X_val.shape[0]}")
print(f"Number of testing examples: {X_test.shape[0]}")
输出结果:
Number of training examples: 60
Number of validation examples: 20
Number of testing examples: 20
这里我们读取了一个csv
文件,并将其分割成训练集、验证集和测试集,比例为6:2:2。然后我们打印出了每个部分的数据大小。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python按比例随机切分数据的实现 - Python技术站