使用 Sunbird 处理缺失值
Sunbird库用于特征工程目的。在这个库中,您将获得处理缺失值、异常值、分类编码、归一化和标准化、特征选择技术等的各种技术。
安装:
pip install sunbird
处理缺失值:
数据集可能存在缺失值,这可能会导致某些机器学习算法出现问题。在对预测评估进行建模之前,识别和替换输入数据中每一列的缺失值确实是一个很好的做法。这称为插补。
1. 中值插补
数据集中具有常量数值的列,这些数值被列中剩余值的中位数替换。相对于其他方法,这种方法将避免数据丢失。处理缺失值的统计方法使用均值、中位数或众数插补。
Python3
from sunbird.nan_values import median_imputation
median_imputation(dataframe, feature, plot=True)
Python3
from sunbird.nan_values import mean_imputation
mean_imputation(dataframe, feature, plot=True)
Python3
from sunbird.nan_values import mode_imputation
mode_imputation(dataframe, feature, plot=True)
Python3
from sunbird.nan_values import random_sampler
random_sampler(dataframe, feature, plot=True)
Python3
from sunbird.nan_values import endof_distribution
endof_distribution(dataframe, feature, plot=True)
Python3
from sunbird.nan_values import arbitrary_imputation
arbitrary_imputation(dataframe, feature, arbit, plot=True)
Python3
from sunbird.nan_values import capture_nan
capture_nan(dataframe, feature)
Python3
from sunbird.nan_values import frequent
frequent(dataframe, feature)
Python3
from sunbird.nan_values import fill_missing
fill_missing(dataframe, feature)
Survived Age Fare Age_median
0 22.0 7.2500 22.0
1 38.0 71.283 38.0
1 NAN 7.9250 26.0
1 NAN 53.100 26.0
0 35.0 8.0500 35.0
2. 均值插补
数据集中具有常量数值的列,这些数值被列中剩余值的平均值替换。相对于其他方法,这种方法将避免数据丢失。处理缺失值的统计方法使用平均中位数或模式插补。
蟒蛇3
from sunbird.nan_values import mean_imputation
mean_imputation(dataframe, feature, plot=True)
Survived Age Fare Age_mean
0 22.0 7.2500 22.0
1 38.0 71.283 38.0
1 NAN 7.9250 26.50
1 NAN 53.100 26.50
0 35.0 8.0500 35.0
3. 模式插补
数据集中具有常量数值的列,这些数值被列中剩余值的众数替换。相对于其他方法,这种方法将避免数据丢失。处理缺失值的统计方法使用平均中位数或模式插补。
蟒蛇3
from sunbird.nan_values import mode_imputation
mode_imputation(dataframe, feature, plot=True)
Survived Age Fare Age_mode
0 22.0 7.2500 22.0
1 38.0 71.283 38.0
1 NAN 7.9250 25.0
1 NAN 53.100 25.0
0 35.0 8.0500 35.0
4. 随机样本插补
随机抽样插补包括从变量的可用值池中提取随机观察值。随机抽样插补保留了原始分布,这与其他插补技术不同。
蟒蛇3
from sunbird.nan_values import random_sampler
random_sampler(dataframe, feature, plot=True)
Survived Age Fare Age_random
0 22.0 7.2500 22.0
1 38.0 71.283 38.0
1 NAN 7.9250 37.0
1 NAN 53.100 28.0
0 35.0 8.0500 35.0
5. 分配结束插补
如果怀疑缺失值不是随机的,那么捕获该信息很重要。在这种情况下,人们希望用变量分布尾部的值替换缺失的数据。
蟒蛇3
from sunbird.nan_values import endof_distribution
endof_distribution(dataframe, feature, plot=True)
Survived Age Fare Age_enddist
0 22.0 7.2500 22.0
1 38.0 71.283 38.0
1 NAN 7.9250 40.0
1 NAN 53.100 40.0
0 35.0 8.0500 35.0
6. 任意值插补
任意值插补包括用任意值替换变量中所有出现的缺失值。理想情况下,任意值应该不同于中值/均值/众数,并且不在变量的正常值之内。
蟒蛇3
from sunbird.nan_values import arbitrary_imputation
arbitrary_imputation(dataframe, feature, arbit, plot=True)
Survived Age Fare Age_arbitrary
0 22.0 7.2500 22.0
1 38.0 71.283 38.0
1 NAN 7.9250 25.0
1 NAN 53.100 25.0
0 35.0 8.0500 35.0
7. 捕获 NAN 插补
捕获nan插补表明,这种特征工程技术用于并非完全随机丢失的数据。这种技术用于捕获缺失值的重要性,但由于添加了额外的特征,它可能会导致维度诅咒。
蟒蛇3
from sunbird.nan_values import capture_nan
capture_nan(dataframe, feature)
Survived Age Fare Age_nan
0 22.0 7.2500 0
1 38.0 71.283 0
1 26.0 7.9250 1
1 26.0 53.100 1
0 35.0 8.0500 0
8. 频繁的价值插补
频繁值插补用于处理分类缺失值。在这种技术中,我们根据频率降序对数据集中的值进行排序。该顺序中的第一个值成为最频繁的值,我们用该特定的最频繁值替换其他缺失值。
蟒蛇3
from sunbird.nan_values import frequent
frequent(dataframe, feature)
Survived Age Fare
0 22.0 7.2500
1 38.0 71.283
1 36.0 7.9250
1 36.0 53.100
0 35.0 8.0500
9. 填补缺失的插补
这是最简单的特征工程技术,当有很多缺失值时使用。在这种技术中,我们通过保持剩余值原样来用缺失的单词替换缺失值。
蟒蛇3
from sunbird.nan_values import fill_missing
fill_missing(dataframe, feature)
BsmtQual FireplaceQu GarageType SalePrice
0 Gd TA Attchd 208500
1 Gd TA Missing 181500
2 Gd TA Attchd 223500
3 TA Gd Missing 140000
4 Gd TA Attchd 250000
参考:- www.sunbird.ml