小编esh*_*haa的帖子

如何分割训练和测试数据-Tensorflow上的Keras

我目前正在使用神经网络和拟合函数来训练数据。

history=model.fit(X, encoded_Y, batch_size=50, nb_epoch=500, validation_split = 0.2, verbose=1)
Run Code Online (Sandbox Code Playgroud)

现在,我已将validation_split用作20%。据我了解,我的训练数据将是80%,测试数据将是20%。我很困惑如何在后端处理这些数据。就像是要抽取前80%的样本进行训练而抽取低于20%的样本进行测试,还是从中间抽取样本?如果我想提供单独的培训和测试数据,我该如何使用fit()来做到这一点?

而且,我的第二个担心是如何检查数据是否适合模型?从结果中可以看出,训练准确度约为90%,而验证准确度约为55%。这是否意味着过拟合或欠拟合?

我的最后一个问题是,评估收益是什么?Document说它返回损失,但是我已经在每个时期都得到了损失和准确性(作为fit()的返回(历史记录))。评价返回的准确性和分数显示什么?如果评估返回的准确率返回90%,我可以说我的数据很合适,而不管每个时期的准确率和损失是多少?

以下是我的代码:

import numpy
import pandas
import matplotlib.pyplot as plt
from keras.models import Sequential
from keras.layers import Dense, Dropout
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import cross_val_score
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import StratifiedKFold
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from keras.utils import np_utils
from sklearn.model_selection import KFold
from sklearn.metrics import confusion_matrix
import itertools

seed = 7
numpy.random.seed(seed)

dataframe = pandas.read_csv("INPUTFILE.csv", skiprows=range(0, 0))

dataset = dataframe.values …
Run Code Online (Sandbox Code Playgroud)

validation machine-learning neural-network keras tensorflow

7
推荐指数
1
解决办法
2万
查看次数