使用 sklearn 進行交叉驗證
如同第 2 章所說,對資料集過度擬合是分析中的常見問題。當模型過度貼合訓練資料時,在訓練資料上的表現很好,但無法在資料集之外泛化。
雖然你在第 2 章學到的訓練/測試切分有助於避免模型對訓練集過度擬合,但在進行超參數調校時,可能會對測試集產生過度擬合,因為你是為了在測試集上取得最佳預測結果而調整模型。因此,建議在不同的測試集合上驗證模型。K 折交叉驗證正是為了達成這件事:
- 將資料集分成訓練集與測試集。
- 擬合模型、進行預測並計算分數(你可以指定要使用 accuracy、precision、recall 等指標)。
- 總共重複上述流程 k 次。
- 輸出 10 次分數的平均值。
在這個練習中,你會在資料集上使用交叉驗證,並用 cross_val_score 函式來評估結果。
本練習屬於課程
HR 分析:用 Python 預測員工流失
練習說明
- 從模組
sklearn.model_selection匯入用於實作交叉驗證的函式cross_val_score()。 - 列印你模型的交叉驗證分數,並以
cv超參數指定 10 個摺疊。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Import the function for implementing cross validation
from sklearn.model_selection import ____
# Use that function to print the cross validation score for 10 folds
print(____(model,features,target,____=10))