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

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

Відсутні дані є поширеним явищем у реальних наборах даних і можуть впливати на аналіз або моделі. Існує три основні типи відсутніх даних:

  • Відсутні повністю випадково (MCAR): відсутність не пов'язана з жодними даними;
  • Відсутні випадково (MAR): відсутність пов'язана лише зі спостережуваними даними;
  • Відсутні не випадково (MNAR): відсутність залежить від самих відсутніх значень.

Вибір правильної стратегії обробки відсутніх значень залежить від типу відсутності. Неправильна обробка може призвести до упереджених результатів, слабшого аналізу та ненадійних прогнозів.

12345678
import pandas as pd import seaborn as sns titanic = sns.load_dataset("titanic") # Find missing values in each column print("Missing values per column:") print(titanic.isnull().sum())
copy
Note
Визначення

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

Типи методів імпутації

Різні типи даних потребують специфічних стратегій імпутації для ефективної обробки пропущених значень:

  • Імпутація середнім: використовується для числових ознак; замінює пропущені значення на середнє спостережуваних значень;
  • Імпутація медіаною: використовується для числових ознак, особливо при асиметричному розподілі; замінює пропущені значення на медіану;
  • Імпутація модою: використовується для категоріальних ознак; замінює пропущені значення на найчастішу категорію або значення;
  • Імпутація сталою: використовується для числових і категоріальних ознак; заповнює пропущені значення фіксованим значенням, наприклад 0, -1 або 'unknown';
  • Пряме заповнення (forward fill, ffill): використовується для часових рядів або впорядкованих даних; поширює останнє валідне спостереження вперед для заповнення пропусків;
  • Зворотне заповнення (backward fill, bfill): використовується для часових рядів або впорядкованих даних; використовує наступне валідне спостереження для заповнення пропусків назад;
  • Інтерполяція: використовується для числових ознак, особливо у часових рядах; оцінює пропущені значення на основі сусідніх точок даних за допомогою лінійних або інших математичних методів.

Обирайте метод імпутації, який найкраще відповідає типу ваших даних і контексту аналізу.

123456789101112131415161718
import pandas as pd import seaborn as sns # Load Titanic dataset titanic = sns.load_dataset("titanic") # Fill missing values in 'age' (numerical) with the mean titanic['age'] = titanic['age'].fillna(titanic['age'].mean()) # Fill missing values in 'deck' (categorical) with the mode titanic['deck'] = titanic['deck'].fillna(titanic['deck'].mode()[0]) # Drop 'embarked' and 'embark_town' columns (only 2 missing values each) titanic = titanic.drop(['embarked', 'embark_town'], axis=1) # Display the number of missing values after processing print("Missing values after processing:") print(titanic.isnull().sum())
copy
Note
Примітка

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

question mark

У якому з наведених випадків найбільш доцільно видаляти рядки з пропущеними значеннями, а не виконувати їх імпутацію?

Select the correct answer

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Awesome!

Completion rate improved to 8.33

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

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

Відсутні дані є поширеним явищем у реальних наборах даних і можуть впливати на аналіз або моделі. Існує три основні типи відсутніх даних:

  • Відсутні повністю випадково (MCAR): відсутність не пов'язана з жодними даними;
  • Відсутні випадково (MAR): відсутність пов'язана лише зі спостережуваними даними;
  • Відсутні не випадково (MNAR): відсутність залежить від самих відсутніх значень.

Вибір правильної стратегії обробки відсутніх значень залежить від типу відсутності. Неправильна обробка може призвести до упереджених результатів, слабшого аналізу та ненадійних прогнозів.

12345678
import pandas as pd import seaborn as sns titanic = sns.load_dataset("titanic") # Find missing values in each column print("Missing values per column:") print(titanic.isnull().sum())
copy
Note
Визначення

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

Типи методів імпутації

Різні типи даних потребують специфічних стратегій імпутації для ефективної обробки пропущених значень:

  • Імпутація середнім: використовується для числових ознак; замінює пропущені значення на середнє спостережуваних значень;
  • Імпутація медіаною: використовується для числових ознак, особливо при асиметричному розподілі; замінює пропущені значення на медіану;
  • Імпутація модою: використовується для категоріальних ознак; замінює пропущені значення на найчастішу категорію або значення;
  • Імпутація сталою: використовується для числових і категоріальних ознак; заповнює пропущені значення фіксованим значенням, наприклад 0, -1 або 'unknown';
  • Пряме заповнення (forward fill, ffill): використовується для часових рядів або впорядкованих даних; поширює останнє валідне спостереження вперед для заповнення пропусків;
  • Зворотне заповнення (backward fill, bfill): використовується для часових рядів або впорядкованих даних; використовує наступне валідне спостереження для заповнення пропусків назад;
  • Інтерполяція: використовується для числових ознак, особливо у часових рядах; оцінює пропущені значення на основі сусідніх точок даних за допомогою лінійних або інших математичних методів.

Обирайте метод імпутації, який найкраще відповідає типу ваших даних і контексту аналізу.

123456789101112131415161718
import pandas as pd import seaborn as sns # Load Titanic dataset titanic = sns.load_dataset("titanic") # Fill missing values in 'age' (numerical) with the mean titanic['age'] = titanic['age'].fillna(titanic['age'].mean()) # Fill missing values in 'deck' (categorical) with the mode titanic['deck'] = titanic['deck'].fillna(titanic['deck'].mode()[0]) # Drop 'embarked' and 'embark_town' columns (only 2 missing values each) titanic = titanic.drop(['embarked', 'embark_town'], axis=1) # Display the number of missing values after processing print("Missing values after processing:") print(titanic.isnull().sum())
copy
Note
Примітка

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

question mark

У якому з наведених випадків найбільш доцільно видаляти рядки з пропущеними значеннями, а не виконувати їх імпутацію?

Select the correct answer

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

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

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

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