Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Обробка Пропущених Значень | Попередня Обробка Даних Із Scikit-learn
Вступ до ML з Scikit-learn

bookОбробка Пропущених Значень

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

  • Видалення рядків, що містять відсутні значення;
  • Заповнення порожніх комірок замінниками, процес, який називається імпутацією.

Виявлення відсутніх значень

Для виведення загальної інформації про набір даних і перевірки наявності відсутніх значень можна використати метод .info() DataFrame.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
copy

У наборі даних міститься 344 записи, але стовпці 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' та 'sex' мають менше ніж 344 ненульових значень, що вказує на наявність пропущених даних.

Note
Примітка

Null — це інша назва пропущених значень.

Щоб визначити кількість пропущених значень у кожному стовпці, застосуйте метод .isna(), а потім використайте .sum().

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
copy

Рядки, що містять пропущені значення, можна відобразити за допомогою: df[df.isna().any(axis=1)]

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
copy

Видалення рядків

Перший і останній рядки містять лише цільову змінну ('species') та значення 'island', що надає надто мало інформації для подальшого використання. Ці рядки можна видалити, залишивши лише ті, у яких менше двох значень NaN, та перепризначивши їх у df.

123456
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
copy

На відміну від цього, решта рядків містить корисну інформацію, а значення NaN зустрічаються лише у стовпці 'sex'. Замість видалення цих рядків, відсутні значення можна імпутувати. Поширеним підходом є використання трансформера SimpleImputer, який буде розглянуто у наступному розділі.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain more about how imputing works?

What are some other ways to handle missing values besides removing or imputing?

Why is it important to handle missing values before training a machine learning model?

Awesome!

Completion rate improved to 3.13

bookОбробка Пропущених Значень

Свайпніть щоб показати меню

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

  • Видалення рядків, що містять відсутні значення;
  • Заповнення порожніх комірок замінниками, процес, який називається імпутацією.

Виявлення відсутніх значень

Для виведення загальної інформації про набір даних і перевірки наявності відсутніх значень можна використати метод .info() DataFrame.

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.info())
copy

У наборі даних міститься 344 записи, але стовпці 'culmen_depth_mm', 'flipper_length_mm', 'body_mass_g' та 'sex' мають менше ніж 344 ненульових значень, що вказує на наявність пропущених даних.

Note
Примітка

Null — це інша назва пропущених значень.

Щоб визначити кількість пропущених значень у кожному стовпці, застосуйте метод .isna(), а потім використайте .sum().

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df.isna().sum())
copy

Рядки, що містять пропущені значення, можна відобразити за допомогою: df[df.isna().any(axis=1)]

12345
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') print(df[df.isna().any(axis=1)])
copy

Видалення рядків

Перший і останній рядки містять лише цільову змінну ('species') та значення 'island', що надає надто мало інформації для подальшого використання. Ці рядки можна видалити, залишивши лише ті, у яких менше двох значень NaN, та перепризначивши їх у df.

123456
import pandas as pd df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/penguins.csv') df = df[df.isna().sum(axis=1) < 2] print(df.head(8))
copy

На відміну від цього, решта рядків містить корисну інформацію, а значення NaN зустрічаються лише у стовпці 'sex'. Замість видалення цих рядків, відсутні значення можна імпутувати. Поширеним підходом є використання трансформера SimpleImputer, який буде розглянуто у наступному розділі.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3
some-alt