如何根据各种线性回归模型的预测开发预测模型



我正在处理一个工作中遇到一些困难的问题。我包含了一个非常的通用示例来演示我正在处理的问题。

在这种情况下,假设我正在查看几家公司(A、B和C公司(过去几年的数据,并为每家公司开发基于行业质量分数预测销售收入的模型(这是唯一考虑的特征(。我分析过的3家公司在规模和质量得分上有很大差异。

问题是,我想使用我创建的模型的预测,然后能够预测D公司的收入(目前得分约为2(,如果它的质量得分为10。

这是我用来设置问题的代码:

import numpy as np
import matplotlib as mpl
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression
company_a = np.array([
[0.8, 0.4, 0.5, 0.6, 0.7, 1.2, 0.5, 0.9, 1.5, 1.2],
[3, 1, 2, 2, 2, 3, 1, 2, 3, 2]])
company_b = np.array([
[14.5, 15.3, 15.1, 18.7, 18.2, 19.2, 17.8, 22.0, 22.8, 24.1],
[4, 4, 4, 5, 5, 5, 5, 6, 6, 6]])
company_c = np.array([
[7.4, 5.6, 5.2, 6.7, 7.1, 5.9, 8.2, 7.8, 7.9, 11.2],
[7, 6, 6, 7, 8, 8, 8, 7, 8, 10]])
company_d = np.array([[23.0],[2]])
companies = {"company_a": (company_a, "b"), "company_b": (company_b, "r"), "company_c": (company_c, "g"), "company_d": (company_d, "k")}
def plot_companies(data, clr):
lin_reg = LinearRegression()
X = data[1].reshape(-1, 1)
y = data[0].reshape(-1, 1)
try:
lin_reg.fit(X, y)
y_predict = lin_reg.predict(X)
plt.plot(X, y, clr + ".")
plt.plot(X, y_predict, clr + "-", alpha=0.3)
except:
plt.plot(X, y, clr + ".")
for key, value in companies.items():
plot_companies(value[0], value[1])
plt.xlabel("Industry Quality Score", fontsize=12)
plt.ylabel("Revenue (millions of dollars)", fontsize=12)
plt.show()

数据点和线性模型图

假设D公司目前的排名为2,收入为2300万,如果D公司的质量得分为10,我如何使用其他公司的3个线性模型来预测D公司的收入?

您的图表显示,收入和质量之间没有一般的线性关系:这取决于您所关注的公司。

所以答案是,你不能仅仅知道一家新公司的质量分数就对它说什么。

然而,对于每家公司来说,这种关系看起来确实大致是线性的。顺便问一下,你衡量质量的标准不是把收入作为投入吗?在这种情况下,这将直接解释回归是有效的。

至于估计一家质量已知的新公司的收入,如果你有一点(质量,收入(,你可以说当质量为10时,收入会更高。如果你有2分,你可以画一条线,如果你一无所有,那就不可能了。

最新更新