【发布时间】:2021-06-28 15:07:32
【问题描述】:
我有一个如下图所示的数据框。数据框具有更多功能,但我仅出于简化目的而显示。
CODE DATE IND_AVG_MONTH_REC IND_STD_MONTH_REC
0 15295 2021-01-22 0.375 0.382733
1 15801 2020-12-04 0.125 0.309359
2 23369 2021-01-01 0.750 0.216506
AVG 和 STD 是每个 COD 每月的平均值和标准差。 DATE 是用户最后一次有活动的时间。 我想根据 AVG 和最后日期预测下一个日期。
为此,我进行了线性回归并获得了预测频率。我对结果很满意,因为从预测到测试集的误差很小。 (所有值都是整数或浮点数)
# Not all features fom the data set were used
X = df[['IND_MIN_REC_VAL', 'IND_TOTAL_TERM_CALL_QTY', 'IND_TOTAL_ORIG_CALL', 'IND_VAL_LAST_REC', 'OLD', 'IND_SMS_QTY', 'IND_TOTAL_SMS_QTY', 'IND_MIN_REC_QTY_DAY', 'IND_TOTAL_GPRS_QTY', 'IND_GPRS_QTY', 'IND_AVG_MONTH_GPRS_QTY', 'IND_AVG_MONTH_SMS', 'IND_STD_MONTH_SMS', 'IND_STD_MONTH_GPRS_QTY', 'IND_QTD_LAST_REC', 'COD_TAR', 'COD_CART', 'IND_TERM_CALL_QTY', 'IND_MAX_REC_VAL', 'IND_AVG_TERM_CALL_DUR', 'IND_STD_TERM_CALL_DUR', 'IND_ORIG_CALL_QTY', 'IND_AVG_MONTH_TERM_CALL', 'IND_STD_MONTH_TERM_CALL', 'IND_MAX_REC_QTY_DAY', 'IND_AVG_ORIG_CALL_DUR', 'IND_STD_ORIG_CALL_DUR', 'IND_AVG_MONTH_PRIG_CALL', 'IND_STD_ORIG_CALL', 'IND_AVG_GPRS_DUR', 'IND_STD_GPRS_DUR', 'IND_STD_MONTH_REC_VAL', 'IND_STD_MONTH_REC', 'IND_AVG_MONTH_REC_VAL']]
y = df['IND_AVG_MONTH_REC']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = LinearRegression().fit(X_train, y_train)
y_preds = model.predict((X_test))
然后计算错误指标并得到以下我满意的结果:
MAE: 0.11467427514645877
MSE: 0.03279457004316404
RMSE: 0.1810927111817702
如果我已经有了预测的频率,如何获得下一个(预测的)日期?
有没有办法在 python/pandas 中输入最后日期和预测频率并获取下一个日期?
【问题讨论】:
-
由于您没有显示任何代码,因此很难为您提供帮助。请发布复制模型所需的最少代码,也许有人会回答。
-
嗨,刚刚编辑了更多信息。
标签: python pandas machine-learning scikit-learn time-series