【问题标题】:Create partial dependence plot using H2O in spark?在火花中使用 H2O 创建部分依赖图?
【发布时间】:2019-03-14 21:37:19
【问题描述】:

我正在尝试使用以下代码创建部分依赖图

rf_pdp = rf_model .partial_plot(data = htest, cols = ['var1', 'var2', 'var3'], plot=True)
rf_pdp 

它运行没有错误,并为每个变量生成一个带有 mean_response、stddev_response、std_error_mean_response 的表。但是没有情节。那是因为我在 Spark 环境中运行代码吗?

我在 Qubole 下使用 Sparkling Water 运行 H2O 集群版本:3.20.0.7

%pyspark
# start h2o
from pysparkling import *
import h2o
hc = H2OContext.getOrCreate(spark)

# clean up the cluster just in case
h2o.remove_all()

# import data
iris = h2o.import_file("http://h2o-public-test-data.s3.amazonaws.com/smalldata/iris/iris_wheader.csv")

# convert response column to a factor
iris['class'] = iris['class'].asfactor()

# set the predictor names
predictors = iris.columns[:-1]

# split into train and validation sets
train, valid = iris.split_frame(ratios = [.8], seed = 1234)

# random forest
from h2o.estimators.random_forest import H2ORandomForestEstimator

rf_model = H2ORandomForestEstimator(
                score_each_iteration=True,
                score_tree_interval = 5,
                max_runtime_secs = 1800,
                stopping_metric = 'logloss', 
                stopping_tolerance=0.001,
                stopping_rounds= 3,
                sample_rate = 0.7, 
                col_sample_rate_per_tree = 0.7,                
                ntrees=1000,
                balance_classes=False,
                seed=456,
                nfolds=5
                )

rf_model.train(x=predictors, y ='class', training_frame=train)

# plot
rf_model.plot()

【问题讨论】:

  • 请提供有关您的环境的详细信息(您使用的是什么版本的 H2O-3、matplotlib、Sparkling-Water 和 Spark),还请提供完全可重现的代码 sn-p,以便我尝试重现您的问题(您可以使用 iris 数据集,例如此链接包含指向该数据集的 s3 链接,尽管它使用的是 kmeans,因此您必须更改 docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/…。)
  • 感谢您的建议。我刚刚添加了

标签: h2o sparkling-water


【解决方案1】:

这是绘图的解决方案

import matplotlib
import matplotlib.pyplot as plt
import io

matplotlib.use('agg')

def show(p):
    img = io.StringIO()
    p.savefig(img, format='svg')
    img.seek(0)
    print("%html <div>" + img.getvalue() + "</div>")

plt.clf()
rf_model.partial_plot(data = htest, cols = plot_varimp_df["variable"].tolist(), nbins=2, plot=True)
show(plt)

【讨论】:

    猜你喜欢
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-24
    • 2014-12-19
    • 2023-04-04
    • 2018-08-09
    • 2020-11-23
    相关资源
    最近更新 更多