현재 교차 회귀 분석을 사용하여 회귀 네트워크를 학습 중입니다. 레이블이 없지만 특정 출력에 매핑해야하는 특정 입력은 네트워크에서 매핑을 생성해야합니다. 폴드 방법에 문제가있는 것 같습니다. 정의되고있다.각 k 폴드의 크기는 어떻게 정의됩니까?
내가 crossvalidation을 할 방법은 다음과 같이이다 :이 코드
############################### Training setup ##################################
#Define 10 folds:
seed = 7
np.random.seed(seed)
kfold = StratifiedKFold(n_splits=10, shuffle=True, random_state=seed)
print "Splits"
cvscores_loss = []
for train, test in kfold.split(train_set_data_vstacked_normalized,train_set_output_vstacked):
print "Model definition!"
model = Sequential()
#act = PReLU(init='normal', weights=None)
model.add(Dense(output_dim=400,input_dim=400, init="normal",activation=K.tanh))
#act1 = PReLU(init='normal', weights=None)
model.add(Dense(output_dim=400,input_dim=400, init="normal",activation=K.tanh))
#act2 = PReLU(init='normal', weights=None)
model.add(Dense(output_dim=400, input_dim=400, init="normal",activation=K.tanh))
act4=ELU(10000)
model.add(Dense(output_dim=13, input_dim=300, init="normal",activation=act4))
print "Compiling"
model.compile(loss='mean_squared_error', optimizer='RMSprop', metrics=["accuracy"])
print "Compile done! "
print '\n'
print "Train start"
model.fit(train_set_data_vstacked_normalized[train],train_set_output_vstacked[train], nb_epoch=10, verbose=1)
loss, accuracy = model.evaluate(x=train_set_data_vstacked_normalized[test],y=train_set_output_vstacked[test],verbose=1)
print
print('loss: ', loss)
print('accuracy: ', accuracy)
print()
print model.summary()
print "New Model:"
cvscores_loss.append(loss)
print("%.2f%% (+/- %.2f%%)" % (numpy.mean(cvscores_loss), numpy.std(cvscores_loss)))
문제는 내가 ... 인쇄 그것은되고 있습니다 .. 루프의 입력하지 "분할"후 경고 메시지가 결코 것입니다. 그것은, 입력 및 출력 크기는? 내 신경 네트워크의 무엇을 알고 어떻게 kfold 질문 할
Splits
/home/k/.local/lib/python2.7/site-packages/sklearn/model_selection/_split.py:579: Warning: The least populated class in y has only 1 members, which is too few. The minimum number of groups for any class cannot be less than n_splits=10.
...
내가 어딘가를 정의해야 하는가? 또는 ...?
그것을
모델을 정의하는 기능을 만듭니다 회귀 문제. 그래서 수업이 없어 .. 나는 특정 네트워크에 특정 출력을 올바르게 매핑하도록 네트워크를 훈련 중이다. 어떤 출력물은 라벨이 아니라 길이 13의 원시 피처입니다. 또한'train_set_output_vstacked [0]'도 출력됩니다. –
StratifiedKFold에는 클래스가 필요합니다. 회귀 분석에는 KFold를 사용하십시오. 또는 cross_val_score를 사용하는 경우 회귀 또는 분류 중 어떤 것을 기반으로할지 선택합니다. – simon