Machine learning 标准化机器学习输入
我有一组具有5000ish特征的输入,其值从0.005到9000000不等。每个要素都有相似的值(值为10ish的要素也不会有0.1ish的值) 我试图将线性回归应用于此数据集,但是,输入值的广泛范围正在抑制有效的梯度下降 处理这种差异的最佳方法是什么?如果规范化是最好的,请详细说明实现此规范化的最佳方法Machine learning 标准化机器学习输入,machine-learning,tensorflow,Machine Learning,Tensorflow,我有一组具有5000ish特征的输入,其值从0.005到9000000不等。每个要素都有相似的值(值为10ish的要素也不会有0.1ish的值) 我试图将线性回归应用于此数据集,但是,输入值的广泛范围正在抑制有效的梯度下降 处理这种差异的最佳方法是什么?如果规范化是最好的,请详细说明实现此规范化的最佳方法 谢谢 只需将其作为预处理步骤执行即可。您可以按以下方式执行此操作: 1) 计算训练集中每个特征的平均值并存储。小心,不要弄乱特征平均值和样本平均值,这样您将得到一个大小为[特征数量(5000i
谢谢 只需将其作为预处理步骤执行即可。您可以按以下方式执行此操作: 1) 计算训练集中每个特征的平均值并存储。小心,不要弄乱特征平均值和样本平均值,这样您将得到一个大小为[特征数量(5000ish)]的向量 2) 计算训练集中每个特征的标准并存储。[number_of_feature]的大小 3) 将每个培训和测试条目更新为: 更新=(原始向量-平均向量)/标准向量 就这样 代码如下所示:
# 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