Python 中的 KFold

Rana Hasnain Khan 2022年5月17日
Python 中的 KFold

本文将介绍 KFold 在 Python 中的作用。

Python 中的 KFold

在从事机器学习工作时,有时我们会陷入困境,我们应该使用哪种机器学习模型来解决我们的问题。例如,假设我们要对鸢尾花进行分类,我们可以使用诸如 SVM随机森林逻辑回归KFold 之类的机器学习模型。

我们使用模型进行交叉验证、训练和测试我们的 AI。交叉验证是一种允许我们评估模型性能的技术。

我们正在研究机器学习模型,例如将电子邮件分类为垃圾邮件与否。我们的典型过程是首先使用标签数据集训练模型。

模型建立后,我们必须使用不同的数据集来测试模型。当模型返回结果时,我们可以将结果与实际值进行比较,衡量模型的准确性。

有几种方法可以训练和测试模型,KFold 就是其中之一。在这种技术中,我们将样本分成折叠。

如果我们有 100 个样本,我们可以将它们分成 5 个折叠,每个包含 20 个样本。然后我们以这样的方式运行多次迭代,在我们的第一次迭代中,我们分配我们的第一个折叠用于测试模型,其余四个用于训练模型。

我们将使用第二个折叠进行测试,其余折叠用于下一次迭代的训练。一旦我们通过所有折叠作为测试折叠,我们现在可以从我们的模型中获得平均结果,从而为我们提供模型的准确性。

当我们为我们的模型提供各种样本时,KFold 技术非常方便。我们得到的平均结果将成为我们模型的准确性。

现在,让我们看一个示例,在该示例中,我们将创建一个项目列表并使用 KFold 进行折叠以测试和训练我们的模型。

首先,我们将使用以下命令安装 sklearn 库。

# python
pip install sklearn

一旦我们安装了库,现在我们将从 sklearn.model_selection 导入 KFold 并使用 KFold 方法将我们的数据集分成三个折叠,如下所示。

# python
from sklearn.model_selection import KFold

kf = KFold(n_splits=3)
dataset = [1,2,3,4,5,6,7,8,9]
for train_index, test_index in kf.split(dataset):
    print(train_index, test_index)

输出:

Python 中的 Kfold 示例

在示例中,选择前 3 个数字的第一次迭代进行测试。

因此,通过这种方式,我们使用 KFold 来获取用于我们模型的测试和训练索引的折叠。当我们从这些迭代中获得结果时,我们可以将它们相加得到平均值,这让我们对我们的模型在机器学习中的准确性有了一个很好的了解。

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn

相关文章 - Python KFold