📜  使用 Sunbird 处理缺失值

📅  最后修改于: 2022-05-13 01:58:07.295000             🧑  作者: Mango

使用 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