Titanic 模型评估
1.逻辑回归
#evaluate logisitic model
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.3, random_state=2018)
clf.fit(X_train, Y_train)
Y_train_pred = clf.predict(X_train)
Y_test_pred = clf.predict(X_test)
print('训练集准确率:', accuracy_score(Y_train, Y_train_pred), '测试集准确率', accuracy_score(Y_test, Y_test_pred))
print('训练集精确率:', precision_score(Y_train, Y_train_pred, average='binary'), '测试集精确率', precision_score(Y_test, Y_test_pred, average='binary'))
print('训练集召回率:', recall_score(Y_train, Y_train_pred, average='binary'), '测试集召回率', recall_score(Y_test, Y_test_pred, average='binary'))
print('训练集F1-score:', f1_score(Y_train, Y_train_pred), '测试集F1-score', f1_score(Y_test, Y_test_pred))
fpr, tpr, _ = roc_curve(Y_train, clf.predict_proba(X_train)[:, 1])
roc_auc = auc(fpr, tpr)
plt.figure()
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], 'k--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('train ROC Curve')
plt.legend(loc="lower right")
plt.show()
fpr, tpr, _ = roc_curve(Y_test, clf.predict_proba(X_test)[:, 1])
roc_auc = auc(fpr, tpr)
plt.figure()
plt.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], 'k--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('test ROC Curve')
plt.legend(loc="lower right")
plt.show()
2.支持向量机
3.决策树
4.随机森林
5.xgboost