- 一、数据预处理
- 1.1 训练集和测试集的划分
- 二、评价指标介绍
- 2.1 TP,TN,FP,FN
- 2.2 混淆矩阵
- 2.3 准确率与精准率
- 2.4 召回率
- 2.5 F分数
- 2.6 ROC曲线和AUC指标
心脏数据集下载地址如下:https://download.csdn.net/download/didi_ya/87451172。本文所用数据集与前文数据集介绍中描述数据集均不一致,但属性方法类似,故以本数据集作为举例说明。实际以你的数据集为准。
一、数据预处理 1.1 训练集和测试集的划分从303份数据中随机抽取80%作为训练集,20%作为测试集。即242份进行训练,61份进行测试。
from sklearn.model_selection import train_test_split
predictors = data.drop("target",axis=1)
target = data["target"]
X_train,X_test,Y_train,Y_test = train_test_split(predictors,target,test_size=0.20,random_state=0)
print("Training features have {0} records and Testing features have {1} records.".\
format(X_train.shape[0], X_test.shape[0]))
可以查看训练集和测试集的形状:
- True Positive(TP):本来是正样例,分类成正样例;
- True Negative(TN):本来是负样例,分类成负样例;
- False Positive (FP):本来是负样例,分类成正样例;
- False Negative(FN):本来是正样例,分类成负样例;
正确预测数与预测总数之间的比例,即所有预测正确的比例 a c c = T P + T N T P + T N + F P + F N acc = \frac{TP + TN}{TP + TN + FP + FN} acc=TP+TN+FP+FNTP+TN
精准率:被预测为正样本里实际为正样本的比例 P r e c i s i o n ( p ) = T P T P + F P Precision (p) = \frac{TP}{TP + FP} Precision(p)=TP+FPTP
2.4 召回率召回率:所有正样本里被预测正确的比例,公式为:
r
e
c
a
l
l
=
T
P
T
P
+
F
N
recall = \frac{TP}{TP + FN}
recall=TP+FNTP
F分数被称为精确性和召回率的调和平均值,其公式为: F = 1 1 2 ( 1 p + 1 r ) = 2 p r p + r F = \frac{1}{\frac{1}{2}(\frac{1}{p}+\frac{1}{r})} = \frac{2pr}{p+r} F=21(p1+r1)1=p+r2pr
2.6 ROC曲线和AUC指标整个项目的主要目标是以最高的准确性预测心脏病的发生。为了实现这一点,我们将测试几种分类算法。接下来将分别介绍心脏病预测的几种机器学习算法及其实现过程。