如何使用Apache Spark執行組K-fold交叉驗證

了解如何在Databricks上使用Apache Spark執行組K-fold交叉驗證。

寫的亞當Pavlacka

最後發布時間:2022年5月16日

交叉驗證將訓練數據隨機地分成指定數量的折疊。如果相同的數據出現在多個折疊中,為了防止數據泄露,可以使用組。scikit-learn支持組K-fold交叉驗證,以確保折疊是不同的和不重疊。

在Spark上,您可以使用spark-sklearn庫,它分發scikit-learn模型的調優,以利用這種方法。下麵的示例調優scikit-learn基於Spark的隨機森林模型的群k-fold方法grp變量:

%從sklearn python。從spark_sklearn導入GridSearchCV。model_selection import GroupKFold param_grid= {"max_depth": [8,12, None], "max_features": [1,3,10], "min_samples_split": [1,3,10], "min_samples_leaf": [1,3,10], "bootstrap": [True, False], "criterion": ["gini", "entropy"], "n_estimators": [20,40,80]} group_kfold = GroupKFold(n_partitions =3) gs = GridSearchCV(sc, estimator = RandomForestClassifier(random_state=42), param_grid=param_grid, cv = group_kfold) gs。適合(X1, y1, grp)
刪除

信息

  • 用於運行網格搜索的庫稱為spark-sklearn,所以你必須在Spark上下文中傳遞(sc參數)。
  • X1而且日元參數必須為pandas DataFrames。這個網格搜索選項隻適用於適合驅動程序的數據。