最小化黑盒系统的输入和输出之间的相关性

数据挖掘 Python 回归 相关性 matlab 线性回归
2021-10-06 17:58:12

我不确定“最小化相关性”是否是这个问题的正确标题,但我找不到更好的句子来描述我想要实现的目标。

假设我有一个带有多个输入和一个输出的黑匣子。我知道输入和输出之一,并且我有两者的多个示例录音。这个已知输入会以一种不希望的方式修改输出,因此,我想摆脱由已知输入引起的这种“噪音”。这个输入的传递函数可以安全地假设为线性的。

我现在正在做的是遍历示例记录,创建一个线性回归模型来预测不需要的结果,并从每个示例的实际测量输出信号中减去它。之后,我计算所有固定输出信号的平均值,以揭示噪声之外的有意义的数据。

该策略似乎根据以下情节起作用: 在此处输入图像描述

X 轴是已知的输入信号,Y 轴是输出信号,蓝点和绿点分别代表应用线性回归算法前后的平均数据。线条最适合每个数据集。

您可以看到绿线(“清理过的”数据集)的斜率最小,这意味着输出变量与输入的线性相关性比以前要小得多。因此,我假设前面解释的回归技术按预期工作。

我的问题是,看图,是否有任何数学程序可以以最小化输入和输出变量之间的相关性的方式直接“投影”原始数据集?是否有任何数学技巧可以避免在所有示例数据集上使用回归技术来获得相似的结果?

我的书面表达不是最好的,所以如果您需要进一步的解释,请随时评论这个问题。

欢迎任何代码,但首选 python(pandas、numpy 等)和 Matlab。理论解释也很受欢迎。

1个回答

请允许我解释你的问题,以确保我的问题是正确的。

假设您有 100 万个数据条目。每个条目由三个输入组成X1,X2,X3和一个输出. 三个输入之一,X1, 是噪音。你想找到之间的关系X1. 这样就可以消除影响X1.

让我们用一个简化的例子,=2X1+3X2+4X3 如果您将 100 万个条目中的每一个更新为: new=-2X1

现在您可以检查更新的 100 万个条目以查找输入之间的关系X2,X3newnew=3X2+4X3

之间的关系X1可以使用不同的算法进行计算,例如回归、决策树。如何衡量哪种算法产生的结果最好,即真实反映两者之间的关系X1 因此消除了影响 X1 越多越好?

你正在解决的问题是一个有趣的问题。我会使用 Knime 之类的免费工具来找出哪种算法在建模X1. 它比在 Python 或 Matlab 中编码要快。

细节:直观地说,假设房子的价格是由位置、房子的大小、房子的状况决定的。假设这三个因素相互独立。您希望尽可能消除“房屋状况”对“价格”的影响。本质上,您想找到“房屋状况”和“价格”之间的关系,这可能不是线性的。

您可以让 Knime 读取“房屋状况”和“价格”的 100 万条条目,尝试使用决策树、SVM 甚至集成学习,看看哪种算法生成的最佳模型 X1. 换句话说,尝试和错误:)