def train_model(lrmodel, X, Y, devX, devY, devscores):
"""
Train model, using pearsonr on dev for early stopping
"""
done = False
best = -1.0
r = np.arange(1,6)
while not done:
# Every 100 epochs, check Pearson on development set
lrmodel.fit(X, Y, verbose=2, shuffle=False, validation_data=(devX, devY))
yhat = np.dot(lrmodel.predict_proba(devX, verbose=2), r)
score = pearsonr(yhat, devscores)[0]
if score > best:
print score
best = score
bestlrmodel = copy.deepcopy(lrmodel)
else:
done = True
yhat = np.dot(bestlrmodel.predict_proba(devX, verbose=2), r)
score = pearsonr(yhat, devscores)[0]
print 'Dev Pearson: ' + str(score)
return bestlrmodel
评论列表
文章目录