我正在使用FbProphet,我们应该将数据转换为在orer中记录值以规范化数据,如下所示:df['y'] = np.log(df['y'])
但是一旦我预测了值,那么我得到一个这样的数据帧:
ds n_tickets yhat
0 2018-02-17 2202 7.545468
1 2018-02-18 2449 7.703022
2 2018-02-19 2409 7.705301
3 2018-02-20 2364 7.675143
4 2018-02-21 2306 7.693359
5 2018-02-22 2492 7.728534
6 2018-02-23 2300 7.669022
7 2018-02-24 2359 7.534430
8 2018-02-25 2481 7.691983
9 2018-02-26 2446 7.694263
这里,我是预测值,但它们是日志值,n_tickets是我的实际值。所以,我需要将yhat转换回正常数字进行比较。我试图找出但却感到困惑。
答案 0 :(得分:1)
按照Lambda提供的答案,完整的解决方案是:
from io import StringIO
import numpy as np
import pandas as pd
s = """
ds n_tickets yhat
0 2018-02-17 2202 7.545468
1 2018-02-18 2449 7.703022
2 2018-02-19 2409 7.705301
3 2018-02-20 2364 7.675143
4 2018-02-21 2306 7.693359
5 2018-02-22 2492 7.728534
6 2018-02-23 2300 7.669022
7 2018-02-24 2359 7.534430
8 2018-02-25 2481 7.691983
9 2018-02-26 2446 7.694263
"""
# Load your example
df = pd.read_csv(StringIO(s), delim_whitespace=True)
# Add the exponential of the yhat column as a new column
df['exp_yhat'] = np.exp(df['yhat'])
print(df.head())
# ds n_tickets yhat exp_yhat
# 0 2018-02-17 2202 7.545468 1892.148056
# 1 2018-02-18 2449 7.703022 2215.031714
# 2 2018-02-19 2409 7.705301 2220.085527
# 3 2018-02-20 2364 7.675143 2154.131705
# 4 2018-02-21 2306 7.693359 2193.730943