美文网首页
处理缺失数据

处理缺失数据

作者: 1nvad3r | 来源:发表于2020-09-23 17:10 被阅读0次

方法一:
直接丢弃含缺失数据的列。

# Get names of columns with missing values
cols_with_missing = [col for col in X_train.columns if X_train[col].isnull().any()]

# Drop columns in training and validation data
reduced_X_train = X_train.drop(cols_with_missing, axis=1)
reduced_X_valid = X_valid.drop(cols_with_missing, axis=1)

print("MAE from Approach 1 (Drop columns with missing values):")
print(score_dataset(reduced_X_train, reduced_X_valid, y_train, y_valid))

方法二:
对缺失值进行填充,SimpleImputer()默认按均值填充。

from sklearn.impute import SimpleImputer

# Imputation
my_imputer = SimpleImputer()
imputed_X_train = pd.DataFrame(my_imputer.fit_transform(X_train))
imputed_X_valid = pd.DataFrame(my_imputer.transform(X_valid))

# Imputation removed column names; put them back
imputed_X_train.columns = X_train.columns
imputed_X_valid.columns = X_valid.columns

print("MAE from Approach 2 (Imputation):")
print(score_dataset(imputed_X_train, imputed_X_valid, y_train, y_valid))

方法三:
填充的扩展,在原数据上加几列,列中的值是boolean类型,如果该数据丢失则为1,如果没丢失则为0。

# Get names of columns with missing values
cols_with_missing = [col for col in X_train.columns if X_train[col].isnull().any()]

# Make copy to avoid changing original data (when imputing)
X_train_plus = X_train.copy()
X_valid_plus = X_valid.copy()

# Make new columns indicating what will be imputed
for col in cols_with_missing:
    X_train_plus[col + '_was_missing'] = X_train_plus[col].isnull()
    X_valid_plus[col + '_was_missing'] = X_valid_plus[col].isnull()

# Imputation
my_imputer = SimpleImputer()
imputed_X_train_plus = pd.DataFrame(my_imputer.fit_transform(X_train_plus))
imputed_X_valid_plus = pd.DataFrame(my_imputer.transform(X_valid_plus))

from sklearn.impute import SimpleImputer

# Imputation removed column names; put them back
imputed_X_train_plus.columns = X_train_plus.columns
imputed_X_valid_plus.columns = X_valid_plus.columns

print("MAE from Approach 3 (An Extension to Imputation):")
print(score_dataset(imputed_X_train_plus, imputed_X_valid_plus, y_train, y_valid))

相关文章

  • 机器学习 - 特征工程

    数据处理 缺失值处理行数据缺失过多,用户区分度就会降低,列数据缺失过多会导致建模存在偏差fillna:填充缺失值;...

  • 数据清洗和准备

    一、处理缺失数据 处理方法有: 1、滤除缺失数据 2、填充缺失数据 填充用fillna函数,它的参数有: 其中me...

  • 5.5 数据预处理

    数据预处理包括对收集的数据进行数据缺失处理、检测和过滤异常值及移除重复数据等步骤。 5.5.1 数据缺失处理 数据...

  • pandas基础教程——Day2

    本章内容 数据处理 数据合并 一、数据处理 通过dropna()函数滤除缺失数据: 填充缺失数据:ffill与bf...

  • 121、处理缺失数据

    处理缺失数据 滤除缺失数据 填充缺失数据 如果全为NA值则插值方法不起作用。 源码:

  • 应用R语言进行缺失数据探索及可视化

    R语言中缺失数据处理 应用高级方法进行缺失数据的管理 缺失数据主要包括missing completely at ...

  • Kaggle_01_Titanic

    1. 数据处理 简单分为三种:缺失数据处理、新特征生成和数据归一化 1.1 缺失数据处理: (1) 直接丢掉 - ...

  • 笔记|数据分析之pandas基础----Series与DataF

    如何处理缺失数据 在练习中经常遇到pandas使用浮点值NaN来表示数组中的缺失数据。那我们该如何处理这些缺失数据...

  • 利用R进行脏数据清洗

    在进行正式的数据分析之前,必须要保证数据的质量,故而我们要处理缺失值、异常值这些脏数据。 一、缺失值 缺失值的处理...

  • 数据清洗

    数据清洗:删除原始数据集中的无关数据,重复数据,平滑噪声数据,处理缺失值和异常值 缺失值的处理:删除记录 数据插补...

网友评论

      本文标题:处理缺失数据

      本文链接:https://www.haomeiwen.com/subject/sxyoyktx.html