交叉驗證將訓練數據隨機地分成指定數量的折疊。如果相同的數據出現在多個折疊中,為了防止數據泄露,可以使用組。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)