在Keras中执行分层KFold交叉验证的Python库

我有一组数据,想用它来训练神经网络,尽管我认为我的问题适用于任何类型的机器学习。

我的数据分为两类,但第一类的数据样本远多于第二类。在我开始用这些数据训练神经网络之前,我打算将数据分成三个独立的组(训练、验证和测试),并在每个组中,重复第一类的数据足够多次,使得每个组中两类数据的数量相等。

这样做真的很繁琐,我敢打赌其他人也遇到过同样的问题。有没有一个Python库可以帮我完成这个任务?或者至少完成其中的一部分?

tl;dr: 我想要一个Python库,能够将我的数据分成三部分,并在不丢弃数据的情况下,使每个类别的数据量平衡


回答:

是的,使用scikit-learn。以下是@KeironO在https://github.com/fchollet/keras/issues/1711上的回答的复制粘贴:

from sklearn.cross_validation import StratifiedKFolddef load_data():    # 使用此函数加载数据def create_model():    # 使用此函数创建模型def train_and_evaluate_model(model, data[train], labels[train], data[test], labels[test]):    model.fit...    # 在此处拟合和评估数据if __name__ == "__main__":    n_folds = 10    data, labels, header_info = load_data()    skf = StratifiedKFold(labels, n_folds=n_folds, shuffle=True)    for i, (train, test) in enumerate(skf):            print "运行第", i+1, "折,共", n_folds, "折"            model = None # 清除神经网络。            model = create_model()            train_and_evaluate_model(model, data[train], labels[train], data[test], labels[test])

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注