machine learning
Python
data preprocessing
missing values
NaN handling

How to handle missing NaNs for machine learning in python

ML System Design practice on Codemia

Design recommenders, ranking systems and training pipelines the way ML interviews actually ask for them, with worked solutions.

Practice ML system design

Handling missing NaNs (Not a Number) values in datasets is a crucial step in the data pre-processing phase for machine learning projects. These missing values can originate from various sources, including human errors, sensor failures, or incomplete extractions, and they can have significant effects on the performance of machine learning models if not properly managed. Understanding how to deal with these missing values in Python is essential for ensuring robust model predictions.

Understanding NaNs in Data

In Python, the most common approach to representing missing data is by using NaN from the NumPy library. This placeholder is widely used for numerical datasets. Missing categorical data, however, may appear as `None` or an empty string.

Importance of Handling NaNs

Missing values can lead to:

  • Erroneous conclusions: If missing data are not representative of the underlying data distribution, it can lead to biased insights.
  • Poor model performance: Most machine learning algorithms cannot process datasets with NaN values, resulting in errors or reduced model accuracy.

Strategies for Handling Missing NaNs

Below are several strategies you can implement using Python to handle missing NaN values.

1. Removing Rows or Columns

  • Dropping Rows: This method entails removing all rows with any NaN values. It's useful when missing values are sparse.
  • Dropping Columns: This method involves removing entire columns with any NaNs, which may be necessary when certain columns have high percentages of missing values.
  • Mean/Median/Mode Imputation: Replacing missing values with the mean, median, or mode of the column is a simple and effective method when data distribution isn't skewed.
  • K-Nearest Neighbors: This method uses the `KNNImputer`, which predicts missing values based on the nearest neighbors, providing a more accurate imputation for datasets with relationships between records.
  • Understanding the Data: Before choosing a method, consider the data distribution and the nature of missing values (e.g., missing completely at random, missing at random, or missing not at random).
  • Impact on the Model: Evaluate how the chosen method affects model performance through techniques like cross-validation.
  • Computational Efficiency: Some methods like KNN imputation can become resource-intensive on large datasets.

Related reading
Free course
Beginner
7 lessons
2 hours
Tackling System Design Interview Problems

A short course that equips you with the skills to approach system design interviews methodically.

Start the free course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

ML System Design practice on Codemia

Design recommenders, ranking systems and training pipelines the way ML interviews actually ask for them, with worked solutions.

Practice ML system design

All Rights Reserved.