将数据集分成训练集和测试集是机器学习中非常重要的一个步骤,它可以帮助我们评估我们的机器学习模型在面对新数据时的性能表现。在Python中,一般通过随机将数据集按照一定比例分成训练集和测试集。
下面是使用Python实现对数据集的分割过程:
import random
def split_dataset(data, ratio):
train_size = int(len(data) * ratio)
train_data = []
test_data = list(data)
while len(train_data) < train_size:
index = random.randrange(len(test_data))
train_data.append(test_data.pop(index))
return train_data, test_data
其中,data
是原始的数据集,ratio
是训练数据的比例,例如,ratio=0.7
表示训练数据占总数据集的70%。train_size
是计算出来的训练数据的大小。首先,我们新建一个空的训练数据列表train_data
,并把原始数据集复制一份到test_data
列表中。然后,我们在test_data
中随机选择一个数据,将它添加到train_data
中,并从test_data
中移除。重复这个过程,直到train_data
的大小达到train_size
。
最后,我们返回划分好的训练数据和测试数据的列表。可以使用以下代码测试分割函数:
# 使用sklearn中的鸢尾花数据集测试分割函数
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
data = list(zip(X, y))
train_data, test_data = split_dataset(data, 0.7)
print(len(train_data))
print(len(test_data))
以上代码使用了scikit-learn库中的Iris数据集,将数据集随机分成训练集和测试集,打印了训练集和测试集的长度。
这样,我们就用Python实现了将数据集分成训练集和测试集的过程。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何用Python将数据集分成训练集和测试集 - Python技术站