train_pred = {} test_pred = {} # 将NaN值用中位数填充 X_train = X_train.fillna(X_train.median()) X_test = X_test.fillna(X_train.median()) oof = np.zeros(X_train.shape[0]) prediction = np.zeros(X_test.shape[0]) fold = 5 skf = StratifiedKFold(n_splits=fold, random_state=2, shuffle=True) for index, (train_index, test_index) in enumerate(skf.split(X_train, y)): train_x, test_x, train_y, test_y = X_train[feature_name].iloc[train_index], X_train[feature_name].iloc[test_index], y.iloc[train_index], y.iloc[test_index] rf_model = RandomForestClassifier(**parameters) rf_model.fit(train_x, train_y) oof[test_index] = rf_model.predict_proba(test_x)[:, 1] prediction += rf_model.predict_proba(X_test)[:, 1] / fold del train_x, test_x, train_y, test_y gc.collect() train_pred['rf'] = oof test_pred['rf'] = prediction
时间: 2023-06-26 09:09:41 浏览: 231
pred_text.rar_pred编程_text pred
这段代码使用了随机森林模型进行分类,首先将数据集中的缺失值用中位数填充。然后使用 StratifiedKFold 进行交叉验证,将数据集分成 5 折,每次使用其中 4 折数据作为训练集,1 折数据作为验证集,训练随机森林模型,并将模型在验证集上的输出保存到 oof 数组中。同时,在测试集上进行预测,并将预测输出保存到 prediction 数组中。最后将训练集和测试集的预测结果分别保存到 train_pred 和 test_pred 字典中,键名为 'rf' 表示使用随机森林模型。这里的 gc.collect() 是 Python 的垃圾回收机制,用于释放内存。
阅读全文