如何用Python将数据集分成训练集和测试集
这里我们将讨论如何在Python中把数据集分成训练集和测试集。训练-测试分割是用来估计机器学习算法的性能,这些算法适用于基于预测的算法/应用。这种方法是一个快速而简单的程序,这样我们就可以将自己的机器学习模型结果与机器结果进行比较。默认情况下,测试集被分割成30%的实际数据,训练集被分割成70%的实际数据。
我们需要将一个数据集分成训练集和测试集,以评估我们的机器学习模型的表现如何。训练集是用来拟合模型的,训练集的统计数据是已知的。第二个数据集被称为测试数据集,这个数据集只用于预测。
Dataset Splitting:
Scikit-learn别名sklearn,是Python中最有用、最强大的机器学习库。scikit-learn库为我们提供了model_selection模块,在这个模块中,我们有分割器函数train_test_split()。
语法 :
train_test_split(*arrays, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None)
参数:
*arrays: 输入,如列表、数组、数据框或矩阵-
test_size:这是一个浮动值,其数值范围在0.0和1.0之间。它代表我们的测试规模的比例。它的默认值是无。
- train_size:这是一个浮动值,其范围在0.0和1.0之间。它代表我们的训练规模的比例。
- random_state:这个参数用于控制在应用分割之前应用于数据的洗牌,它作为一个种子。
- shuffle:该参数用于在分割前对数据进行洗牌。其默认值为true。
- stratify:该参数用于以分层的方式分割数据。
示例:

代码 :
# import modules
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# read the dataset
df = pd.read_csv('Real estate.csv')
# get the locations
X = df.iloc[:, :-1]
y = df.iloc[:, -1]
# split the dataset
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.05, random_state=0)
在上面的例子中,我们导入了pandas包和sklearn包。之后,我们使用read_csv()方法导入CSV文件。变量df现在包含了数据框架。在这个例子中,”房价 “是我们要预测的列,所以我们把这一列作为y,其余的列作为我们的X变量。test_size = 0.05指定整个数据的5%作为我们的测试集,而95%作为我们的训练集。随机状态帮助我们每次获得相同的随机分割。
输出 :

极客教程