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

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

寫的亞當Pavlacka

最後發布日期:2022年5月16日

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

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

%python從sklearn。從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_= 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 dataframe。這個網格搜索選項隻適用於適合驅動程序的數據。