规范化机器学习输入

时间:2017-11-08 03:31:48

标签: machine-learning tensorflow

我有一组具有5000个特征的输入,其值从0.005到9000000不等。每个特征具有相似的值(值为10ish的特征也不会具有0.1ish的值)

我正在尝试对此数据集应用线性回归,但是,广泛的输入值会抑制有效的梯度下降。

处理这种差异的最佳方法是什么?如果规范化最好,请详细说明实现此规范化的最佳方法。

谢谢!

1 个答案:

答案 0 :(得分:2)

只需将其作为预处理步骤执行。你可以这样做:

1)计算训练集中每个特征的平均值并存储它。要小心,不要弄乱特征均值和样本均值,这样你就会得到一个大小为[number_of_features(5000ish)]的向量。

2)计算标准。对于训练集中的每个功能并存储它。 [number_of_feature]的大小以及

3)将每个培训和测试条目更新为:

updated =(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