【问题标题】:Creating a lift chart in R在 R 中创建提升图
【发布时间】:2016-07-08 13:33:48
【问题描述】:

假设我有以下数据框,其中包含与他们相关的分数的人:

Score | hasDefaulted
10    | 0
13    | 0
15    | 1
17    | 0
...

我想在 R 中制作一个提升图,首先按分数对总体进行排序,然后在 X 轴上显示总体百分比,在 Y 轴上显示默认百分比。我找不到一个可以让我控制执行此操作的好包。我已经探索了Package LiftPackage Gains,但我无法弄清楚如何对它们进行足够的控制来执行我上面描述的操作。例如,当我尝试使用 Package Lift 时,

plotLift(sort(dataFrame$Score, decreasing=FALSE), dataFrame$hasDefaulted)

我得到了一些奇怪的情节:

但考虑到我的愿望,该图最终应该看起来像一个累积密度函数。

有人可以告诉我如何正确使用这些软件包,或者指导我使用符合要求的软件包吗?提前致谢。

【问题讨论】:

    标签: r graph visualization


    【解决方案1】:

    我总是尝试构建自己的代码,而不是尝试不太灵活的东西。

    以下是我认为您可以解决问题的方法:

    # Creating the data frame
    df <- data.frame("Score"=runif(100,1,100),
                     "hasDefaulted"=round(runif(100,0,1),0))
    
    # Ordering the dataset
    df <- df[order(df$Score),]
    
    # Creating the cumulative density
    df$cumden <- cumsum(df$hasDefaulted)/sum(df$hasDefaulted)
    
    # Creating the % of population
    df$perpop <- (seq(nrow(df))/nrow(df))*100
    
    # Ploting
    plot(df$perpop,df$cumden,type="l",xlab="% of Population",ylab="% of Default's")
    

    这是你想要的吗?

    【讨论】:

    • 是的,完美。谢谢。
    • 应该是order(decreasing = TRUE)
    【解决方案2】:

    我认为您正在搜索增益图,而不是提升图。我注意到它们之间存在一些混淆。您可以参考Lift Charts 了解更多信息。

    require(ROCR)
    data(ROCR.simple)
    pred <- prediction(ROCR.simple$predictions, ROCR.simple$labels)
    
    gain <- performance(pred, "tpr", "rpp")
    plot(gain, main = "Gain Chart")
    

    【讨论】:

      猜你喜欢
      • 2015-07-14
      • 2012-07-22
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 2015-06-22
      • 2021-08-22
      • 2019-10-17
      • 2021-09-20
      相关资源
      最近更新 更多