慕田峪4524236
2023-03-08 11:03:34
我想知道是否有人可以幫助解釋我在 sklearn 的 interativeImputer 中看到的奇怪行為。imputer = IterativeImputer(max_iter=100)print("dateframe shape ", dataframe.shape)tempDF = imputer.fit_transform(dataframe)print("imputer shape: ", tempDF.shape)我假設(shè)形狀會保持不變,但結(jié)果是:dateframe shape (1978, 100)imputer shape: (1978, 91)我在將 numpy 數(shù)組 sklearn 返回轉(zhuǎn)換回 pandas df 時發(fā)現(xiàn)了這個錯誤tempDF = pd.DataFrame(tempDF, index=dataframe.index, columns=dataframe.columns)關(guān)于使用 imputer 時我可以做些什么來保持原始形狀的任何建議?
1 回答

呼如林
TA貢獻1798條經(jīng)驗 獲得超3個贊
這可能是因為你的一些 coloms 無處不在NaN,我為你創(chuàng)建了一個小例子,遵循了文檔:
from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
imp_mean = IterativeImputer(random_state=0)
import numpy as np
imp_mean.fit([[7, 2, np.nan], [4, np.nan, np.nan], [10, 5, np.nan]])
X = [[7, 2, np.nan], [4, np.nan, np.nan], [10, 5, np.nan]]
imp_mean.transform(X)
array([[ 7. , 2. ],
[ 4. , -0.999998],
[10. , 5. ]])
所以如果一切都是NanIterativeImputer 不知道如何適應和轉(zhuǎn)換它。文檔中的原始示例以 (3,3) 形狀結(jié)束。
添加回答
舉報
0/150
提交
取消