Инсульты в основном вызваны потерей или уменьшением поступления кислорода в мозг. Эта потеря снабжения вызвана потерей крови или повреждением кровеносных сосудов.

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

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

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

Мы опускаем столбец ID, поскольку он не имеет абсолютно никакого отношения к определению появления штриха. Следующим шагом является работа со значениями NULL в данных. Мы заметили, что только столбец bmi имеет значения NULL, поэтому мы решаем проблему, заполняя его средним значением bmi. Чтобы узнать больше о методах работы с недостающими данными, вы можете перейти по этой ссылке.

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

Мы имеем дело с несколькими графиками, чтобы понять взаимосвязь данных с помощью библиотеки seaborn и matplotlib. Начнем со счетного графика, чтобы проверить распределение наших данных. Мы наблюдаем, что наши данные сильно несбалансированы: один класс представлен больше, чем другой. Далее мы изучаем влияние курения и возраста на частоту инсульта. Анализируя график, мы понимаем, что пожилые люди, склонные к курению, имеют более высокий шанс получить инсульт, чем молодые некурящие.

Далее мы пытаемся понять влияние семейного положения человека на возникновение инсульта.

Затем следует диаграмма, которая помогает нам понять влияние индекса массы тела (ИМТ) и статуса курения на инсульты. Коробчатая диаграмма - это очень информативный способ проследить распределение данных по следующим показателям:
1. Выбросы данных
2. Минимальное значение данных
3. Первый квартиль (Q1– 25-й процентиль)
4. Среднее значение
5. Третий квартиль (3–75-й процентиль)
6. Максимальное значение данных

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

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

Следующим шагом является разделение данных на обучающую и тестовую части с разделением 40% для тестирования и 60% для обучения. После разделения данных мы стандартизируем их, удаляя среднее значение и масштабируя до единичной дисперсии с помощью функции StandardScalar () для данных обучения.

После того, как данные готовы, нам нужно подготовить модель. Начиная с архитектуры, наша модель нейронной сети состоит из 5 плотных слоев и 3 выпадающих слоев со значением падения 30% каждый. Мы просматриваем сводку модели и делаем вывод, что в нашей модели более 18k параметров.

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

Чтобы обучить нашу модель и предотвратить любую чрезмерную подгонку, мы настроили проверку EarlyStopping, которая отслеживает наши потери при проверке. Мы начинаем обучение нашей модели и для 100 эпох, которое останавливается примерно через 7–8 эпох из-за нашей функции проверки при потере проверки. Мы достигаем высокой точности проверки, превышающей 95%. Чтобы построить кривые обучения на нашей модели для наблюдения за значениями точности и потерь для каждой эпохи, мы используем следующую функцию.

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

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

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

Удачи в карьере в области машинного обучения! Ваше здоровье!

Ссылка на блокнот: Здесь

Предоставлено: Kkharbanda