mod中包含的所有离散水平的H2O变量重要性

2024-04-20 11:03:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一个给定模型的可变重要性的角度提取各个类别的级别。在下面提供的数据集中有几个分类预测器,但是当我计算特性重要性时,只显示“整列”的重要性,而不是将重要性分解为C1_level0: importance和{}。我怎样才能看到这些列的重要性,就像我手动对这些离散的级别进行热编码时所看到的一样?在

>>> import h2o
>>> h2o.init()
Checking whether there is an H2O instance running at http://localhost:54321. connected.
--------------------------  ----------------------------------------
H2O cluster uptime:         48 mins 24 secs
H2O cluster timezone:       America/Chicago
H2O data parsing timezone:  UTC
H2O cluster version:        3.20.0.5
H2O cluster version age:    6 days
H2O cluster name:           H2O_from_python_user_9znggm
H2O cluster total nodes:    1
H2O cluster free memory:    1.464 Gb
H2O cluster total cores:    8
H2O cluster allowed cores:  8
H2O cluster status:         locked, healthy
H2O connection url:         http://localhost:54321
H2O connection proxy:
H2O internal security:      False
H2O API Extensions:         XGBoost, Algos, AutoML, Core V3, Core V4
Python version:             3.6.5 final
--------------------------  ----------------------------------------
>>>
>>> df = h2o.create_frame(categorical_fraction=0.5)
Create Frame progress: |██████████████████████████████████████████████████████████████████████| 100%
>>>
>>> model = H2OGradientBoostingEstimator()
>>> model.train(x=[c for c in df.columns if c != 'C1'], y='C1', training_frame=df)
gbm Model Build progress: |███████████████████████████████████████████████████████████████████| 100%
>>>
>>> model.varimp(True)
  variable  relative_importance  scaled_importance  percentage
0       C3          4448.583984           1.000000    0.255125
1       C9          4424.002930           0.994474    0.253715
2       C6          4273.684082           0.960684    0.245094
3       C4          4249.320312           0.955207    0.243697
4      C10            12.800615           0.002877    0.000734
5       C7            12.022744           0.002703    0.000689
6       C8             8.271964           0.001859    0.000474
7       C2             4.649746           0.001045    0.000267
8       C5             3.567022           0.000802    0.000205

Tags: localhosthttpdfmodelversion级别cores重要性
2条回答

这是你在使用model.std_coef_plot()时可以用H2O的GLM得到的东西,但是model.varimp(True)的预期行为是给你每个特征的重要性,而不是单个级别的重要性。在

如果你想了解个体水平和结果之间的关系,我建议使用H2O的部分相关图(文档herehere)。在

您需要的是partial dependency plots,您可以从pdp_data = model.partial_plot(data=fi_data, cols=variable_list, plot=False, nbins=30,plot_stddev = False )命令获得它

在这个数据表中,您拥有所需的信息,因此经过一些处理后,您可以为模型中的每个变量打印一个类似这样的图形。在

enter image description here

红点代表Y的平均值,点代表每个等级的prediction

相关问题 更多 >