You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

时间序列预测:客户类别访问日期图表不准确问题求助

时间序列预测图表不符合预期的问题排查与解决

我正尝试基于客户类别与时间戳进行时间序列预测,但生成的图表不符合预期,与参考博客的图表差异明显。调整代码后还出现了空图表的问题,寻求问题原因及解决方案。

完整代码

from google.colab import drive
drive.mount('/content/gdrive', force_remount = True)

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
import matplotlib.pyplot as plt

data = pd.read_csv('gdrive/My Drive/Colab_Notebooks/classproject/classdata.csv', parse_dates=['time_date'], index_col='time_date')
class_id = data['class_id']
time_date = data.index.date
data['date'] = data.index.date

class_id = data['class_id']
time_date = data.index.to_series()
m1 = class_id.ne(class_id.shift())
m2 = time_date.dt.date.ne(time_date.dt.date.shift())
data['count'] = data.groupby((m1 | m2).cumsum()).cumcount().add(1).values

out = data[data.groupby(data.index.date).transform('size').gt(1)]

!pip install pandas-datareader

import pandas_datareader.data as web
import datetime

import pandas as pd 
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

import matplotlib.pyplot as plt
import seaborn as sns

sns.set()

plt.ylabel('Amount of classes')
plt.xlabel('Date')
plt.xticks(rotation=45)

out.index = pd.to_datetime(out['date'], format='%Y-%m-%d')
plt.plot(out.index, out['count'], )

图表对比

  • 当前生成图表:
    当前图表结果
  • 参考目标图表:
    参考图表结果

输入数据

timestampclass_id
2021-09-27 06:00:00A
2021-09-27 03:00:00A
2021-09-27 01:00:00A
2021-09-27 08:29:00C
2021-05-23 08:08:49B
2021-05-23 03:21:49B
2021-05-23 01:22:11C

处理后的数据

counttimestampclass_iddate
12021-09-27 06:00:00A2021-09-27
22021-09-27 03:00:00A2021-09-27
32021-09-27 01:00:00A2021-09-27
12021-09-27 08:29:00C2021-09-27
12021-05-23 08:08:49B2021-05-23
22021-05-23 03:21:49B2021-05-23
12021-05-23 01:22:11C2021-05-23

调整后的代码及问题

尝试以下调整后,生成的第一个图表为空:

plt.ylabel('Amount of classes')
plt.xlabel('date')
plt.xticks(rotation=45)

out.index = pd.to_datetime(out['date'], format='%Y-%m-%d')
out.groupby('class_id').plot()
plt.plot(out.index, out['count'], )

调整后生成的空图表:
调整后图表结果

内容的提问来源于stack exchange,提问作者Sonny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 22:00:12