回答

1

如果在給定列中缺少所有數據,那麼Imputer將丟棄該列。

下面是一個例子,用4個樣品和2列,與具有缺少值的一個示例:

X = np.array([[1,1],[1,2],[1,1],[1,2],[1,np.nan]]) 
imputer = Imputer(missing_values='NaN', strategy='mean', axis=0) 
print(imputer.fit_transform(X)) 

此打印出

[[ 1. 1. ] 
[ 1. 2. ] 
[ 1. 1. ] 
[ 1. 2. ] 
[ 1. 1.5]] 

然而,如果在第二列中的所有數據丟失:

X = np.array([[1,np.nan],[1,np.nan],[1,np.nan],[1,np.nan],[1,np.nan]]) 
imputer = Imputer(missing_values='NaN', strategy='mean', axis=0) 
print(imputer.fit_transform(X)) 

我們得到:

[[ 1.] 
[ 1.] 
[ 1.] 
[ 1.] 
[ 1.]] 

在這種情況下,此默認行爲可能是正確的做法,因爲無論如何都不能使用此列(,即此功能)。

+0

那麼預測的輸入向量如何呢? ?如果假設新的輸入向量具有該特定值的值,那麼該模型的工作原理是什麼? –

+0

我認爲這取決於多種東西: - 如果您的新輸入向量要在訓練集中使用,您可以考慮這個給定列的這個值沒有用,也可以丟棄它,或者可以使用原始數據集上的imputer來爲這個給定列的其餘向量計算值(一個危險的方法,如果在這個列中只有一個值用於整個數據集) - 如果您的新輸入向量在測試中設置,模型將不會使用此特定功能的值進行訓練,並且需要刪除此列。 – KevinD

相關問題