如何使用Python将数据集拆分为训练集和测试集
在本文中,我们将讨论如何在Python中将数据集拆分为训练集和测试集。
训练测试拆分用于估计适用于基于预测的算法/应用程序的机器学习算法的性能。这种方法是一种快速且易于执行的过程,因此我们可以将我们自己的机器学习模型结果与机器结果进行比较。默认情况下,测试集被分成 30% 的实际数据,训练集被分成 70% 的实际数据
我们需要将数据集拆分为训练集和测试集,以评估我们的机器学习模型的执行情况。训练集用于拟合模型,训练集的统计数据是已知的。第二组称为测试数据集,该集仅用于预测。
数据集拆分:
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)
parameters:
- *arrays : inputs such as lists, arrays, dataframes or matrices
- test_size : this is a float value whose value ranges between 0.0 and 1.0. it represents the proportion of our test size. it’s default value is none.
- train_size : this is a float value whose value ranges between 0.0 and 1.0. it represents the proportion of our train size. it’s default value is none.
- random_state: this parameter is used to control the shuffling applied to the data before applying the split. it acts like a seed.
- shuffle: This parameter is used to shuffle the data before splitting. it’s default value is true.
- stratify: This parameter is used to split the data in stratified fashion.
例子:
要查看或下载示例中使用的 CSV 文件,请单击此处。
代码:
Python3
# import modules
import pandas as pd
from sklearn.linear_model import LinearRegression
# 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 包。之后导入 CSV 文件,我们使用 read_csv() 方法。变量 df 现在包含数据框。在示例中,“房价”是我们要预测的列,因此我们将该列作为 y,将其余列作为 X 变量。 test_size = 0.05 指定仅将整个数据的 5% 作为我们的测试集,将 95% 作为我们的训练集。随机状态帮助我们每次都得到相同的随机分割。
输出: