为这个 { 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
中的值可以从A
、B
、C
、[=16=中的四个值中得到] 通过一些涉及参数的公式;然后使用算法找到最适合您的数据的参数。您选择的公式通常称为 模型.
这个过程叫做regression。
在模型看起来像参数的加权和的特定情况下,这称为 linear regression。这是最简单的情况,找到最佳参数的算法非常简单。我在这里坚持这样一个事实,即线性回归中的术语“线性”涉及模型的参数,而不是数据中的值。例如,如果您假设 Result
可以写成包含四个变量 A
、B
、C
、D
的多项式,那么您可以使用线性回归找到多项式的系数 - 该模型在多项式的系数中是线性的,即使它在变量 A
、B
、C
、[= 中不是线性的16=].
请注意,该方法的整体成功完全取决于您选择的模型。关于简单模型和复杂模型之间的选择,以及在必要时允许复杂模型的正则化技术,但告诉优化算法如果可能的话你更喜欢更简单的模型,需要进行长时间的讨论。
我不会详细介绍正则化技术;这是一个使用 python 模块 sklearn.linear_model.LinearRegression
将 Result
表示为 A
、B
、C
、[= 的仿射组合的简单代码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
我们可以做得更好吗?您可以尝试使用更复杂的模型,看看您是否能得到更好的预测。
我是新来的,实际上这是我的第一个问题,所以如果这不是一个很好的问题,请多多包涵。
任何人都可以使用上述行中的任何其他数据生成一个方程来预测结果列吗?
如果可以的话我很感激你的帮助
我得到了一个包含这些数字的 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
中的值可以从A
、B
、C
、[=16=中的四个值中得到] 通过一些涉及参数的公式;然后使用算法找到最适合您的数据的参数。您选择的公式通常称为 模型.
这个过程叫做regression。
在模型看起来像参数的加权和的特定情况下,这称为 linear regression。这是最简单的情况,找到最佳参数的算法非常简单。我在这里坚持这样一个事实,即线性回归中的术语“线性”涉及模型的参数,而不是数据中的值。例如,如果您假设 Result
可以写成包含四个变量 A
、B
、C
、D
的多项式,那么您可以使用线性回归找到多项式的系数 - 该模型在多项式的系数中是线性的,即使它在变量 A
、B
、C
、[= 中不是线性的16=].
请注意,该方法的整体成功完全取决于您选择的模型。关于简单模型和复杂模型之间的选择,以及在必要时允许复杂模型的正则化技术,但告诉优化算法如果可能的话你更喜欢更简单的模型,需要进行长时间的讨论。
我不会详细介绍正则化技术;这是一个使用 python 模块 sklearn.linear_model.LinearRegression
将 Result
表示为 A
、B
、C
、[= 的仿射组合的简单代码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
我们可以做得更好吗?您可以尝试使用更复杂的模型,看看您是否能得到更好的预测。