博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
COMP7404 Machine Learing——ROC
阅读量:2135 次
发布时间:2019-04-30

本文共 2006 字,大约阅读时间需要 6 分钟。

ROC

import pandas as pdimport numpy as npdf = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wdbc.data', header=None)from sklearn.preprocessing import LabelEncoderfrom sklearn.model_selection import train_test_splitX = df.loc[:, 2:].valuesy = df.loc[:, 1].valuesle = LabelEncoder()y = le.fit_transform(y)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20, stratify=y, random_state=1)from sklearn.metrics import roc_curve, aucfrom sklearn.preprocessing import StandardScalerfrom sklearn.decomposition import PCAfrom sklearn.linear_model import LogisticRegressionfrom sklearn.pipeline import make_pipelinefrom sklearn.model_selection import StratifiedKFoldimport matplotlib.pyplot as pltpipe_lr = make_pipeline(StandardScaler(), PCA(n_components=2),                         LogisticRegression(penalty='l2', random_state=1, C=100.0, solver='liblinear'))X_train2 = X_train[:, [4, 14]] cv = list(StratifiedKFold(n_splits=3, random_state=1, shuffle=True).split(X_train, y_train))fig = plt.figure(figsize=(7, 5))mean_tpr = 0.0mean_fpr = np.linspace(0, 1, 100)all_tpr = []for i, (train, test) in enumerate(cv):    probas = pipe_lr.fit(X_train2[train], y_train[train]).predict_proba(X_train2[test])    fpr, tpr, thresholds = roc_curve(y_train[test], probas[:, 1], pos_label=1)    mean_tpr += np.interp(mean_fpr, fpr, tpr)    mean_tpr[0] = 0.0    roc_auc = auc(fpr, tpr)    plt.plot(fpr, tpr, label='ROC fold %d (area = %0.2f)' % (i+1, roc_auc))plt.plot([0, 1], [0, 1], linestyle='--', color=(0.6, 0.6, 0.6), label='random guessing')mean_tpr /= len(cv)mean_tpr[-1] = 1.0mean_auc = auc(mean_fpr, mean_tpr)plt.plot(mean_fpr, mean_tpr, 'k--', label='mean ROC (area = %0.2f)' % mean_auc, lw=2)plt.plot([0, 0, 1], [0, 1, 1], linestyle=':', color='black', label='perfect performance')plt.xlim([-0.05, 1.05])plt.ylim([-0.05, 1.05])plt.xlabel('false positive rate')plt.ylabel('true positive rate')plt.legend(loc="lower right")plt.tight_layout()plt.show()

 

 

 

 

 

 

 

转载地址:http://rmygf.baihongyu.com/

你可能感兴趣的文章
分析C语言的声明
查看>>
TCP为什么是三次握手,为什么不是两次或者四次 && TCP四次挥手
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
逆序对的数量(递归+归并思想)
查看>>
数的范围(二分查找上下界)
查看>>
算法导论阅读顺序
查看>>
Windows程序设计:直线绘制
查看>>
linux之CentOS下文件解压方式
查看>>
Django字段的创建并连接MYSQL
查看>>
div标签布局的使用
查看>>
HTML中表格的使用
查看>>
(模板 重要)Tarjan算法解决LCA问题(PAT 1151 LCA in a Binary Tree)
查看>>