最近在处理一些数据,缺失情况比较严重 但是又舍不得删掉,
决定试一下这个多重数据插补的包
首先导入我们需要的包
import numpy as np
# 注意 此评估器目前仍处于实验阶段:预测和API可能会发生变化,而不会出现任何弃用周期。要使用它,你需要显式地导入enable_iterative_imputer:
from sklearn.experimental import enable_iterative_imputer
# 现在你可以正常导入 sklearn.impute包了
from sklearn.impute import IterativeImputer
使用插补器对数据v中缺失的值进行插补
Iter= IterativeImputer(max_iter=10,random_state=1997)
Iter.fit(v)
IteraList = Iter.transform(v)
IteraNp = np.array(IteraList)
简单介绍IterativeImputer的几个参数:
链接: sklearn.impute.IterativeImputer 的官方文档在此.
实战实例
def Multivariate_Interpolation(k,v):
imp = IterativeImputer(estimator = BayesianRidge(),max_iter=10, random_state=1997)
imp.fit(v)
IteraList = imp.transform(v)
IteraNp = np.array(IteraList)
IteraNp.shape
IteraDict = {}
count = 0
for line in pdDict["九龍"].columns.values.tolist():
IteraDict[line] = []
for l in IteraList:
IteraDict[line].append(l[count])
count += 1
data=pd.DataFrame(IteraDict)
print(data.head())
return data