Как получить Н2о точность полиномиальной модели? - PullRequest
0 голосов
/ 13 декабря 2018

Когда я обращаюсь к dl_model.show (), он показывает мне всю информацию, но не точность модели, а также о производительности данных проверки, он также не показывает AUC.когда я выполнял эту команду, я получаю эту ошибку

print('AUC', dl_model.auc(valid = False))


   KeyError                    Traceback (most recent call last)

<ipython-input-655-a4a2f0946c88> in <module>()
----> 1 print('AUC', dl_model.auc())

~\Anaconda3\lib\site-packages\h2o\model\model_base.py in auc(self, train, valid, xval)
    682         tm = ModelBase._get_metrics(self, train, valid, xval)
    683         m = {}
--> 684         for k, v in viewitems(tm): m[k] = None if v is None else v.auc()
    685         return list(m.values())[0] if len(m) == 1 else m
    686 

~\Anaconda3\lib\site-packages\h2o\model\metrics_base.py in auc(self)
    165     def auc(self):
    166         """The AUC for this set of metrics."""
--> 167         return self._metric_json['AUC']
    168 
    169     def pr_auc(self):

KeyError: 'auc'

Спасибо

1 Ответ

0 голосов
/ 13 декабря 2018

Обычно, если вы не видите метрику AUC, это потому, что H2O-Algo не решил проблему двоичной классификации.

Если вы хотите получить точность для полиномиальной задачи, используйте [max_hit_ratio_k][1] и посмотрите на k=1.

Если вы хотите посмотреть метрики для полинома в целом, посмотрите, что доступно в документация , например, доступна матрица путаницы и mean_per_class_error.

Ниже приведен пример: где цель - получить hit_ratio k = 1 (см. Последние несколько строк)

import h2o
from h2o.estimators.glm import H2OGeneralizedLinearEstimator
h2o.init()

# import the iris dataset:
# this dataset is used to classify the type of iris plant
# the original dataset can be found at https://archive.ics.uci.edu/ml/datasets/Iris
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 and the response column name
predictors = iris.columns[:-1]
response = 'class'

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

# try using the `link` parameter:
# Initialize and train a GLM
iris_glm = H2OGeneralizedLinearEstimator(family = 'multinomial', link = 'family_default')
iris_glm.train(x = predictors, y = response, training_frame = train, validation_frame = valid)

pd = iris_glm.hit_ratio_table().as_data_frame()
pd.loc[(0,'hit_ratio')] 
...