1 任务
- 记录7个模型(逻辑回归、SVM、决策树、随机森林、GBDT、XGBoost和LightGBM)关于accuracy、precision,recall和F1-score、auc值的评分表格,并画出ROC曲线。
2 遇到的问题
- 对ROC曲线和AUC值的解释
ROC曲线的线下面积,即auc值显然是越大,分类器性能越好. 同时注意,计算ROC曲线时,并不是使用分类结果,而是使用置信度.
画ROC曲线时,依次将所有样本的置信度作为阈值,然后得到TPR(True Positive Rate, True positive/Actual positive )和FPR(False Positive Rate, False positive / Actual negative), 然后作图.
3 不同模型的多种指标
模型 |
Accuracy |
Precision |
Recall |
F1-Score |
ROC_AUC |
Logistic Regression |
0.788 |
0.661 |
0.320 |
0.431 |
0.766 |
决策树 |
0.685 |
0.383 |
0.409 |
0.396 |
0.594 |
LinearSVC |
0.782 |
0.652 |
0.287 |
0.398 |
0.766 |
随机森林 |
0.782 |
0.682 |
0.251 |
0.366 |
0.749 |
GBDT |
0.781 |
0.612 |
0.446 |
0.446 |
0.764 |
XGBoost |
0.784 |
0.624 |
0356 |
0.454 |
0.771 |
LightGBM |
0.772 |
0.578 |
0.351 |
0.437 |
0.761 |
模型 |
ROC曲线 |
Logistic Regression |
 |
决策树 |
 |
LinearSVC |
 |
随机森林 |
 |
GBDT |
 |
XGBoost |
 |
LightGBM |
 |
4 完整代码和注释
from __future__ import print_function
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import precision_score,roc_auc_score
from sklearn.metrics import accuracy_score
from sklearn.metrics import precision_score
from sklearn