def kfold_train_and_predict(X, Y, classifier, k = 5, indices = None, features = None):
if indices is None:
indices = np.array(list(range(X.shape[0])))
if features is None:
features = np.array(list(range(X.shape[1])))
kf = cross_validation.KFold(len(indices), n_folds=k)
accurs = []
for train, test in kf:
train_ind = indices[train].astype("int")
test_ind = indices[test].astype("int")
classifier.fit(X[train_ind,:][:,features], Y[train_ind])
accurs += [classifier.score(X[test_ind,:][:,features], Y[test_ind])]
accurs = np.array(accurs)
return np.mean(accurs), np.std(accurs)
评论列表
文章目录