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