是否有可能某些输入和输出之间没有关系?

数据挖掘 机器学习 回归 数据 数学
2022-02-15 19:32:14

我有一个普遍的问题出现在我的脑海中,我正在做机器学习项目,我查看了许多数据集并与之合作,其中大部分已经有每个人都在使用的著名数据集。

现在我想到了一个问题,假设我决定制作自己的数据集,是否有可能我的数据非常随机,以至于我的输入和输出之间不存在任何关系?这很有趣,因为如果这是可能的,那么任何机器学习模型都无法在数据中找到输入输出关系,并且无法解决回归或分类问题。

此外,在数学上是否有可能某些值之间完全没有关系?换句话说,没有函数(线性或非线性)可以将这些输入映射到输出。

现在我考虑了这个问题并得出结论,如果有这种可能性,那么它可能会在回归中发生,因为可能目标输出在同一范围内,并且相同的特征值可以对应相同的输出值,这会混淆机器学习模型。

您对此有何看法?作为机器学习工程师、数据科学家或业余爱好者,您在日常生活中是否遇到过这个问题?

2个回答

是与否

是的

让我们考虑两个分布FX(x)GY(y)其联合分布只是两个分布的乘积:HX,Y(x,y)=FX(x)GY(y). 这意味着分布是 100% 独立的:不仅是线性的(没有相关性),而且两个分布之间绝对没有依赖关系。(Copula、Sklar 定理等)

没有

要发生上述情况,两个分布之间必须绝对没有依赖关系。在总体水平上,这是通过Hoeffding 独立性检验计算得出的。

θ=[HX,Y(x,y)FX(x)GY(y)]2dHX,Y(x,y)=0

对于经验数据,这将通过假设检验进行检验H0:θ=0,Ha:θ0.

还记得我们如何从不接受相等的零假设,因为我们知道它不完全正确吗?

是的(再次)

出于所有实际目的,分布可能是不相关的。是的,如果一只蝴蝶在厄瓜多尔扇动翅膀,马达加斯加更有可能发生地震……但可能影响不大。这对应于θ0θ0(对于所有实际目的都相等)。

当然可以。


import numpy as np
from sklearn.linear_model import LinearRegression

lr  = LinearRegression()

X = np.random.rand(1000,10)
y = np.random.rand(1000,1)

lr.fit(X,y)
lr.score(X,y)
Out:   0.00009

在这种情况下,没有关系。

对于分类,您可以执行相同的操作:

import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score

log = LogisticRegression()

X = np.random.rand(1000,10)
y = np.random.rand(1000,1)>0.5



log.fit(X,y)

roc_auc_score(log.predict(X),y)
Out: 0.53

在这种情况下 0.5 是随机的