按照给定的比例随机分割一个Pandas数据框架可以使用train_test_split()
函数实现。该函数来自于scikit-learn
库,可以将数据集随机分割为训练集和测试集,以便用于机器学习中的模型训练和评估。
下面分为以下几个步骤进行说明:
1. 导入必须的库
在使用train_test_split()
函数之前,需要导入pandas
和scikit-learn
库。
import pandas as pd
from sklearn.model_selection import train_test_split
2. 加载数据
首先,需要加载要处理的数据集。这里以iris
数据集为例,它是一个经典的机器学习数据集。可以使用pandas
库中的read_csv()
函数加载CSV文件,并将其转换为DataFrame
格式。
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', header=None)
3. 将数据集划分为训练集和测试集
train_test_split()
函数可以接受多个参数,包括特征矩阵、目标矩阵(可选)、测试集比例、随机种子等。在本例中,设置test_size
为0.2,表示将数据分为80%的训练数据和20%的测试数据。
X_train, X_test, y_train, y_test = train_test_split(df.iloc[:, :-1], df.iloc[:, -1], test_size=0.2, random_state=2022)
df.iloc[:, :-1]
表示选择除最后一列(花的类别)之外的所有列。它是特征矩阵。df.iloc[:, -1]
表示选择最后一列(花的类别)。它是目标矩阵。test_size=0.2
表示将数据集分割为20%的测试数据和80%的训练数据。random_state
是一个随机种子,用于控制每次随机分割时选取的数据不变。这样做有助于使结果可重复。
4. 查看数据集大小
最后,我们可以打印出训练集和测试集的大小,以便验证数据是否已正确划分。
print("Training data size: {} instances".format(len(X_train)))
print("Test data size: {} instances".format(len(X_test)))
运行完整代码,输出结果如下:
Training data size: 120 instances
Test data size: 30 instances
以上就是按给定的比例随机分割一个Pandas数据框架的完整攻略,希望能对您有所帮助。