我正在用神经网络做一些实验,我想寻求一些支持来验证我的方法和结果。
我的设置:我将数据分成 5 秒的时隙,即所有时间戳都在 5 秒内。对于每个插槽,我得到大约。1000 个样本。此外,我对每个样本都有 7 个均值归一化的特征。4 是数字,3 是布尔 (0,1)。我的网络拓扑是 7-15-1,训练算法是弹性反向传播(Jordan 循环网络),具有 sigmoid 激活函数和 atan 误差函数。我使用 5 折交叉验证来检查网络。每个样本的目标特征是一个布尔值。
我的目标是用一个时隙(时隙 n)的数据来训练网络,并用它来对来自下一个 (n+1) 时隙的样本进行排序(范围从 0-1,因此是单个输出节点)。我正在使用神经网络,因为我想将其性能与 SVM 和逻辑回归等其他模型进行比较。
以下是我关于设置和结果的问题:
- 我能够在时隙内收集具有所有特征的所有样本。我是否需要检查我正在使用的特征的概率分布,或者平均归一化是否足够?
- 将单个输出节点的结果作为排名函数是否合理?
- 训练误差迅速降至 0.1 以下(经过 20-50 次迭代)。随着更多的迭代(高达 10.000)它不会变得更好,通常它会变得更糟(误差高达 0.4)。错误率下降得这么快可以吗,还是我应该持怀疑态度?
- 一般而言,神经网络是否只有在例如 50.000 次迭代之后才真正可用?
- 接受 0.1 的错误率是否合理?当然,越少越好,但我无法进一步减少错误。
- 交叉验证误差总是大约。训练误差的两倍。这太多了吗?我读到“当 cv 误差远大于训练误差时,你的方差很大” 0.2 已经大还是 0.4 大?
- 由于我对每个样本都有一个目标值,因此我还对每个分类器进行了 f-measure 评估。它总是大约。0.75。我选择了0.3作为分类错误阈值,即当理想值(0或1)与预测值之间的差异在0.3以内时,分类是可以的。这个值是不是太大了,或者你会说一个分类阈值应该总是 >0.95?