数据分离
部分用于训练,部分用于新数据的结果预测。
1.把数据分为两部分
2.使用训练集数据进行模型训练
3.使用测试集数据进行预测,更有效地评估模型对于新数据的预测表现
# 数据分离
from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=4,test_size=0.4)
混淆矩阵confusion matrix
误差矩阵,用于衡量分类算法的准确度
True Positive(TP):样本的真实类别是正类,并且模型识别的结果也是正类。(实际为1,预测为1)
False Negative(FN):样本的真实类别是正类,但是模型将其识别为负类。(实际为1,预测为0)
False Positive(FP):样本的真实类别是负类,但是模型将其识别为正类。(实际为0,预测为1)
True Negative(TN):样本的真实类别是负类,并且模型将其识别为负类。(实际为0,预测为0)
各指标应用场景
垃圾邮件:更关注精确率和召回率
异常交易检测:关注特异度
# 计算混淆矩阵
from sklearn.metrics import confusion_matrix
cm=confusion_matrix(y_test,y_test_predict)
TP=cm[1,1]
TN=cm[0,0]
FP=cm[0,1]
FN=cm[1,0]
accuracy=(TP+TN)/(TP+TN+FP+FN)
print('accuracy is:',accuracy)
recall=TP/(TP+FN)
print('recall is:',recall)
specificity=TN/(TN+FP)
print('specificity is:',specificity)
precision=TP/(TP+FP)
print('precision is:',precision)
f1=2*precision*recall/(precision+recall)
print('f1 is:',f1)