2017-11-08 2 views
-1

0.005에서 9000000까지의 값을 갖는 5000ish 기능을 가진 입력 집합이 있습니다. 각 기능에는 유사한 값이 있습니다 (값이 10ish 인 기능에는 0.1ish 값이 없습니다.)기계 학습 입력 표준화

이 데이터 세트에 선형 회귀를 적용하려고하지만 입력 값의 범위가 넓어 효과적인 그래디언트 강하가 금지됩니다.

이 분산을 처리하는 가장 좋은 방법은 무엇입니까? 정규화가 가장 좋은 경우이 정규화를 구현하는 가장 좋은 방법에 대한 세부 정보를 포함하십시오.

감사합니다.

답변

2

사전 처리 단계로 간단히 수행하십시오. 다음과 같이 할 수 있습니다.

1) 훈련 세트의 각 기능에 대한 평균값을 계산하고 저장하십시오. 조심하십시오. 피처 평균과 표본 평균을 엉망으로 만들지 마세요. 따라서 크기 [number_of_features (5000ish)]의 벡터를 갖게됩니다.

2) std. 교육 세트의 각 기능에 대해 [number_of_feature]의 크기뿐만 아니라

3) 각 교육 및 시험 항목 업데이트 :

업데이트 = (original_vector - mean_vector을)/std_vector

그것의 그!

코드가 보일 것 같은 :

# train_data shape [train_length,5000] 
# test_data  [test_length, 5000] 
mean = np.mean(train_data,1) 
std = np.std(train_data,1) 

normalized_train_data = (train_data - mean)/ std 
normalized_test_data = (test_data - mean)/ std