【发布时间】:2021-02-25 22:03:09
【问题描述】:
我正在处理一个工作中存在一些困难的问题。我已经包含了一个非常通用的示例来演示我正在处理的问题。
在这种情况下,假设我正在查看过去几年的几家公司(公司 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()
Plot of data points and linear models
假设 D 公司目前排名为 2,收入为 2300 万,如果要获得 10 分的质量分数,我如何使用其他公司的 3 个线性模型来预测 D 公司的收入?
【问题讨论】:
标签: python machine-learning statistics linear-regression