我正在使用Backpropagation进行人工神经网络,以进行分类任务。然而,我对我正在使用的数据集的规范化感到有点困惑(我没有强大的统计数据/概率背景)。
数据样本如下所示:
5.1, 3.5, 1.4, 0.2, 1
5.2, 2.7, 3.9, 1.4, 2
5.9, 3.0, 5.1, 1.8, 3
每个人的最后一个标记是该类。
现在,由于我正在使用Sigmoid传递函数,我的网络显然无法输出大于1的值,因此需要对数据进行规范化/缩放。
我的第一个问题;我需要扩展功能和类,还是只需要扩展类?
我的第二个问题是,是否存在任何“事实上”或常用的缩放方法?
此致 杰克亨特
答案 0 :(得分:2)
通常建议您也扩展功能。缩放应该与scaled_feature =(feature - min(featurearray))/(max(featurearray) - min(featurearray))一样简单。
因此,对于第一个属性列,新数据将是: (5.1-5.1)/(5.9-5.1); (5.2-5.1)/(5.9-5.1); (5.9-5.1)/(5.9-5.1)
答案 1 :(得分:1)
实际上,缩放主题是采用机器学习算法(尤其是人工神经网络)的最重要方面之一。
是的,(feature-min / max - min)方法是一种可能性。
然而,还有一系列其他方法。例如,您可以使用z分数(根据与平均值的标准偏差)。或者,还存在称为z轴归一化的技术,其中将额外分量添加到归一化矢量。有时,绝对不需要缩放。