【问题标题】:Regression Problem: How to solve the problem of highly decimal input features [closed]回归问题:如何解决高度十进制输入特征的问题 [关闭]
【发布时间】:2023-03-29 07:05:01
【问题描述】:

我有以下输入数据结构:

   X1     |    X2     |    X3     | ... | Output (Label)
118.12341 | 118.12300 | 118.12001 | ... | [a value between 0 & 1] e.g. 0.423645

我使用tensorflow 来解决这里的回归问题,即预测Output 变量的未来值。为此,我构建了一个前馈神经网络,它具有三个隐藏层,具有relu 激活函数和一个最终输出层,其中一个节点为linear activation。该网络使用 adam 优化器进行反向传播训练。

我的问题是,在对网络进行了数千次训练后,我意识到输入特征和输出中的 高度十进制 值,导致预测仅接近小数点后第二位,例如:

Real value = 0.456751 | Predicted value = 0.452364

但是这是不被接受的,我需要精确到小数点后第四位(至少)才能接受该值。

问:是否有任何值得信赖的技术来正确解决这个问题以获得更好的结果(可能是转换算法)?

提前致谢。

【问题讨论】:

    标签: tensorflow machine-learning keras neural-network data-analysis


    【解决方案1】:

    假设您使用的是常规 MSE 损失,这可能不适合您对每个实例的错误容忍度相对较低的目的。详细地说,MSE 定义如下the average of the the square of the differences between the predicted and true outputs

    假设您有 4 个实例和两个经过训练的函数,每个实例都会产生以下错误:

    F1 错误率:(4,.0004, .0002, .0002)

    F2 错误率:(.9, .9, .9, .9)

    很明显,MSE 将适用于 F2,因为平均 MSE 为 0.81,而 F1 的平均 MSE 约为 16。

    因此,总而言之,MSE 对 square 函数,它夸大了大于 1 的较大差异的权重。

    您可以尝试 MAE,它代表 MEAN ABSOLUTE ERROR,唯一的区别是它不对单个误差执行平方函数,而是计算绝对误差。还有许多其他回归损失可能会显着影响较小的错误,例如具有小 delta (HUBER 损失,您可以阅读有关这些损失的更多信息 here

    另一种可能的解决方案是将其转换为分类问题,如果预测与输出到小数点后 4 位完全相同,则预测为真,否则为假。

    【讨论】:

    • 感谢@Ahmed 是的,我正在使用 MSE,但我不认为我有将问题转换为分类问题的想法,所以你能说明更多。此外,您是否有任何可以解决此问题的 MSE 替代方案
    • 我已通过修复和更多详细说明更新了我的答案,如果我能提供更多帮助,请告诉我。
    • 好的,谢谢,然后我会尽力提供反馈
    猜你喜欢
    • 1970-01-01
    • 2019-03-13
    • 2013-05-14
    • 2020-06-30
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多