如何得到决策树的ROC曲线?

2024-06-18

我正在努力寻找ROC曲线 and AUROC曲线对于决策树。我的代码是这样的

clf.fit(x,y)
y_score = clf.fit(x,y).decision_function(test[col])
pred = clf.predict_proba(test[col])
print(sklearn.metrics.roc_auc_score(actual,y_score))
fpr,tpr,thre = sklearn.metrics.roc_curve(actual,y_score)

output:

 Error()
'DecisionTreeClassifier' object has no attribute 'decision_function'

基本上,在查找时会出现错误y_score。请解释一下是什么y_score以及如何解决这个问题?


首先,DecisionTreeClassifier has no属性decision_function.

如果我从你的代码结构猜测,你看到了这个example http://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html

在这种情况下,分类器不是决策树,而是支持 Decision_function 方法的 OneVsRestClassifier。

您可以看到可用的属性DecisionTreeClassifier here http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html

一种可能的方法是二值化类进而计算每个类别的 auc:

Example:

from sklearn import datasets
from sklearn.metrics import roc_curve, auc
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import label_binarize
from sklearn.tree import DecisionTreeClassifier
from scipy import interp


iris = datasets.load_iris()
X = iris.data
y = iris.target

y = label_binarize(y, classes=[0, 1, 2])
n_classes = y.shape[1]

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=.5, random_state=0)

classifier = DecisionTreeClassifier()

y_score = classifier.fit(X_train, y_train).predict(X_test)

fpr = dict()
tpr = dict()
roc_auc = dict()
for i in range(n_classes):
    fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_score[:, i])
    roc_auc[i] = auc(fpr[i], tpr[i])

# Compute micro-average ROC curve and ROC area
fpr["micro"], tpr["micro"], _ = roc_curve(y_test.ravel(), y_score.ravel())
roc_auc["micro"] = auc(fpr["micro"], tpr["micro"])

#ROC curve for a specific class here for the class 2
roc_auc[2]

Result

0.94852941176470573
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何得到决策树的ROC曲线? 的相关文章

随机推荐

  • Webpack 4、postcss-loader 和 autoprefixer 插件

    我在尝试让自动前缀器工作时感到非常沮丧 这是我的webpack config js const HtmlWebPackPlugin require html webpack plugin const MiniCssExtractPlugin
  • 为什么 Dijkstra 算法使用减密钥?

    Dijkstra 教给我的算法如下 while pqueue is not empty distance node pqueue delete min if node has been visited continue else mark
  • 阻止UAC虚拟化?

    我有一个 VB6 应用程序 我已经销售了 12 年多了 有时 我的用户很难让应用程序运行 数据写入将进入 My Documents 因此除了安装文件 EXE 等 之外什么都不会进入 C Program Files 或 C Program F
  • 为什么 Tomcat 缺少内置的速率限制过滤器?

    从几个来源 1 https serverfault com questions 177742 2 http tomcat 10 x6 nabble com tomcat bandwidth limiter transfer rate lim
  • 将 ActionBarSherlock 与新的 SupportMapFragment 结合使用

    我正在考虑使用 ActionbarSherlock 但有一个查询阻碍了我 所以我的应用程序需要完全向后兼容 API Level 7 我需要在我的应用程序中实现新的 Google 地图 为此我需要使用 SupportMapFragment 类
  • 如何在 Flask 中调用不同蓝图的方法?

    我有一个具有多个蓝图模块的应用程序 我想调用一个方法 路径 该方法通常会从不同蓝图的路径中返回视图或渲染模板 如何才能正确完成此操作 谢谢 视图只是函数 导入该函数并直接调用它 传入它可能定义的任何路由参数 蓝图的作用是更轻松地在公共前缀下
  • 为什么 Github API 只返回前 100 个监视的存储库?

    我正在 Github 上查看 392 个存储库 然而 Github API 只返回 100 有人知道为什么吗 https github com api v2 json repos watched trivektor https github
  • 将 `new Date ()` 存储在 JSON 对象中

    我有以下字段验证器对象 type date min new Date 我希望我可以存储new Date 作为 JSON 中的表达式 解析时会执行 保存时间戳 type date min new Date getTime 然后你再读一遍 va
  • 向无锁队列添加阻塞函数

    我有一个基于循环缓冲区的无锁多生产者 单消费者队列 到目前为止 它只有非阻塞push back and pop front 来电 现在我想添加这些调用的阻塞版本 但我想尽量减少这对使用非阻塞版本的代码性能的影响 也就是说 它不应该将它们变成
  • 用反射“铸造”

    考虑以下示例代码 class SampleClass public long SomeProperty get set public void SetValue SampleClass instance decimal value valu
  • ABPeoplePickerNavigationController - 在不使用私有方法/属性的情况下删除“取消”按钮?

    我正在使用 ABPeoplePickerNavigationController 它是 UINavigationController 的子类 在我使用它的上下文中 右侧的默认导航栏按钮 取消 没有任何意义 我找不到禁用或隐藏它的方法 并且无
  • 隐藏特定用户的报告

    我做了一个向下钻取报告包含 5子报告 所有这些都使用连接超级链接部分 我希望用户只查看主要内容向下钻取报告 我的意思是第一个标签向下钻取 如果我设置仅执行的许可ROLE USER 该特定报告不起作用 抛出类似错误Access Denied
  • 附加到已经运行的 JVM

    有没有办法附加到已经运行的 JVM 例如 在 JNI 中您可以使用JNI CreateJavaVM创建一个虚拟机并运行一个 jar 并检查它的所有类 但是 如果 jar 已经在运行 我找不到附加到其 JVM 并与其类通信或获取其的方法env
  • Jetty - 找不到 Servlet

    我是 Servlet 新手 想通过使用 Eclipse 的 Jetty 插件来调用一个简单的 Servlet 我可以调用 index html 但是当尝试访问 Servlet 时 我得到 HTTP 错误 404访问 ProjectServl
  • 如何在vb.net中实现事务方式?

    我使用 VB net 200 开发一个连接到 MS Access 数据库的应用程序 我使用 TableAdapter 和 Dataset 连接到 Access DB 文件 我需要实现一个简单的事务方法 提交 回滚 来保存到数据库 有没有一种
  • libstdc++新标准库功能支持表

    是否有一个表格指定新标准 11 和 14 支持previousGNU libstdc 的版本 我找到了这样的表compiler https gcc gnu org projects cxx0x html并为当前的库状态 https gcc
  • 是否可以将一个 CSS 类的优先级设置为高于另一个 CSS 类的优先级?

    假设我有一个 div 它使用两个 css 类 这两个类都使用文本对齐 但一个居中 另一个右对齐 是否可以指定一个类别优先于另一个类别的内容 指定更具体的选择器 例如在其前面添加 ID 前缀或在类前面添加节点名 将其分配在其他班级之后 如果两
  • 在 JBoss EAP 5.1 中为特定 MDB 配置 maxSession 属性

    如何使 MDB 的 maxSession 值可由用户配置 有一个 MDB 侦听来自特定队列的消息 它被定义为注释 ActivationConfigProperty propertyName maxSession propertyValue
  • 如何在 grails 域类中设置默认值

    有没有办法为域类属性设置默认值 我有一堂课叫PayMethod 我想要的地方name属性默认为 Cash 我在创建此表时想要这个默认值 这可以使用约束吗 package abc import util UserUtil import emb
  • 如何得到决策树的ROC曲线?

    我正在努力寻找ROC曲线 and AUROC曲线对于决策树 我的代码是这样的 clf fit x y y score clf fit x y decision function test col pred clf predict proba