다음 설명을 기반으로 fit_transform
의 Imputer
클래스,하지만 아이디어는 동일하다 fit_transform
다른 scikit_learn 클래스 등 MinMaxScaler
.
transform
결 측값을 숫자로 바꿉니다. 기본적으로이 숫자는 선택한 일부 데이터 열의 평균입니다. 다음 예제를 고려하십시오.
imp = Imputer()
# calculating the means
imp.fit([[1, 3], [np.nan, 2], [8, 5.5]])
이제 imputer는 첫 번째 열에 평균 (1 + 8) / 2 = 4.5를 사용하고 두 번째 열에 2 열 데이터에 적용 할 때 평균 (2 + 3 + 5.5) / 3 = 3.5를 사용하는 방법을 배웠습니다.
X = [[np.nan, 11],
[4, np.nan],
[8, 2],
[np.nan, 1]]
print(imp.transform(X))
우리는 얻는다
[[4.5, 11],
[4, 3.5],
[8, 2],
[4.5, 1]]
따라서 fit
imputer는 일부 데이터에서 열 평균을 계산하고 transform
누락 된 값을 평균으로 대체하는 일부 데이터에 해당 평균을 적용합니다. 이 두 데이터가 동일하면 (즉, 평균 계산 데이터와 평균이 적용되는 데이터) fit_transform
기본적으로 fit
뒤에 오는을 사용할 수 있습니다 transform
.
이제 당신의 질문 :
왜 데이터를 변환해야합니까?
"다양한 이유로 인해 많은 실제 데이터 세트에는 종종 공백, NaN 또는 기타 자리 표시 자로 인코딩 된 결 측값이 포함되어 있습니다. 그러나 이러한 데이터 세트는 배열의 모든 값이 숫자라고 가정하는 scikit-learn 추정기와 호환되지 않습니다."( source )
훈련 데이터에 모델을 맞추고 테스트 데이터로 변환하는 것은 무엇을 의미합니까?
fit
imputer의은과 아무 상관이 없습니다 fit
피팅 모델에 사용합니다. 따라서 fit
훈련 데이터에 imputer를 사용하면 각 훈련 데이터 열의 평균을 계산할 수 있습니다. transform
테스트 데이터를 사용하면 테스트 데이터의 결 측값이 교육 데이터에서 계산 된 수단으로 대체됩니다.