缺失数据

用 Python 赢下 Kaggle 竞赛

Yauhen Babakhin

Kaggle Grandmaster

缺失数据

ID 分类特征 数值特征 二元目标
1 A 5.1 1
2 B 7.2 0
3 C 3.4 0
4 A NaN 1
5 NaN 2.6 0
6 A 5.3 0
用 Python 赢下 Kaggle 竞赛

填充缺失数据

 

数值数据

  • 均值/中位数填充
ID 分类特征 数值特征 二元目标
1 A 5.1 1
2 B 7.2 0
3 C 3.4 0
4 A NaN 1
5 NaN 2.6 0
6 A 5.3 0
用 Python 赢下 Kaggle 竞赛

填充缺失数据

 

数值数据

  • 均值/中位数填充
  • 常数填充
ID 分类特征 数值特征 二元目标
1 A 5.1 1
2 B 7.2 0
3 C 3.4 0
4 A 4.72 1
5 NaN 2.6 0
6 A 5.3 0
用 Python 赢下 Kaggle 竞赛

填充缺失数据

 

数值数据

  • 均值/中位数填充
  • 常数填充
ID 分类特征 数值特征 二元目标
1 A 5.1 1
2 B 7.2 0
3 C 3.4 0
4 A -999 1
5 NaN 2.6 0
6 A 5.3 0
用 Python 赢下 Kaggle 竞赛

填充缺失数据

 

数值数据

  • 均值/中位数填充
  • 常数填充

分类数据

  • 最频类别填充
ID 分类特征 数值特征 二元目标
1 A 5.1 1
2 B 7.2 0
3 C 3.4 0
4 A -999 1
5 NaN 2.6 0
6 A 5.3 0
用 Python 赢下 Kaggle 竞赛

填充缺失数据

 

数值数据

  • 均值/中位数填充
  • 常数填充

分类数据

  • 最频类别填充
  • 新类别填充
ID 分类特征 数值特征 二元目标
1 A 5.1 1
2 B 7.2 0
3 C 3.4 0
4 A -999 1
5 A 2.6 0
6 A 5.3 0
用 Python 赢下 Kaggle 竞赛

填充缺失数据

 

数值数据

  • 均值/中位数填充
  • 常数填充

分类数据

  • 最频类别填充
  • 新类别填充
ID 分类特征 数值特征 二元目标
1 A 5.1 1
2 B 7.2 0
3 C 3.4 0
4 A -999 1
5 MISS 2.6 0
6 A 5.3 0
用 Python 赢下 Kaggle 竞赛

查找缺失数据

df.isnull().head(1)
         ID       cat       num    target
0     False     False     False     False
df.isnull().sum()
ID        0
cat       1
num       1
target    0
用 Python 赢下 Kaggle 竞赛

数值型缺失值

# Import SimpleImputer
from sklearn.impute import SimpleImputer

# Different types of imputers mean_imputer = SimpleImputer(strategy='mean') constant_imputer = SimpleImputer(strategy='constant', fill_value=-999)
# Imputation df[['num']] = mean_imputer.fit_transform(df[['num']])
用 Python 赢下 Kaggle 竞赛

分类型缺失值

# Import SimpleImputer
from sklearn.impute import SimpleImputer

# Different types of imputers
frequent_imputer = SimpleImputer(strategy='most_frequent')
constant_imputer = SimpleImputer(strategy='constant', fill_value='MISS')

# Imputation df[['cat']] = constant_imputer.fit_transform(df[['cat']])
用 Python 赢下 Kaggle 竞赛

Passons à la pratique !

用 Python 赢下 Kaggle 竞赛

Preparing Video For Download...