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