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