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)
输出:
在示例中,选择前 3 个数字的第一次迭代进行测试。
因此,通过这种方式,我们使用 KFold
来获取用于我们模型的测试和训练索引的折叠。当我们从这些迭代中获得结果时,我们可以将它们相加得到平均值,这让我们对我们的模型在机器学习中的准确性有了一个很好的了解。
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