Python 如何评估层状褶皱模型
我想通过分层折叠来训练[x_火车],[y_火车] 并通过[x_检验],[y_检验] 我该怎么办?Python 如何评估层状褶皱模型,python,numpy,tensorflow,keras,Python,Numpy,Tensorflow,Keras,我想通过分层折叠来训练[x_火车],[y_火车] 并通过[x_检验],[y_检验] 我该怎么办? 我试过了。但我认为这是不合适的。以分层的方式在培训和测试之间划分,您可以使用: import numpy as np from keras.models import Sequential from keras.layers import Dense from keras.wrappers.scikit_learn import KerasClassifier
我试过了。但我认为这是不合适的。以分层的方式在培训和测试之间划分,您可以使用:
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.wrappers.scikit_learn import KerasClassifier
from sklearn.model_selection import StratifiedKFold
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import cross_val_predict
x_train = dataset[0:700,:-1]
y_train = dataset[0:700,-1]
x_test = dataset[700:,:-1]
y_test = dataset[700:,-1]
def create_model():
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
model = KerasClassifier(build_fn=create_model, epochs=100, batch_size=64)
skf = StratifiedKFold(n_splits=3, shuffle=True, random_state=seed)
scores = cross_val_score(model, x_train, y_train, cv=skf)
predictions = cross_val_predict(model, x_test, y_test, cv=skf)
检查:
这个怎么样?这是一项工作,但我不知道它是否正确。你的意思是你想以分层的方式进行训练和测试吗?是的,完全正确。我想以分层的方式进行训练和测试。train(x_train,y_train)和test(x_test,y_test)请检查我的答案。为什么循环3次,每次都创建一个新模型(覆盖),而不在循环中使用迭代变量
train
?
from sklearn.model_selection import train_test_split
dataset_train, dataset_test = train_test_split(dataset,
stratify=dataset[:,-1],
test_size=0.2)
#split both datasets into X,y
skf = StratifiedKFold(n_splits=3, shuffle=True, random_state=seed)
accuracy=[]
for train in skf.split(x_train, y_train):
model = Sequential()
model.add(Dense(12, input_dim=8, activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])