2017-10-07 7 views
0

가 나는 특징 dataframe를 척도 78.86000099160675, 분 :StandartScaler로 처리 된 데이터 프레임에 값> 1 또는 <-1? 다음

flattened_num_f.head() 
num_features_test = flattened_num_f.fillna(flattened_num_f.mean()) 

from sklearn.preprocessing import StandardScaler 
std_scaler = StandardScaler() 

num_train_std = pd.DataFrame(std_scaler.fit_transform(num_features_test.loc[y_train_IDs]), \ 
         columns=num_features_test.loc[y_train_IDs].columns, \ 
         index=num_features_test.loc[y_train_IDs].index) 
test_for_stdness(num_train_std) 

마지막 함수 [1 -1] 제약 그것이 최대 100 ~ 요소를 발견 를 나열 넘어 하강 값을 더하고 : -2.785050711746339

정상입니까, 아니면 실수를 했습니까?

답변

2

StandardScaler는 표준 정규 분포 (평균이 0이고 표준 편차가 1 임)를 기반으로 변환을 수행합니다. 이 분포에서 무작위 변수는 무한대와 무한대 사이의 값을 가질 수 있습니다. 큰 값은 더 이상 발생하지 않지만 나타날 수 있습니다. 사실, -1보다 작거나 1보다 큰 값을 볼 확률은 약 32 %입니다. enter image description here.

이미지 소스 및 몇 가지 계산 예는 this Khan Academy page을 참조하십시오.

최소값을 빼고 범위로 나누는 표준 최소 최대 정규화에서는 0과 1 사이의 값을 갖지만 선형 함수로 수정할 수 있으므로 -1과 1 사이의 값을 얻을 수 있습니다.