各位同事,大家好!我有以下数据:
import matplotlib.pyplot as plt
weather_data = {
'01.12': -4,
'02.12': -5,
'03.12': -5,
'04.12': -7,
'05.12': -10,
'06.12': -11,
'07.12': -11,
'08.12': -13,
'09.12': -13,
'10.12': -11,
'11.12': -6,
'12.12': -5,
'13.12': -7,
'14.12': -9,
'15.12': -8,
'16.12': -4,
'17.12': +2,
'18.12': +2,
'19.12': +4,
'20.12': +3,
'21.12': +1,
'22.12': +1,
'23.12': +1
}
value_clients = {
'01.12': 285,
'02.12': 496,
'03.12': 487,
'04.12': 254,
'05.12': 190,
'06.12': 236,
'07.12': 206,
'08.12': 267,
'09.12': 452,
'10.12': 384,
'11.12': 218,
'12.12': 252,
'13.12': 254,
'14.12': 265,
'15.12': 241,
'16.12': 425,
'17.12': 369,
'18.12': 256,
'19.12': 186,
'20.12': 255,
'21.12': 238,
'22.12': 277,
'23.12': 347
}
days = list(weather_data.keys())
temperatures = list(weather_data.values())
days = list(value_clients.keys())
value = list(value_clients.values())
# Создание графика
plt.figure(figsize=(15, 5)) # Указываем размер графика
plt.plot(days, temperatures, marker='o', linestyle='-', color='b') # График температуры
plt.title('Температура в Твери по дням') # Заголовок графика
plt.xlabel('День недели') # Ось X
plt.ylabel('Температура, °C') # Ось Y
plt.grid(True, which='both', linestyle='--', linewidth=0.5) # Сетка
plt.tight_layout() # Автоматическое распределение пространства
# Создание второго графика
plt.figure(figsize=(15, 5)) # Указываем размер графика
plt.plot(days, value, marker='o', linestyle='-', color='r') # График температуры
plt.title('Количество клиентов посетивших комплекс') # Заголовок графика
plt.xlabel('День месяца') # Ось X
plt.ylabel('Количество человек') # Ось Y
plt.grid(True, which='both', linestyle='-', linewidth=0.5) # Сетка
plt.tight_layout() # Автоматическое распределение пространства
# Отображение графика
plt.show()
接下来它向我显示以下图表:
如何为每个图点添加值标签?还有一个问题,如何找到这两个图之间的相关性?
我先回答第二个问题。甚至从视觉上可以清楚地看出,该图中的相关性明显较弱(第二张图中的“驼峰”明显不合适,总体趋势略有不同。但是。在第二张图中,明显存在“季节性”对工作日/周末有很强的依赖形式。我们来检查这个假设,在数据中添加“周末”属性,看看属性与客户的相关性,并尝试训练线性回归:
结论:
正如您所看到的,客户端和温度之间的相关性非常小;这几乎不会给出任何结果。但如果加上“输出”这个功能,那么就会有相关性
0.9
,这就太好了。您可以根据是否休息日以及气温来相当准确地预测顾客数量。关于如何解释这些结果。查看线性回归系数。温度的系数约为
-1
,即 温度每升高一度,客户端数量就会减少1。但“输出”特征有一个近似系数177
,即 休息一天立即为+177 名客户提供服务。我们模型的均方根误差
RMSE
约为38
,即40
粗略地说,这个模型“对于一家医院来说”平均每天会出现大约一个人的错误,这对于这样一个简单的模型来说可能相当不错了。但是,如果我们回到与温度的相关性,那么根据均方根误差,40
每个客户端随温度的变化1
根本就没有什么,可能只是测量或模型误差。这是需要记住的事情。PS 标题可以添加到相应的图表中,如下所示:
PPS 如果您仅使用一个属性构建相同的线性模型,您将得到:
RMSE=91
,情况要糟糕得多。RMSE=38
,也就是说,无论有没有温度,几乎没有变化,这通常是可以理解的。这是仅基于温度的预测图。这实际上只是访客人数的平均值。
此外,如果我们对所有日子进行恒定预测 - 这段时间内每天的访客平均值(大约
297
每天),我们会得到RMSE=91
与“温度”属性模型相同的指标。我们再次确信,温度对于预测游客几乎没有任何作用。