weixin_62936205 2022-12-28 10:09 采纳率: 100%
浏览 13
已结题

r语言分类器性能指标

rm(list = ls())
library(dplyr)

新建两列,分别是sepal的长款比(sepal_ratio)和

petal的长宽比(petal_ratio)

df <-read.csv("/data/bigfiles/iris.csv")

我们可以发现Iris-setosa的sepal_ratio值最小,所以可以通过设置一个

sepal_ratio的阈值来把Iris-setosa辨识出来

也就是说,我们此时有一个极简分类器(决策树桩)

只要sepal_ratio小于这个阈值,就将样本预测为Iris-setosa

设置阈值为1.9

thres <- 1.9

使用filter,nrow函数,求整个样本集中的Iris-setosa的个数

n_setosa_all <- df %>%

根据这个阈值thres正确识别出来的Iris-setosa的个数

正确识别的意思就是,它真的是Iris-setosa,并且模型也认为它是Iris-setosa

所谓的模型就是sepal_ratio小于thres即预测为Iris-setosa

n_setosa_hit <-
df %>%

求True positive rate (TPR)

TPR就是检测出来的真阳性(这里的阳就是Iris-setosa)样本数除以

所有真实阳性样本数

tpr <-

求我们根据这个阈值thres错误识别为Iris-setosa的个数(假阳性个数)

n_false_alarm <- df %>%

求False positive rate (FPR)

FPR的含义是检测出来的假阳性样本数除以所有真实阴性样本数。

fpr <-
print(paste(round(tpr, 2), round(fpr, 2)))

  • 写回答

1条回答 默认 最新

  • ShowMeAI 2022-12-28 10:24
    关注

    完整的代码如下,望采纳

    # 清空环境中的对象列表
    rm(list = ls())
    
    # 加载 dplyr 包
    library(dplyr)
    
    # 读取 iris 数据集
    df <- read.csv("/data/bigfiles/iris.csv")
    
    # 计算花萼和花瓣的长宽比
    df <- df %>%
      # 在数据集中添加两列:花萼长宽比和花瓣长宽比
      mutate(sepal_ratio = Sepal.Length / Sepal.Width,
             petal_ratio = Petal.Length / Petal.Width)
    
    # 设置花萼长宽比的阈值
    thres <- 1.9
    
    # 计算数据集中 Iris-setosa 的个数
    n_setosa_all <- df %>%
      # 筛选出种类为 Iris-setosa 的样本
      filter(Species == "Iris-setosa") %>%
      # 计算样本数
      nrow
    
    # 计算正确识别的 Iris-setosa 的个数
    n_setosa_hit <- df %>%
      # 筛选出种类为 Iris-setosa 且花萼长宽比小于阈值的样本
      filter(Species == "Iris-setosa", sepal_ratio < thres) %>%
      # 计算样本数
      nrow
    
    # 计算真阳性率
    tpr <- n_setosa_hit / n_setosa_all
    
    # 计算假阳性的个数
    n_false_alarm <- df %>%
      # 筛选出种类不是 Iris-setosa 且花萼长宽比小于阈值的样本
      filter(Species != "Iris-setosa", sepal_ratio < thres) %>%
      # 计算样本数
      nrow
    
    # 计算假阳性率
    fpr <- n_false_alarm / (nrow(df) - n_setosa_all)
    
    # 输出结果
    print(paste(round(tpr, 2), round(fpr, 2)))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月5日
  • 已采纳回答 12月28日
  • 创建了问题 12月28日

悬赏问题

  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程