Machine learning 机器学习回归中每个样本的相同与不同目标值

Machine learning 机器学习回归中每个样本的相同与不同目标值,machine-learning,neural-network,regression,Machine Learning,Neural Network,Regression,我是机器学习的新手,学习回归的基本概念。我的困惑可以通过放置一个带有目标值的输入示例来很好地解释。例如,请注意,我举的例子是一般情况,我在一个大型自定义图像数据集上观察了性能和预测值。另外,请注意,目标值不在浮动中。我有: xtrain = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] ytrain = [10, 10, 10, 20, 20, 20, 30, 30, 30, 40, 40, 40] 及 正如您可以注意到的那样,测试集中的三个两个样本具有相似的

我是机器学习的新手,学习回归的基本概念。我的困惑可以通过放置一个带有目标值的输入示例来很好地解释。例如,请注意,我举的例子是一般情况,我在一个大型自定义图像数据集上观察了性能和预测值。另外,请注意,目标值不在浮动中。我有:

xtrain = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
ytrain = [10, 10, 10, 20, 20, 20, 30, 30, 30, 40, 40, 40]

正如您可以注意到的那样,测试集中的三个两个样本具有相似的目标值。假设我有一个多层感知器网络,有一个扁平层和两个密集层。训练后,网络预测测试样本的目标值相同:

yPredicted = [40, 40, 40, 40]
因为预测值都是相同的,所以ytest和yPredicted之间的相关性返回null并给出一个错误

但当我有:

xtrain = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
ytrain = [332, 433, 456, 675, 234, 879, 242, 634, 789, 432, 897, 982]
以及:

预测值为:

yPredicted = [987, 345, 435, 232]
这提供了很好的相关性

我的问题是,当每个输入有不同的目标值时,机器学习算法中有什么东西或过程可以使学习更好?当大量输入值重复时,为什么网络不工作

当大量输入值重复时,为什么网络不工作

最肯定的是,这并不是您的网络在显示的第一个数据集中表现不佳的原因

您没有提供任何代码,因此这将不可避免地是一个定性的答案

仔细查看您的第一个数据集:

xtrain = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
ytrain = [10, 10, 10, 20, 20, 20, 30, 30, 30, 40, 40, 40]
不难得出结论,我们有一个单调递增函数yx,它不是严格单调的,但它在所提供的整个x范围内是单调的

考虑到这一点,您的模型绝对无法知道,对于x>12,函数的定性性质会发生显著而突然的变化,从您的测试集可以明显看出:

xtest = [13, 14, 15, 16]
ytest = [25, 25, 35, 35]
你不应该期望它以任何方式知道或猜测它,尽管许多人似乎相信,NN不是魔法

仔细观察你的第二个数据集,你会发现它不是这样的,因此网络在这里表现得更好也就不足为奇了;在做这样的实验时,非常重要的是要确保我们是在比较苹果,而不是苹果和桔子

你在这里的尝试和你的问题的另一个普遍问题是:神经网络不擅长外推,即在训练它们的数值域之外预测这样的数值函数。有关详细信息,请参见


最后一件不寻常的事情是你对相关性的使用;不确定您为什么选择这样做,但您可能有兴趣知道,在实践中,我们从不使用预测结果和基本事实之间的相关性度量来评估模型性能-我们使用均方误差MSE等度量来代替回归问题,比如你的答案。

你写了一个毫无意义的答案。@RheateyBash欢迎你详细说明,或提供一个替代方案one@RheateyBash至少沙漠之神有勇气回答一个被一些废话用户两次否决的问题。
xtrain = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
ytrain = [10, 10, 10, 20, 20, 20, 30, 30, 30, 40, 40, 40]
xtest = [13, 14, 15, 16]
ytest = [25, 25, 35, 35]