为这个 { 20702 20709 20695 20703} 生成一个方程来生成这个 {20714}

produce an equation for this { 20702 20709 20695 20703} to produce this {20714}

我是新来的,实际上这是我的第一个问题,所以如果这不是一个很好的问题,请多多包涵。

任何人都可以使用上述行中的任何其他数据生成一个方程来预测结果列吗?

如果可以的话我很感激你的帮助

我得到了一个包含这些数字的 5 列的 xlsl 文件,这里是它的一部分

A.      B        C       D.     Result
20689   20724   20689   20702   20703
20702   20709   20695   20703   20714
20703   20714   20700   20714   20714
20714   20717   20702   20714   20728
20713   20732   20709   20728   20717
20728   20734   20714   20717   20692
20717   20734   20688   20692   20712
20692   20723   20683   20712   20705
20713   20714   20670   20705   20714
20704   20721   20692   20714   20714
20714   20714   20692   20714   20712
20714   20723   20707   20712   20726
20712   20726   20701   20726   20724
20726   20733   20720   20724   20724
20724   20724   20722   20724   20735
20724   20740   20722   20735   20736
20735   20738   20730   20736   20686
20736   20736   20682   20686   20722
20686   20728   20682   20722   20727
20722   20732   20720   20727   20705
20727   20732   20702   20705   20705
20705   20717   20702   20705   20709
20705   20715   20702   20709   20721
20709   20721   20700   20721   20718
20721   20731   20716   20718   20711
20716   20717   20711   20711   20691
20712   20713   20690   20691   20690
20691   20695   20687   20690   20717
20690   20717   20690   20717   20727
20717   20732   20712   20727   20727
20726   20733   20719   20727   20708
20727   20727   20707   20708   20692
20708   20710   20686   20692   20673
20692   20694   20673   20673   20681
20671   20693   20667   20681   20691
20681   20691   20675   20691   20666
20689   20689   20662   20666   20689
20666   20695   20666   20689   20708
20689   20723   20689   20708   20688
20708   20708   20686   20688   20677
20688   20689   20672   20677   20666
20677   20678   20662   20666   20681
20666   20681   20655   20681   20668
20685   20685   20663   20668   20647
20672   20672   20647   20647   20656
20647   20675   20643   20656   20638
20656   20665   20638   20638   20646
20638   20646   20628   20646   20623
20646   20661   20608   20623   20642

非常感谢任何帮助

它不是您问题的解决方案,但或许,此代码片段对您有所帮助:

import numpy as np
import pandas as pd
df = pd.read_excel("data/data.xlsx")
df["Result"] = (df["A"] + df["B"] + df["C"] + df["D"]) // 4
df

您可以考虑一下并尝试找到一种模式,结果如何取决于列 (A,B,C,D)

如果这没有成功,机器学习中有很多解决这类问题的方法,所以可以假设特征(A、B、C、D 列)和结果,并尝试找到方程的参数

Ax + By + Cz + Dw + M = 结果

如果您了解机器学习领域,还有更多算法可以使用。

一个典型的方法是假设Result中的值可以从ABC、[=16=中的四个值中得到] 通过一些涉及参数的公式;然后使用算法找到最适合您的数据的参数。您选择的公式通常称为 模型.

这个过程叫做regression

在模型看起来像参数的加权和的特定情况下,这称为 linear regression。这是最简单的情况,找到最佳参数的算法非常简单。我在这里坚持这样一个事实,即线性回归中的术语“线性”涉及模型的参数,而不是数据中的值。例如,如果您假设 Result 可以写成包含四个变量 ABCD 的多项式,那么您可以使用线性回归找到多项式的系数 - 该模型在多项式的系数中是线性的,即使它在变量 ABC、[= 中不是线性的16=].

请注意,该方法的整体成功完全取决于您选择的模型。关于简单模型和复杂模型之间的选择,以及在必要时允许复杂模型的正则化技术,但告诉优化算法如果可能的话你更喜欢更简单的模型,需要进行长时间的讨论。

我不会详细介绍正则化技术;这是一个使用 python 模块 sklearn.linear_model.LinearRegressionResult 表示为 ABC、[= 的仿射组合的简单代码16=].

import sklearn.linear_model as sklin
import pandas as pd

data = pd.read_csv('data.csv')

lm = sklin.LinearRegression()
lm.fit(data[['A', 'B', 'C', 'D']], data['Result'])

print(lm.coef_)
# array([ 0.1145072 ,  0.47290074, -0.36769957,  0.74233087])
print(lm.intercept_)
# 774.4947813684666

data['Predicted'] = lm.predict(data[['A', 'B', 'C', 'D']])
print(data)
#         A      B      C      D  Result     Predicted
# 0   20689  20724  20689  20702   20703  20704.326408
# 1   20702  20709  20695  20703   20714  20697.257624
# 2   20703  20714  20700  20714   20714  20706.063777
# 3   20714  20717  20702  20714   20728  20708.006659
# 4   20713  20732  20709  20728   20717  20722.804398
# ...

我做了什么?我要求 sklearn.linear_model.LinearRegression 找到最佳参数 a, b, c, d, e 使得 Result ≈ a * A + b * B + c * C + d * D + e;答案是 [a, b, c, d] = [ 0.1145, 0.4729, -0.3677, 0.7423]e = 774.49。 我将预测添加为数据框中的额外列;关系是:

Predicted = 0.1145 * A + 0.4729 * B - 0.3677 * C + 0.7423 * D + 774.49

我们可以做得更好吗?您可以尝试使用更复杂的模型,看看您是否能得到更好的预测。