0
我有一個包含大量列的數據集,我已經編寫了我的應用程序,使得如果給定列的值爲如果沒有,那麼它將充滿平均值作爲印象策略的重要性值。如果一列中的所有值在sklearn中的輸入向量中缺失,那麼Impings會如何工作
但是,我有點擔心,如果整個列的所有值都丟失了,那麼執行器將如何執行,在這種情況下,正確的方法是什麼?
我有一個包含大量列的數據集,我已經編寫了我的應用程序,使得如果給定列的值爲如果沒有,那麼它將充滿平均值作爲印象策略的重要性值。如果一列中的所有值在sklearn中的輸入向量中缺失,那麼Impings會如何工作
但是,我有點擔心,如果整個列的所有值都丟失了,那麼執行器將如何執行,在這種情況下,正確的方法是什麼?
如果在給定列中缺少所有數據,那麼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.]]
在這種情況下,此默認行爲可能是正確的做法,因爲無論如何都不能使用此列(,即此功能)。
那麼預測的輸入向量如何呢? ?如果假設新的輸入向量具有該特定值的值,那麼該模型的工作原理是什麼? –
我認爲這取決於多種東西: - 如果您的新輸入向量要在訓練集中使用,您可以考慮這個給定列的這個值沒有用,也可以丟棄它,或者可以使用原始數據集上的imputer來爲這個給定列的其餘向量計算值(一個危險的方法,如果在這個列中只有一個值用於整個數據集) - 如果您的新輸入向量在測試中設置,模型將不會使用此特定功能的值進行訓練,並且需要刪除此列。 – KevinD