def experiment(model_class, vectorizer, xval):
name = model_class.__class__.__name__ + '.' + model_class.penalty
model = model_class.fit(X, y)
model_weights = vectorizer.inverse_transform(model.coef_)[0]
with open('weights.%s.txt' % name, 'w') as f:
f.write('%s\t%f\n' % ('(intercept)', model.intercept_))
f.writelines('%s\t%f\n' % k for k in model_weights.items())
acc_scores = cross_validation.cross_val_score(model, X, y, cv=xval)
auc_scores = cross_validation.cross_val_score(model, X, y, scoring='roc_auc', cv=xval)
prec_scores = cross_validation.cross_val_score(model, X, y, scoring='precision', cv=xval)
recall_scores = cross_validation.cross_val_score(model, X, y, scoring='recall', cv=xval)
f1_scores = cross_validation.cross_val_score(model, X, y, scoring='f1', cv=xval)
print '-'*80
print 'acc\t%.4f\t%s' % (np.mean(acc_scores), name)
print 'auc\t%.4f\t%s' % (np.mean(auc_scores), name)
print 'prec\t%.4f\t%s' % (np.mean(prec_scores), name)
print 'recall\t%.4f\t%s' % (np.mean(recall_scores), name)
print 'f1\t%.4f\t%s' % (np.mean(f1_scores), name)
评论列表
文章目录