Обробка Пропущених Значень
Відсутні дані є поширеним явищем у реальних наборах даних і можуть впливати на аналіз або моделі. Існує три основні типи відсутніх даних:
- Відсутні повністю випадково (MCAR): відсутність не пов'язана з жодними даними;
- Відсутні випадково (MAR): відсутність пов'язана лише зі спостережуваними даними;
- Відсутні не випадково (MNAR): відсутність залежить від самих відсутніх значень.
Вибір правильної стратегії обробки відсутніх значень залежить від типу відсутності. Неправильна обробка може призвести до упереджених результатів, слабшого аналізу та ненадійних прогнозів.
12345678import 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())
Імпутація — це процес заміни відсутніх значень підставними, такими як середнє, медіана або мода тощо. Імпутація допомагає зберегти структуру та розмір набору даних для подальшого аналізу або моделювання.
Типи методів імпутації
Різні типи даних потребують специфічних стратегій імпутації для ефективної обробки пропущених значень:
- Імпутація середнім: використовується для числових ознак; замінює пропущені значення на середнє спостережуваних значень;
- Імпутація медіаною: використовується для числових ознак, особливо при асиметричному розподілі; замінює пропущені значення на медіану;
- Імпутація модою: використовується для категоріальних ознак; замінює пропущені значення на найчастішу категорію або значення;
- Імпутація сталою: використовується для числових і категоріальних ознак; заповнює пропущені значення фіксованим значенням, наприклад
0,-1або'unknown'; - Пряме заповнення (forward fill,
ffill): використовується для часових рядів або впорядкованих даних; поширює останнє валідне спостереження вперед для заповнення пропусків; - Зворотне заповнення (backward fill,
bfill): використовується для часових рядів або впорядкованих даних; використовує наступне валідне спостереження для заповнення пропусків назад; - Інтерполяція: використовується для числових ознак, особливо у часових рядах; оцінює пропущені значення на основі сусідніх точок даних за допомогою лінійних або інших математичних методів.
Обирайте метод імпутації, який найкраще відповідає типу ваших даних і контексту аналізу.
123456789101112131415161718import 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())
Видалення пропущених значень є швидким і простим, але може призвести до втрати цінних даних, особливо якщо пропусків багато. Імпутація дозволяє зберегти більше даних, але може внести упередження, якщо метод обрано невірно. Перед прийняттям рішення про видалення або імпутацію враховуйте кількість і характер пропусків, а також важливість ознаки.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 8.33
Обробка Пропущених Значень
Свайпніть щоб показати меню
Відсутні дані є поширеним явищем у реальних наборах даних і можуть впливати на аналіз або моделі. Існує три основні типи відсутніх даних:
- Відсутні повністю випадково (MCAR): відсутність не пов'язана з жодними даними;
- Відсутні випадково (MAR): відсутність пов'язана лише зі спостережуваними даними;
- Відсутні не випадково (MNAR): відсутність залежить від самих відсутніх значень.
Вибір правильної стратегії обробки відсутніх значень залежить від типу відсутності. Неправильна обробка може призвести до упереджених результатів, слабшого аналізу та ненадійних прогнозів.
12345678import 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())
Імпутація — це процес заміни відсутніх значень підставними, такими як середнє, медіана або мода тощо. Імпутація допомагає зберегти структуру та розмір набору даних для подальшого аналізу або моделювання.
Типи методів імпутації
Різні типи даних потребують специфічних стратегій імпутації для ефективної обробки пропущених значень:
- Імпутація середнім: використовується для числових ознак; замінює пропущені значення на середнє спостережуваних значень;
- Імпутація медіаною: використовується для числових ознак, особливо при асиметричному розподілі; замінює пропущені значення на медіану;
- Імпутація модою: використовується для категоріальних ознак; замінює пропущені значення на найчастішу категорію або значення;
- Імпутація сталою: використовується для числових і категоріальних ознак; заповнює пропущені значення фіксованим значенням, наприклад
0,-1або'unknown'; - Пряме заповнення (forward fill,
ffill): використовується для часових рядів або впорядкованих даних; поширює останнє валідне спостереження вперед для заповнення пропусків; - Зворотне заповнення (backward fill,
bfill): використовується для часових рядів або впорядкованих даних; використовує наступне валідне спостереження для заповнення пропусків назад; - Інтерполяція: використовується для числових ознак, особливо у часових рядах; оцінює пропущені значення на основі сусідніх точок даних за допомогою лінійних або інших математичних методів.
Обирайте метод імпутації, який найкраще відповідає типу ваших даних і контексту аналізу.
123456789101112131415161718import 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())
Видалення пропущених значень є швидким і простим, але може призвести до втрати цінних даних, особливо якщо пропусків багато. Імпутація дозволяє зберегти більше даних, але може внести упередження, якщо метод обрано невірно. Перед прийняттям рішення про видалення або імпутацію враховуйте кількість і характер пропусків, а також важливість ознаки.
Дякуємо за ваш відгук!