Цель

Задача состоит в том, чтобы создать модель, которая использует данные первых 24 часов интенсивной терапии для прогнозирования выживаемости пациентов. Инициатива сообщества GOSSIS Массачусетского технологического института с сертификатом конфиденциальности Гарвардской лаборатории конфиденциальности предоставила набор данных о более чем 130 000 посещений больничных отделений интенсивной терапии (ОИТ) за период в один год. Эти данные являются частью растущих глобальных усилий и консорциума, охватывающего Аргентину, Австралию, Новую Зеландию, Шри-Ланку, Бразилию и более 200 больниц в США.

Описание данных

Инициатива сообщества GOSSIS Массачусетского технологического института с сертификатом конфиденциальности Гарвардской лаборатории конфиденциальности предоставила набор данных о более чем 130 000 посещений больничных отделений интенсивной терапии (ОИТ) в течение одного года. Эти данные являются частью растущих глобальных усилий и консорциума, охватывающего Аргентину, Австралию, Новую Зеландию, Шри-Ланку, Бразилию и более 200 больниц в США.

Данные включают:

Тренировочные данные для 91 713 встреч.
Немаркированные тестовые данные для 39 308 встреч, которые включают всю информацию в тренировочных данных, за исключением значений для Hospital_death.
Словарь WiDS Datathon 2020 с дополнительной информацией о данных, включая категорию (например, идентификатор, демографические данные, жизненно важные показатели), единицу измерения, тип данных (например, числовой, двоичный), описание и примеры. .
Образцы отправленных файлов

H2O :

H2O - это «механизм прогнозирования в оперативной памяти с открытым исходным кодом для науки о больших данных». H2O - это многофункциональная платформа машинного обучения с открытым исходным кодом, известная своей интеграцией R и Spark и простотой использования. Это виртуальная машина Java, оптимизированная для обработки в памяти распределенных параллельных алгоритмов машинного обучения на кластерах.

Мотив H2O состоит в том, чтобы предоставить платформу, которая упростила бы для неспециалистов возможность экспериментировать с машинным обучением. Архитектура H2O может быть разделена на разные уровни, в которых верхним уровнем будут разные API, а нижним уровнем - быть H2O JVM.

# importing libraries
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
from sklearn.impute import SimpleImputer
from sklearn.metrics import accuracy_score
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier,GradientBoostingClassifier ,AdaBoostClassifier
from sklearn.model_selection import train_test_split
import lightgbm as lgb
from sklearn import preprocessing

Запуск H2O и проверка кластера

Существует множество инструментов для прямого взаимодействия с видимыми пользователем объектами в кластере H2O. Каждый новый сеанс python начинается с инициализации соединения между клиентом python и кластером H2O. Функция h2o.init () для инициализации H2O.

import h2o
from h2o.estimators.gbm import H2OGradientBoostingEstimator
h2o.init()

H2OFrame:

H2OFrame - это основное хранилище данных для H2O. H2OFrame похоже на DataFrame панд. Одним из важных отличий является то, что данные обычно не хранятся в памяти, вместо этого они расположены в (возможно, удаленном) кластере H2O, и, таким образом, H2OFrame представляет собой простой дескриптор этих данных.

X = h2o.H2OFrame(X)

split_frame ():

split_frame () разбивает кадр на отдельные подмножества размера, определенного заданными соотношениями. Количество подмножеств всегда на 1 больше, чем количество заданных соотношений. Это не дает точного разделения, и H2O предназначен для эффективной работы с большими данными с использованием метода вероятностного разделения, а не точного разделения.

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

asfactor () преобразует столбцы в текущем кадре в категории.

train[0] = train[0].asfactor()
valid[0] = valid[0].asfactor()
param = {
      "ntrees" : 100
    , "max_depth" : 10
    , "learn_rate" : 0.02
    , "sample_rate" : 0.7
    , "col_sample_rate_per_tree" : 0.9
    , "min_rows" : 5
    , "seed": 4241
    , "score_tree_interval": 100
}
from h2o.estimators import H2OXGBoostEstimator
model = H2OXGBoostEstimator(**param)
model.train(x = list(range(1, train.shape[1])), y = 0, training_frame = train,validation_frame = valid)
model.model_performance(valid)

Использованная литература :

Ли, М., Раффа, Дж., Гассеми, М., Поллард, Т., Каланиди, С., Бадави, О., Маттис, К., Сели, Л. А. (2020). WiDS (Женщины в науке о данных) Datathon 2020: Прогноз смертности в ОИТ. PhysioNet. DOI: 10.13026 / vc0e-th79

Гольдбергер А.Л., Амарал ЛАН, Гласс Л., Хаусдорф Дж.М., Иванов ПЧ, Марк Р.Г., Митус Дж.Э., Муди ГБ, Пэн С.К., Стэнли Х. PhysioBank, PhysioToolkit и PhysioNet: компоненты нового исследовательского ресурса для сложных физиологических сигналов (2003). Тираж. 101 (23): e215-e220.

Официальная документация H20