【发布时间】:2019-05-20 17:41:43
【问题描述】:
我想从给定模型的可变重要性角度提取各个分类级别。下面提供的数据集中有几个分类预测变量,但是当我去计算特征重要性时,只显示“整列”的重要性,而不是将重要性分解为 C1_level0: importance 和 C1_level1: 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
【问题讨论】: