Проверьте часть EDA здесь: https://medium.com/@alidu143/uncovering-sepsis-occurrence-secrets-through-exploratory-data-analysis-8cffee7e760

Введение

Сепсис — опасное для жизни состояние, возникающее, когда в ответ на инфекцию организм повреждает собственные ткани и органы. Это серьезная проблема здравоохранения во всем мире, с высоким уровнем смертности, если ее не выявить и не лечить быстро. Раннее выявление сепсиса имеет решающее значение для улучшения результатов лечения пациентов и снижения нагрузки на системы здравоохранения.

Прогнозирование возникновения сепсиса с использованием моделей классификации машинного обучения предлагает многообещающий подход для выявления лиц, подверженных риску, и обеспечения целенаправленных вмешательств. Используя данные о пациентах и ​​передовые алгоритмы, эти модели могут помочь медицинским работникам выявлять закономерности и индикаторы, которые могут предшествовать возникновению сепсиса. Раннее выявление позволяет проводить своевременные вмешательства, такие как начало соответствующей антибактериальной терапии, инфузионная терапия и мониторинг показателей жизнедеятельности, что может значительно улучшить результаты лечения пациентов и потенциально спасти жизни.

Традиционно диагностика сепсиса основывалась на клинической оценке и стандартизированных критериях, основанных на показателях жизненно важных функций, лабораторных показателях и клинических показателях. Однако эти критерии могут не отражать незначительные изменения в состоянии пациента или учитывать индивидуальную вариабельность. Модели машинного обучения могут преодолеть эти ограничения за счет включения широкого спектра переменных и изучения сложных закономерностей из больших наборов данных.

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

В этой статье мы рассмотрим весь процесс прогнозирования возникновения сепсиса с использованием моделей классификации машинного обучения. От предварительной обработки данных до оценки и выбора модели — мы углубимся в каждый шаг, чтобы продемонстрировать потенциал этих моделей в обеспечении раннего выявления и целенаправленных вмешательств при сепсисе. Проливая свет на эту важную тему, мы стремимся внести свой вклад в текущие усилия по улучшению лечения сепсиса и, в конечном итоге, к спасению жизней.

Предварительная обработка данных

Проверка дисбаланса данных

Несбалансированность данных — распространенная проблема машинного обучения, когда классы или категории в наборе данных представлены неодинаково. Это может привести к моделям, которые предвзято относятся к классу большинства и изо всех сил пытаются точно предсказать класс меньшинства.

В контексте прогнозирования сепсиса дисбаланс данных означает, что частота случаев сепсиса значительно ниже, чем случаев без сепсиса, как указано выше. Это связано с тем, что сепсис является относительно редким состоянием по сравнению с населением в целом.

Чтобы устранить дисбаланс данных, мы будем использовать следующие методы:

  • Повторная выборка: это включает в себя избыточную выборку класса меньшинства или недостаточную выборку класса большинства, чтобы сбалансировать набор данных.
  • Использование показателей оценки, которые учитывают несбалансированные данные: эти показатели, такие как оценка F1 или площадь под кривой точности-отзыва, более чувствительны к классу меньшинства, чем к точности.

Оценивая распределение классов в наборе данных и используя соответствующие методы для устранения дисбаланса, мы можем повысить производительность моделей машинного обучения на несбалансированных данных.

Удалить дубликаты:

Удаление повторяющихся записей из набора данных важно для обеспечения целостности и качества данных. Повторяющиеся записи могут внести предвзятость и неточности в анализ, что приведет к вводящим в заблуждение результатам.

Чтобы определить и удалить дубликаты, мы можем использовать метод duplicated() в pandas. Этот метод возвращает логический ряд, указывающий, является ли каждая строка дубликатом или нет. Затем мы можем использовать эту серию для фильтрации набора данных и удаления повторяющихся записей с помощью метода drop_duplicates(). Таким образом мы гарантируем уникальность каждого наблюдения в наборе данных, устраняя любую избыточность и повышая надежность нашего анализа.

def check_duplicate_rows(data):
    duplicate_rows = data.duplicated()
    num_duplicates = duplicate_rows.sum()
    print("Number of duplicate rows:", num_duplicates)

# Check duplicate rows in train data
check_duplicate_rows(train)

# Check duplicate rows in test data
check_duplicate_rows(test)

Number of duplicate rows: 0
Number of duplicate rows: 0

Проверьте недостающие значения:

Обработка отсутствующих значений в наборе данных также имеет решающее значение, поскольку они могут повлиять на точность и надежность анализа. Отсутствующие значения могут привести к необъективным результатам и снизить производительность моделей машинного обучения.

Чтобы определить и оценить недостающие значения в моем наборе данных о сепсисе, мы используем метод isna().sum() в pandas.

def check_missing_values(data):
    missing_values = data.isna().sum()
    print("Missing values:\n", missing_values)

# Check missing values in train data
check_missing_values(train)

# Check missing values in test data
check_missing_values(test)
Missing values:
 ID           0
PRG          0
PL           0
PR           0
SK           0
TS           0
M11          0
BD2          0
Age          0
Insurance    0
Sepssis      0
dtype: int64

Missing values:
 ID           0
PRG          0
PL           0
PR           0
SK           0
TS           0
M11          0
BD2          0
Age          0
Insurance    0
dtype: int64

Этот метод возвращает количество пропущенных значений для каждого столбца в наборе данных. Изучив количество отсутствующих значений, мы можем определить, в каких столбцах есть отсутствующие значения, и степень «отсутствия». Эта информация помогает нам принять решение о соответствующих стратегиях обработки пропущенных значений, таких как вменение или удаление, чтобы обеспечить целостность данных для дальнейшего анализа.

Кодирование функций

В моделях машинного обучения категориальные признаки необходимо кодировать в числовые значения, поскольку большинство алгоритмов работают с числовыми данными. Кодирование меток — это один из методов, используемых для кодирования категориальных признаков.

Кодирование меток преобразует целевые категориальные значения в числовые метки, где каждой уникальной категории присваивается уникальное целочисленное значение. Это позволяет модели машинного обучения понимать порядковые отношения между различными категориями. В случае данных о сепсисе у нас есть такие категории, как «положительные» и «отрицательные», кодирование меток может присваивать им числовые метки 0 и 1 соответственно.

def encode_target_variable(data, target_variable):
    # Encode the target variable using LabelEncoder
    label_encoder = LabelEncoder()
    encoded_target = label_encoder.fit_transform(data[target_variable])
    target_encoded = pd.DataFrame(encoded_target, columns=[target_variable])

    # Combine the features and the encoded target variable
    data_encoded = pd.concat([data.iloc[:, :-1], target_encoded], axis=1)
    data_encoded.drop('ID', axis=1, inplace=True)

    return data_encoded

# Encode target variable in train data
train_encoded = encode_target_variable(train, 'Sepssis')

Предоставленный фрагмент кода демонстрирует использование LabelEncoder из scikit-learn для кодирования целевой переменной. Он преобразует целевую переменную в закодированные метки и создает новый кадр данных с закодированной целевой переменной. Наконец, закодированная целевая переменная объединяется с исходными функциями, за исключением столбца «ID», для создания закодированного набора данных. Кодирование меток — это простой и эффективный способ обработки категориальных функций в моделях машинного обучения.

Разделение данных

Процесс разделения набора данных на подмножества обучения и тестирования включает в себя разделение данных на два отдельных набора для оценки производительности модели машинного обучения.

def split_data(X, y, test_size, random_state=42, stratify=None):
    # Split the data into train and validation sets
    X_train, X_eval, y_train, y_eval = train_test_split(X, y, test_size=test_size, random_state=random_state, stratify=stratify)

    return X_train, X_eval, y_train, y_eval

# Split the data into train and validation sets for both X and y
X_train, X_eval, y_train, y_eval = split_data(train_encoded.iloc[:, :-1], train_encoded.iloc[:, -1:], test_size=0.2, random_state=42, stratify=train_encoded.iloc[:, -1:])

В предоставленном фрагменте кода функция split_data принимает функции (X) и целевую переменную (y), а также желаемый размер теста, случайное состояние и необязательный параметр стратификации. Он использует функцию train_test_split из scikit-learn для разделения данных на наборы для обучения и проверки.

Разделение выполняется с учетом сохранения распределения классов в разделении, указанного параметром stratify. Это гарантирует, что доля различных классов остается сбалансированной как в подмножествах обучения, так и в подмножествах проверки.

Разделив данные, мы можем обучить модель на тренировочном наборе и оценить ее производительность на невидимом проверочном наборе. Это помогает оценить, насколько хорошо модель будет обобщать новые, невидимые данные.

Вменение пропущенных значений:

Вменение пропущенных значений — важный шаг в предварительной обработке данных для обработки неполных данных. В предоставленном фрагменте кода для вменения используется класс SimpleImputer из scikit-learn.

# Creating imputer variables
numerical_imputer = SimpleImputer(strategy = "mean")

numerical_imputer.fit(X_train)

X_train_imputed = numerical_imputer.transform(X_train)
X_eval_imputed = numerical_imputer.transform(X_eval)
X_test_imputed = numerical_imputer.transform(test)

Выбранный метод вменения — это mean стратегия, обозначенная strategy="mean". Эта стратегия заменяет пропущенные значения средним значением соответствующего признака/столбца.

Метод fit из SimpleImputer вызывается в обучающем наборе (X_train) для вычисления среднего значения каждой функции. Этот шаг позволяет импутеру узнать средние значения для каждой функции.

Затем метод transform используется для замены отсутствующих значений в обучающем наборе (X_train_imputed), наборе проверки (X_eval_imputed) и тестовом наборе (X_test_imputed) изученными средними значениями.

Обоснование использования стратегии среднего заключается в том, что она обеспечивает простой и эффективный подход к вменению отсутствующих числовых значений. Используя среднее значение признака, мы можем сохранить общее распределение и центральную тенденцию данных. Вменение пропущенных значений гарантирует, что данные будут полными и готовыми к дальнейшему анализу или обучению модели, поскольку многие алгоритмы машинного обучения не могут обрабатывать пропущенные значения во входных данных.

Масштабирование функций

Масштабирование функций — важный шаг в подготовке данных для моделей машинного обучения. Он включает в себя преобразование числовых признаков в общую шкалу, гарантируя, что ни один конкретный признак не доминирует в процессе обучения из-за его больших значений. В приведенном ниже фрагменте кода StandardScaler из scikit-learn используется для масштабирования функций.

scaler = StandardScaler()
scaler.fit(X_train_imputed)

columns = ['PRG','PL','PR','SK','TS','M11','BD2','Age','Insurance']

def scale_data(data, scaler, columns):
    scaled_data = scaler.transform(data)
    scaled_df = pd.DataFrame(scaled_data, columns=columns)
    return scaled_df
# Scale the data
X_train_df = scale_data(X_train_imputed, scaler, columns)
X_eval_df = scale_data(X_eval_imputed, scaler, columns)
X_test = scale_data(X_test_imputed, scaler, columns)

StandardScaler масштабирует функции путем вычитания среднего значения и деления на стандартное отклонение, в результате чего получается распределение со средним значением 0 и стандартным отклонением 1.

Метод fit из StandardScaler вызывается в обучающем наборе (X_train_imputed) для вычисления среднего значения и стандартного отклонения для каждой функции. Этот шаг позволяет скейлеру узнать параметры масштабирования.

Затем метод transform используется для масштабирования функций в обучающем наборе (X_train_df), проверочном наборе (X_eval_df) и тестовом наборе (X_test) на основе изученных параметров.

Масштабируя данные, мы гарантируем, что все функции в равной степени способствуют процессу обучения. Это особенно важно для алгоритмов, основанных на вычислении расстояний или оптимизации на основе градиента, таких как k-ближайших соседей, машины опорных векторов и нейронные сети.

В предоставленном коде указанные столбцы (['PRG', 'PL', 'PR', 'SK', 'TS', 'M11', 'BD2', 'Age', 'Insurance']) масштабируются с использованием StandardScaler. Результирующие масштабированные данные возвращаются в виде кадра данных с теми же именами столбцов.

Моделирование машинного обучения

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

  1. Создайте экземпляр классификатора. Создайте экземпляр нужного алгоритма классификации, например логистической регрессии, дерева решений, наивного байесовского алгоритма, SVM или случайного леса.
  2. Подгонка модели. Обучите классификатор на обучающих данных, вызвав метод fit и предоставив матрицу признаков (X_train) и соответствующую целевую переменную (y_train).
  3. Создание прогнозов. Используйте обученную модель, чтобы делать прогнозы на основе данных оценки или тестирования, вызывая метод predict и передавая матрицу признаков (X_eval или X_test).
  4. Оценить производительность. Оцените производительность модели с помощью соответствующих показателей оценки. Для задач классификации общие метрики включают оценку F1, точность, достоверность, полноту и оценку AUC. Эти показатели можно рассчитать с помощью таких функций, как f1_score, accuracy_score, precision_score, recall_score и roc_auc_score из библиотеки scikit-learn.
  5. При необходимости проанализируйте прогнозы модели. Вы можете дополнительно проанализировать прогнозы модели, изучив такие показатели, как кривая ROC, матрица путаницы или важность функций, в зависимости от конкретных требований вашего проекта.

Следуя этому общему процессу, вы можете реализовать и оценить различные алгоритмы классификации, сравнивая их производительность на основе выбранных показателей оценки.

Логистическая регрессия

# Call the function and get the outputs
lr_model, lr_preds, lr_f1_score, fpr, tpr, thresholds, lr_auc_score = logistic_regression_model(X_train_df, y_train, X_eval_df, y_eval)

print("F1 Score:", lr_f1_score)
print("AUC Score:", lr_auc_score)
F1 Score on Training Set: 0.6486486486486487
F1 Score on Evaluation Set: 0.6265060240963854

Проверка на переоснащение

# Calculate F1 scores for training and evaluation sets
lr_train_f1_score = calculate_f1_score(lr_model, X_train_df, y_train)
lr_eval_f1_score = calculate_f1_score(lr_model, X_eval_df, y_eval)

# Print the F1 scores
print("F1 Score on Training Set:", lr_train_f1_score)
print("F1 Score on Evaluation Set:", lr_eval_f1_score)
F1 Score on Training Set: 0.6486486486486487
F1 Score on Evaluation Set: 0.6265060240963854

В целом, оценки F1 показывают, что модель логистической регрессии достаточно хорошо работает как на обучающих, так и на оценочных выборках.

Модель дерева решений

# Call the function with your train and evaluation data
dt_model, dt_pred, dt_f1_score, dt_auc_score = evaluate_decision_tree(X_train_df, y_train, X_eval_df, y_eval)

print("F1 Score:", dt_f1_score)
print("AUC Score:", dt_auc_score)
F1 Score: 0.6024096385542169
AUC Score: 0.6950549450549451

Проверка на переоснащение

# Calculate F1 scores for training and evaluation sets
dt_train_f1_score = calculate_f1_score(dt_model, X_train_df, y_train)
dt_eval_f1_score = calculate_f1_score(dt_model, X_eval_df, y_eval)

# Print the F1 scores
print("F1 Score on Training Set:", dt_train_f1_score)
print("F1 Score on Evaluation Set:", dt_eval_f1_score)
F1 Score on Training Set: 1.0
F1 Score on Evaluation Set: 0.6024096385542169

Основываясь на этих результатах, кажется, что модель переобучает данные обучения, что приводит к плохому обобщению оценочного набора.

Модель случайного леса

rf_model, rf_preds, rf_f1_score, fpr, tpr, thresholds, rf_auc_score = random_forest_model(X_train, y_train, X_eval, y_eval)

print("F1 Score:", rf_f1_score)
print("AUC Score:", rf_auc_score)
F1 Score: 0.5783132530120483
AUC Score: 0.6767399267399268

Проверка на переоснащение

# Calculate F1 scores for training and evaluation sets
rf_train_f1_score = calculate_f1_score(rf_model, X_train_df, y_train)
rf_eval_f1_score = calculate_f1_score(rf_model, X_eval_df, y_eval)

# Print the F1 scores
print("F1 Score on Training Set based on Random Forest:", rf_train_f1_score)
print("F1 Score on Evaluation Set based on Random Forest:", rf_eval_f1_score)
F1 Score on Training Set based on Random Forest: 0.0
F1 Score on Evaluation Set based on Random Forest: 0.0

Классификатор XGBoost

xgb_model, xgb_preds, xgb_f1_score, fpr, tpr, thresholds, xgb_auc_score = xgboost_model(X_train_df, y_train, X_eval_df, y_eval)

# Print the F1 score and AUC score
print("F1 Score on Evaluation Set based on XGBoost:", xgb_f1_score)
print("AUC Score on Evaluation Set based on XGBoost:", xgb_auc_score)
F1 Score on Evaluation Set based on XGBoost: 0.5365853658536585
AUC Score on Evaluation Set based on XGBoost: 0.6465201465201464

Проверка на переоснащение

# Calculate F1 scores for training and evaluation sets
xgb_train_f1_score = calculate_f1_score(xgb_model, X_train_df, y_train)
xgb_eval_f1_score = calculate_f1_score(xgb_model, X_eval_df, y_eval)

# Print the F1 scores
print("F1 Score on Training Set based on XGboost:", xgb_train_f1_score)
print("F1 Score on Evaluation Set based on XGboost:", xgb_eval_f1_score)

Основываясь на этих результатах, кажется, что модель XGBoost переобучает данные обучения, что приводит к плохому обобщению оценочного набора.

Наивная байесовская модель

nb_model, nb_preds, nb_f1_score, fpr, tpr, thresholds, nb_auc_score = naive_bayes_model(X_train_df, y_train, X_eval_df, y_eval)

# Print the F1 score and AUC score
print("F1 Score on Evaluation Set based on Naive Bayes:", nb_f1_score)
print("AUC Score on Evaluation Set based on Naive Bayes:", nb_auc_score)
F1 Score on Evaluation Set based on Naive Bayes: 0.574712643678161
AUC Score on Evaluation Set based on Naive Bayes: 0.6694139194139194

Проверка на переоснащение

# Calculate F1 scores for training and evaluation sets
nb_train_f1_score = calculate_f1_score(nb_model, X_train_df, y_train)
nb_eval_f1_score = calculate_f1_score(nb_model, X_eval_df, y_eval)

# Print the F1 scores
print("F1 Score on Training Set based on Naive Bayes:", nb_train_f1_score)
print("F1 Score on Evaluation Set based on Naive Bayes:", nb_eval_f1_score)
F1 Score on Training Set based on Naive Bayes: 0.6730769230769231
F1 Score on Evaluation Set based on Naive Bayes: 0.574712643678161

Основываясь на предоставленных оценках F1, наивная байесовская модель показывает некоторый уровень переобучения.

Стохастический градиентный спуск

sgd_model, sgd_preds, sgd_f1_score, fpr, tpr, thresholds, sgd_auc_score = sgd_model_func(X_train_df, y_train, X_eval_df, y_eval)

# Print the F1 score and AUC score
print("F1 Score on Evaluation Set based on SGD:", sgd_f1_score)
print("AUC Score on Evaluation Set based on SGD:", sgd_auc_score)
F1 Score on Evaluation Set based on SGD: 0.4782608695652174
AUC Score on Evaluation Set based on SGD: 0.5824175824175823

Проверка на переоснащение

sgd_train_f1_score = calculate_f1_score(sgd_model, X_train_df, y_train)
sgd_eval_f1_score = calculate_f1_score(sgd_model, X_eval_df, y_eval)

# Print the F1 scores
print("F1 Score on Training Set based on SGDClassifier:", sgd_train_f1_score)
print("F1 Score on Evaluation Set based on SGDClassifier:", sgd_eval_f1_score)
F1 Score on Training Set based on SGDClassifier: 0.5485714285714285
F1 Score on Evaluation Set based on SGDClassifier: 0.4782608695652174

Основываясь на предоставленных оценках F1, модель SGDClassifier показывает признаки недообучения.

Сравнение моделей

Основываясь на предоставленных оценках F1 и AUC, вот анализ различных моделей:

Логистическая регрессия

  • Оценка F1: 0,6265
  • Оценка AUC: 0,7134

Модель логистической регрессии показывает относительно более высокие показатели F1 и AUC по сравнению с другими моделями. Он демонстрирует достойную производительность с точки зрения точности и отзыва, а также хорошую способность различать положительные и отрицательные экземпляры.

Дерево решений

  • Оценка F1: 0,6024
  • Оценка AUC: 0,6951

Модель дерева решений обеспечивает достаточно высокие баллы F1 и AUC. Это указывает на то, что модель улавливает некоторые основные закономерности в данных и эффективна при прогнозировании. Однако с точки зрения общей производительности он может быть не таким сильным, как логистическая регрессия.

Случайный лес

  • Оценка F1: 0,5783
  • Оценка AUC: 0,6767

Модель случайного леса демонстрирует несколько более низкие баллы F1 и AUC по сравнению с логистической регрессией и деревом решений. Случайный лес — это ансамблевая модель, которая объединяет несколько деревьев решений, и на ее производительность влияет количество деревьев и другие гиперпараметры. Изменение этих параметров потенциально может повысить производительность модели.

Наивный байесовский анализ

  • Оценка F1: 0,5747
  • Оценка AUC: 0,6694

Наивная байесовская модель обеспечивает средний показатель F1 и показатель AUC. Наивный байесовский классификатор — это вероятностный классификатор, основанный на теореме Байеса и предполагающий независимость признаков. Она может не так эффективно отражать сложные отношения, как другие модели, но все же может давать полезные прогнозы в определенных сценариях.

XGBoost

  • Оценка F1: 0,5366
  • Оценка AUC: 0,6465

Модель XGBoost показывает относительно более низкие показатели F1 и AUC по сравнению с другими моделями. XGBoost — это мощный алгоритм повышения градиента, но его производительность сильно зависит от настройки гиперпараметров и разработки функций. Корректировка этих аспектов может помочь повысить эффективность модели.

SGBoost

  • Оценка F1: 0,4783
  • Оценка AUC: 0,5824

Модель SGBoost демонстрирует самые низкие показатели F1 и AUC среди всех моделей. Это говорит о том, что модель неэффективна и изо всех сил пытается уловить закономерности в данных. Рассмотрите возможность пересмотра конфигурации модели, выбора функций или изучения других алгоритмов для повышения производительности.

Основываясь на этих результатах, модель логистической регрессии работает относительно хорошо по сравнению с другими моделями.

Выбор лучшей модели

Выбор наилучшей модели для прогнозирования сепсиса зависит от различных факторов, таких как конкретные цели задачи прогнозирования, важность различных показателей оценки, требования к интерпретируемости, эффективность вычислений и доступные ресурсы.

Основываясь на предоставленных оценках F1 и AUC, модель логистической регрессии выделяется как наиболее эффективная модель среди перечисленных вариантов. Он демонстрирует относительно более высокий показатель F1 (0,6265) и показатель AUC (0,7134) по сравнению с другими моделями.

Оценка F1 представляет собой комбинированную меру точности и отзыва, которая указывает на баланс между правильным определением положительных случаев (случаев сепсиса) и сведением к минимуму ложноположительных и ложноотрицательных результатов. Модель логистической регрессии дает достойную оценку F1, что подразумевает хороший компромисс между точностью и полнотой для прогнозирования сепсиса.

Оценка AUC измеряет способность модели различать положительные и отрицательные экземпляры. При показателе AUC 0,7134 модель логистической регрессии демонстрирует относительно хорошую дискриминационную способность при выявлении случаев сепсиса.

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

Учитывая общую производительность, интерпретируемость и важность баланса точности и полноты в прогнозировании сепсиса, модель логистической регрессии представляется наиболее подходящим выбором на основе предоставленных показателей оценки.

Заключение

Процесс прогнозирования возникновения сепсиса с использованием моделей классификации машинного обучения включал несколько ключевых шагов для достижения точных прогнозов. Эти шаги включают предварительную обработку данных, оценку модели и настройку гиперпараметров.

Предварительная обработка данных сыграла решающую роль в подготовке набора данных для анализа. Это включало обработку пропущенных значений, устранение выбросов и преобразование переменных по мере необходимости. Были применены методы предварительной обработки, такие как масштабирование функций и горячее кодирование, чтобы гарантировать, что данные были в подходящем формате для моделей машинного обучения.

Оценка модели была важным шагом в оценке эффективности различных моделей классификации. Показатели оценки, такие как оценка F1 и оценка AUC, использовались для измерения точности, отзыва и различительной способности моделей. Сравнивая эффективность различных моделей, мы получили представление об их сильных и слабых сторонах в прогнозировании возникновения сепсиса.

Еще одним важным аспектом процесса была настройка гиперпараметров. Это включало настройку параметров алгоритмов машинного обучения для оптимизации их производительности. Путем точной настройки гиперпараметров мы стремились найти наилучшую конфигурацию для каждой модели, максимизировав их прогностическую способность для обнаружения сепсиса.

В целом, модели машинного обучения продемонстрировали большой потенциал в оказании помощи медицинским работникам в обнаружении сепсиса и вмешательстве. Точное прогнозирование возникновения сепсиса может помочь медицинским работникам своевременно выявлять пациентов из группы риска, что позволяет своевременно вмешаться и потенциально спасти жизни. Используя методы машинного обучения, медицинские работники могут извлечь выгоду из расширенных возможностей анализа данных, позволяющих более точно и эффективно выявлять и лечить сепсис.

Проверьте мой github для получения дополнительной информации.



Читайте предыдущую статью здесь:

«Раскрытие секретов возникновения сепсиса с помощью исследовательского анализа данных | Алиду Абубакари | июнь 2023 г. | Середина".