0

많은 수의 열이있는 데이터 세트가 있습니다. 주어진 열의 값이 다음과 같을 때와 같은 방식으로 프로그램을 프로그래밍했습니다. 누락되면 그것은 imputer 전략으로 mean을 가진 imputer 값으로 채워집니다.열의 모든 값이 sklearn의 입력 벡터에 누락 된 경우 Imputers가 작동하는 방식

그러나 전체 열의 모든 값이 누락 된 경우 컴퓨터가 수행하는 방법과 그러한 경우 올바른 접근 방법은 무엇일까요?

답변

1

주어진 열에서 모든 데이터가 누락 된 경우 Imputer는 해당 열을 버립니다. 여기

한 샘플 측값 갖는 4 개 개의 샘플을 2 열이, 예이다 :

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

그러나

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)) 

이 밖에 지문 경우 두 번째 열의 모든 데이터 누락되었습니다

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)) 

을 우리는 얻을 :

,536 이 colums이 ( 이 기능) 어쨌든 사용할 수 없으므로
[[ 1.] 
[ 1.] 
[ 1.] 
[ 1.] 
[ 1.]] 

이 기본 동작,이 경우에 올바른 접근 방식이 될 수 있습니다.

+0

그러면 어떻게 예측의 입력 벡터가 될 것입니까? ? 새로운 입력 벡터가 특정 값에 대한 값을 가지고 있다고 가정하면 모델이 작동할까요? –

+0

여기 여러 항목에 따라 달라집니다 : - 새로운 입력 벡터가 학습 집합에서 사용되는 경우이 주어진 열에 대한이 하나의 값이 유용하지 않은 것으로 간주하거나 삭제할 수도 있습니다. 원본 데이터 세트의 imputer를 사용하여 나머지 벡터에 대해이 주어진 열의 값을 대체하십시오 (전체 데이터 세트에 대해이 열에 하나의 값만있는 경우 위험한 접근 방식) - 새 입력 벡터가 테스트에있는 경우 이 특정 기능에 대한 값을 사용하여 모델을 훈련하지 않았으므로이 열을 제거해야합니다. – KevinD