H2O增益/升降台



我的问题是关于H2O增益/升力表。据我所知,响应率是属于组/箱的所有事件的比例。如何获取落入垃圾箱1、垃圾箱2等的数据我想看看每个组/箱中的关键变量相对于响应率的情况

最好能完整描述增益/升力表中的测量值是如何计算的(公式(

增益和升力图的方程式可在此文件中找到:https://github.com/h2oai/h2o-3/blob/master/h2o-core/src/main/java/hex/GainsLift.java

显示:

E=事件总数

N=观测次数

G=组数(10表示十分位数或20表示十分位数(

p=事件观察的总体比例(p=E/N(

ei=第i组中的事件数,i=1,2,。。。,G

ni=第i组中的观察次数

pi=第i组中作为事件的观察结果的比例(pi=ei/ni(

组:硬编码为16;如果存在少于16个唯一概率值,则组的数量减少到唯一分位数阈值的数量。

累积数据分数=sum_n_i/n

lower_threshold=由分位数仓设置

升力=pi/p

accumulate_lift=(∑iei/∑ini(/p

response_rate=100*pi

累计响应率=100*∑iei/∑ini

capture_rate=100*ei/E

累计捕获速率=100*∑iei/E

增益=100*(升力-1(

accumulate_gain=100*(sum_lift-1(

average_response_rate=E/N

下面是使用H2O-3 Python API的示例演练:

import h2o
import pandas as pd
import numpy as np
from h2o.estimators.gbm import H2OGradientBoostingEstimator
h2o.init()
# import and split the dataset
cars = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/junit/cars_20mpg.csv")
convert response column to a factor
cars["economy_20mpg"] = cars["economy_20mpg"].asfactor()
# set the predictor names and the response column name
predictors = ["displacement","power","weight","acceleration","year"]
response = "economy_20mpg"
# split dataset
train, valid = cars.split_frame(ratios=[.7],seed=1234)
# Initialize and train a GBM
cars_gbm = H2OGradientBoostingEstimator(seed = 1234)
cars_gbm.train(x = predictors, y = response, training_frame = train, validation_frame=valid) 
# Generate Gains and Lift Table
# documentation on this parameter can be found here:
# http://docs.h2o.ai/h2o/latest-stable/h2o-py/docs/model_categories.html?#h2o.model.H2OBinomialModel.gains_lift
gainslift = cars_gbm.gains_lift(train=False, valid=True, xval=False)

表概述

正如预期的那样,我们有16个组,因为这是硬编码的默认行为。

  • 累积数据分数
  • 阈值概率值
  • 响应率(观察结果在一组中所占的比例(
  • 累计响应率
  • 事件捕获率
  • 累积捕获率
  • 增益(事件的总体比例与观察到的组中事件的观察比例之间的百分比差异(
  • 累计收益

如果我只想要小数怎么办

默认情况下,增益和升力表为您提供的不仅仅是十分位数或ventile,这意味着您可以更灵活地选择感兴趣的百分位数。

让我们以得到十分位数为例。在这个例子中,我们看到我们可以从第6行开始,跳过第7行,然后取其余的行来获得我们的十分位数。

由于增益和提升表返回TwoDimTable,我们可以使用我们的组号作为选择指数。

# show gains and lift table data type
print('H2O Gains Lift Table is of type: ', type(gainslift))
H2O Gains Lift Table is of type:  <class 'h2o.two_dim_table.H2OTwoDimTable'>
# since this table is small and for ease of use let's covert to a pandas dataframe
pandas_gl = gainslift.as_data_frame()
pandas_gl.set_index('group')

gainslift_deciles = pandas_gl.iloc[pd.np.r_[5,7:16], :]
gainslift_deciles

如果我只想要Ventiles怎么办这些也可以选择,所以让我们下一步来做。

gainslift_ventiles = pandas_gl.iloc[pd.np.r_[7,9,11,13,15], :]
gainslift_ventiles

相关内容

  • 没有找到相关文章

最新更新