python机器学习-sklearn挖掘乳腺癌细胞(五)

 python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制)

网易云观看地址

https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share

 

 

 模型验证

分类器好坏验证,模型建立好后,不是万事大吉,需要进行crossvalidation, AUC,GINi,KS,GainTable检验

KS可以检测模型区分好坏客户能力,如果有一个分数段区分能力强,KS会大于0.2

AUC检测模型分类器效果,分类器敏感度越高,AUC越大,一般AUC大于0.7,分类器准确性就不错。

Gain Table可以检测模型收益情况和排序能力

 

 模型验证中数据要拆分为train(训练),test(测试),oot(跨时间)

train和test是同一个时间段,一般三七开,train占百分之70,test占百分之30

oot的时间段在train,test后面,用于测试未来数据

下图是模型验证的可视化:

包括ROC,提升图,KS,PSI四个指标

 

由于时间关系,我们只详细说明一下ROC/AUC检验

auc分数有两种计算方式,第一种是根据目标变量y_true,预测分数/预测概率y_socres,通过roc_auc_score(y_true, y_scores)计算AUC

 

第二种方法是通过fpr,tpr,通过auc(fpr,tpr)来计算AUC

excel 绘图ROC

 

ROC的前置条件是分数越高,阳性率越高,但风控模型中,有的分数越低,坏客户概率越高,例如蜜罐分数,因此ROC绘制出来是反的,需要对阳性标签反转pos_label=0 

由于分数越低,坏客户概率越高,画出来的ROC曲线是反转的,需要纠正

 

AUC/ROC检验代码

# -*- coding: utf-8 -*-
"""
Created on Thu Apr 12 22:31:31 2018
 
@author: 231469242@qq.com
"""
import numpy as np
from sklearn import metrics
from sklearn.metrics import roc_curve, auc,roc_auc_score  ###计算roc和auc
 
import pandas as pd
from sklearn.datasets import load_breast_cancer
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import mglearn
import matplotlib.pyplot as plt
 
cancer=load_breast_cancer()
 
#mglearn.plots.plot_knn_classification(n_neighbors=3)
X_train,x_test,y_train,y_test=train_test_split(cancer.data,cancer.target,stratify=cancer.target,random_state=42)
 
knn=KNeighborsClassifier()
knn.fit(X_train,y_train)
print("accuracy on the training subset:{:.3f}".format(knn.score(X_train,y_train)))
print("accuracy on the test subset:{:.3f}".format(knn.score(x_test,y_test)))
 
#Auc验证,数据采用测试集数据
#癌症的概率
proba_cancer=knn.predict_proba(x_test)
y_scores=pd.DataFrame(proba_cancer)[1]
y_scores=np.array(y_scores)
y_true=y_test
#auc分数
#auc分数有两种计算方式,第一种是根据目标变量y_true,预测分数/预测概率y_socres,通过roc_auc_score(y_true, y_scores)计算AUC
AUC=roc_auc_score(y_true, y_scores)
print("AUC:",AUC)
#auc第二种方法是通过fpr,tpr,通过auc(fpr,tpr)来计算AUC
fpr, tpr, thresholds = metrics.roc_curve(y_true, y_scores, pos_label=1)
AUC1 = auc(fpr,tpr) ###计算auc的值 
 
#print("fpr:",fpr)
#print("tpr:",tpr)
#print("thresholds:",thresholds)
print("AUC1:",AUC1)
 
if AUC >=0.7:
    print("good classifier")
if 0.7>AUC>0.6:
    print("not very good classifier")
if 0.6>=AUC>0.5:
    print("useless classifier")
if 0.5>=AUC:
    print("bad classifier,with sorting problems")
     
 
#绘制ROC曲线
#画对角线 
plt.plot([0, 1], [0, 1], '--', color=(0.6, 0.6, 0.6), label='Diagonal line') 
plt.plot(fpr,tpr,label='ROC curve (area = %0.2f)' % AUC) 
plt.title('ROC curve')  
plt.legend(loc="lower right")   

  

扫二维码,关注博主主页,学习更多Python知识

https://m.study.163.com/user/1135726305.htm?utm_campaign=share&utm_medium=iphoneShare&utm_source=weixin&utm_u=1015941113

 

作者介绍 Toby,持牌照金融公司担任模型验证专家,国内最大医药数据中心数据挖掘部门负责人!和重庆儿科医院,中科院教授,赛柏蓝保持慢病数据挖掘项目合作!管理过欧美日中印巴西等国外药典数据库,马丁代尔数据库,FDA溶解度数据库,临床试验数据库,WHO药物预警等数据库。课程概述 此课程讲述如何运用pythonsklearn快速建立机器学习模型。课程结合美国威斯康辛乳腺癌细胞临床数据,实操演练,建立癌细胞预测分类器。课程讲述十大经典机器学习算法:逻辑回归,支持向量,KNN,神经网络,随机森林,xgboost,lightGBM,catboost。这些算法模型可以应用于各个领域数据。本视频系列通俗易懂,课程针对学生和科研机构,python爱好者。本视频教程系列有完整python代码,观众看后可以下载实际操作。了解癌症肿瘤基本常识,建立健康生活方式,预防癌症,减轻癌症治疗成本。课程背景 警钟长鸣!癌症离我们远吗?《我不是药神》催人泪下,笔者在此揭露真相,癌症不是小概率疾病,癌症就在身边。癌症早期发现和控制可极大延长寿命和减少治疗费用。笔者下载美国威斯康辛临床数据,运用python sklearn建立乳腺癌分类器模型,可预测正常细胞和癌细胞。我国医院重视治疗,但忽略疾病预防教育。通过我多年机器学习数据挖掘,我发现疾病可防可控,通过自身努力,我们可以提前发现疾病早期症状或扼杀疾病于摇篮。希望此课程让广大医疗科研工作者认识疾病预防教育重要性。  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值