mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-04-05 16:00:38 -04:00
97 lines
9.0 KiB
Markdown
97 lines
9.0 KiB
Markdown
---
|
||
id: 5e46f7f8ac417301a38fb92a
|
||
title: Візуалізатор медичних даних
|
||
challengeType: 10
|
||
forumTopicId: 462368
|
||
dashedName: medical-data-visualizer
|
||
---
|
||
|
||
# --description--
|
||
|
||
Ви будете <a href="https://replit.com/github/freeCodeCamp/boilerplate-medical-data-visualizer" target="_blank" rel="noopener noreferrer nofollow">працювати над цим проєктом з нашим стартовим кодом Replit</a>.
|
||
|
||
- Почніть з імпорту проєкту на Replit.
|
||
- Потім ви побачите вікно `.replit`.
|
||
- Оберіть `Use run command` та натисніть кнопку `Done`.
|
||
|
||
|
||
Ми досі розробляємо інтерактивну частину навчальної програми з Python. Наразі є декілька відео на ютуб-каналі freeCodeCamp.org, які навчать всього необхідного для виконання цього проєкту:
|
||
|
||
- <a href="https://www.freecodecamp.org/news/python-for-everybody/" target="_blank" rel="noopener noreferrer nofollow">Python for Everybody Video Course</a> (14 годин)
|
||
|
||
- <a href="https://www.freecodecamp.org/news/how-to-analyze-data-with-python-pandas/" target="_blank" rel="noopener noreferrer nofollow">How to Analyze Data with Python Pandas</a> (10 годин)
|
||
|
||
# --instructions--
|
||
|
||
У цьому проєкті ви візуалізуєте та зробите підрахунки на основі даних медичного обстеження, використовуючи matplotlib, seaborn та pandas. Значення набору даних були зібрані під час медичних оглядів.
|
||
|
||
## Опис даних
|
||
|
||
Рядки в наборі даних представляють пацієнтів, а стовпці інформацію, як-от вимірювання тіла, результати різних аналізів крові та вибір способу життя. Ви будете використовувати набір даних, щоб дослідити зв’язок між серцевими захворюваннями, розмірами тіла, маркерами крові та вибором способу життя.
|
||
|
||
Назва файлу: medical_examination.csv
|
||
|
||
| Особливість | Тип змінної | Змінна | Тип значення |
|
||
|:-----------------------------------------------------:|:-----------------------:|:-------------:|:-------------------------------------------------:|
|
||
| Вік | Об’єктивна особливість | `age` | ціле число (дні) |
|
||
| Зріст | Об’єктивна особливість | `height` | ціле число (см) |
|
||
| Вага | Об’єктивна особливість | `weight` | плаваюче число (кг) |
|
||
| Стать | Об’єктивна особливість | `gender` | категоричний код |
|
||
| Систолічний кров’яний тиск | Особливість обстеження | `ap_hi` | ціле число |
|
||
| Діастолічний кров’яний тиск | Особливість обстеження | `ap_lo` | ціле число |
|
||
| Холестерин | Особливість обстеження | `cholesterol` | 1: нормально, 2: вище норми, 3: значно вище норми |
|
||
| Глюкоза | Особливість обстеження | `gluc` | 1: нормально, 2: вище норми, 3: значно вище норми |
|
||
| Куріння | Суб’єктивна особливість | `smoke` | двійкове |
|
||
| Вживання алкоголю | Суб’єктивна особливість | `alco` | двійкове |
|
||
| Фізична активність | Суб’єктивна особливість | `active` | двійкове |
|
||
| Наявність чи відсутність серцево-судинних захворювань | Цільова змінна | `cardio` | двійкове |
|
||
|
||
## Завдання
|
||
|
||
Створіть діаграму, подібну до `examples/Figure_1.png`, де ми покажемо кількість хороших та поганих результатів для змінних `cholesterol`, `gluc`, `alco`, `active` та `smoke` для пацієнтів з cardio=1 та cardio=0 на різних панелях.
|
||
|
||
Використайте дані для виконання наступних завдань у `medical_data_visualizer.py`:
|
||
|
||
- Додайте стовпчик `overweight` до даних. Щоб визначити, чи має людина зайву вагу, спочатку обчисліть її ІМТ, поділивши вагу (кг) на зріст (м) у квадраті. Якщо це значення > 25, то людина має зайву вагу. Використайте значення 0 для НЕ надмірної ваги та значення 1 для надмірної ваги.
|
||
- Нормалізуйте дані, зробивши 0 завжди хорошим, а 1 завжди поганим. Якщо значення `cholesterol` або `gluc` дорівнює 1, зробіть значення 0. Якщо значення більше ніж 1, зробіть значення 1.
|
||
- Перетворіть дані у довгий формат та створіть діаграму, яка показує кількість підрахунків категорійних особливостей, використовуючи `catplot()` із seaborn. Набір даних має бути розділений «Cardio», щоб для кожного значення `cardio` був стовпчик. Діаграма повинна виглядати так: `examples/Figure_1.png`.
|
||
- Очистіть дані. Відфільтруйте наступні сегменти пацієнтів, які представляють неправильні дані:
|
||
- діастолічний тиск вищий за систолічний (збережіть правильні дані за допомогою `(df['ap_lo'] <= df['ap_hi'])`)
|
||
- зріст менший за 2,5-ий процентиль (збережіть правильні дані за допомогою `(df['height'] >= df['height'].quantile(0.025))`)
|
||
- зріст більший за 97,5-ий процентиль
|
||
- вага менша за 2,5-ий процентиль
|
||
- вага більша ніж 97,5-ий процентиль
|
||
- Створіть кореляційну матрицю, використовуючи набір даних. Побудуйте кореляційну матрицю за допомогою `heatmap()` із seaborn. Замаскуйте верхній трикутник. Діаграма повинна виглядати так: `examples/Figure_2.png`.
|
||
|
||
Кожного разу, коли для змінної встановлено значення `None`, переконайтеся, що для неї встановлено правильний код.
|
||
|
||
Для вас складені модульні тести у `test_module.py`.
|
||
|
||
## Розробка
|
||
|
||
Для розробки ви можете використати `main.py`, щоб протестувати свої функції. Натисніть кнопку "run" і `main.py` запуститься.
|
||
|
||
## Тестування
|
||
|
||
Ми імпортували тести з `test_module.py` до `main.py` для вашої зручності. Тести запустяться автоматично, коли ви натиснете на кнопку «run».
|
||
|
||
## Надсилання
|
||
|
||
Скопіюйте URL-адресу свого проєкту та відправте її до freeCodeCamp.
|
||
|
||
# --hints--
|
||
|
||
Проєкт повинен пройти усі тести Python.
|
||
|
||
```js
|
||
|
||
```
|
||
|
||
# --solutions--
|
||
|
||
```py
|
||
# Python challenges don't need solutions,
|
||
# because they would need to be tested against a full working project.
|
||
# Please check our contributing guidelines to learn more.
|
||
```
|