Files
freeCodeCamp/curriculum/challenges/ukrainian/08-data-analysis-with-python/data-analysis-with-python-projects/medical-data-visualizer.md
freeCodeCamp's Camper Bot cc87f4455d chore(i18n,learn): processed translations (#54077)
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
2024-03-25 16:31:40 +00:00

12 KiB
Raw Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5e46f7f8ac417301a38fb92a Візуалізатор медичних даних 10 462368 medical-data-visualizer

--description--

Ви будете працювати над цим проєктом з нашим стартовим кодом Gitpod.

Ми досі розробляємо інтерактивну частину навчальної програми з Python. Наразі є декілька відео на ютуб-каналі freeCodeCamp.org, які навчать всього необхідного для виконання цього проєкту:

--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.

Інструкція

Додайте код до кожного числа у файлі medical_data_visualizer.py відповідно до числа з інструкції нижче.

  1. Імпортуйте дані з medical_examination.csv та призначте їх до змінної df
  2. Створіть стовпчик overweight в змінній df
  3. Нормалізуйте дані, зробивши 0 завжди хорошим, а 1 завжди поганим. Якщо значення cholesterol або gluc дорівнює 1, встановіть значення на 0. Якщо значення більше ніж 1, встановіть значення на 1.
  4. Створіть графік категорій у функції draw_cat_plot
  5. Створіть DataFrame для графіка категорій, використовуючи pd.melt зі значеннями з cholesterol, gluc, smoke, alco, active та overweight в змінній df_cat.
  6. Згрупуйте та реформатуйте дані в df_cat, щоб розділити їх за допомогою cardio. Покажіть кількість усіх складових. Один зі стовпчиків потрібно перейменувати, щоб забезпечити правильну роботу catplot.
  7. Перетворіть дані в формат long та створіть діаграму, яка показує кількість підрахунків категорійних особливостей, використовуючи наступний метод з бібліотеки seaborn: sns.catplot()
  8. Отримайте фігуру для виведення та збережіть її в змінній fig
  9. Не змінюйте два наступні рядки
  10. Створіть теплову карту у функції draw_heat_map
  11. Очистіть дані в змінній df_heat, відфільтрувавши наступні сегменти пацієнтів, які представляють неправильні дані:
    • зріст менший за 2,5-ий процентиль (збережіть правильні дані за допомогою (df['height'] >= df['height'].quantile(0.025)))
    • зріст більший за 97,5-ий процентиль
    • вага менша за 2,5-ий процентиль
    • вага більша за 97,5-ий процентиль
  12. Обчисліть кореляційну матрицю та збережіть її в змінній corr
  13. Створіть маску для верхнього трикутника та збережіть його в змінній mask
  14. Налаштуйте фігуру matplotlib
  15. Побудуйте кореляційну матрицю за допомогою методу, наданого бібліотекою seaborn: sns.heatmap()
  16. Не змінюйте два наступні рядки

Розробка

Напишіть свій код в medical_data_visualizer.py. Для розробки ви можете використати main.py, щоб протестувати свій код.

Тестування

Модульні тести для цього проєкту знаходяться в test_module.py. Ми імпортували тести з test_module.py до main.py для вашої зручності.

Надсилання

Скопіюйте URL-адресу свого проєкту та відправте її до freeCodeCamp.

--hints--

Проєкт повинен пройти усі тести Python.


--solutions--

  # 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.