【发布时间】:2019-12-24 20:27:25
【问题描述】:
我正在对一个数据集(Excel 文件)执行线性回归,该数据集包含一个日期列、一个分数列和一个名为 Predictions 的附加列,该列将用于存储预测值。
我发现我的自变量 X 包含我实际上期望的时间戳...?也许我做错了什么,或者实际上错过了什么......?
原始数据集的顶部:
Date Score
0 2019-05-01 4.607744
1 2019-05-02 4.709202
2 2019-05-03 4.132390
3 2019-05-05 4.747308
4 2019-05-07 4.745926
创建独立数据集 (X)
将数据框转换为 numpy 数组
X = np.array(df.drop(['Prediction'],1))
删除最后 '30' 行
X = X[:-forecast_out]
print(X)
输出示例:
[[Timestamp('2019-05-01 00:00:00') 4.607744342064972]
[Timestamp('2019-05-02 00:00:00') 4.709201914086133]
[Timestamp('2019-05-03 00:00:00') 4.132389742485806]
[Timestamp('2019-05-05 00:00:00') 4.74730802483691]
[Timestamp('2019-05-07 00:00:00') 4.7459264970444615]
[Timestamp('2019-05-08 00:00:00') 4.595303054619376]
创建依赖数据集(y) 将数据框转换为 numpy 数组
y = np.array(df['Prediction'])
获取除最后 '30' 行之外的所有 y 值
y = y[:-forecast_out]
print(y)
部分输出:
[4.63738251 4.34354486 5.12284464 4.2751933 4.53362196 4.32665058
4.77433793 4.37496465 4.31239161 4.90445026 4.81738271 3.99114536
5.21672369 4.4932632 4.46858993 3.93271862 4.55618508 4.11493084
4.02430584 4.11672606 4.19725244 4.3088558 4.98277563 4.97960989
将数据分成 80% 的训练和 20% 的测试
x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
创建和训练线性回归模型
lr = LinearRegression()
训练模型
lr.fit(x_train, y_train)
错误:
TypeError: float() argument must be a string or a number, not 'Timestamp'
显然数据集 X 不喜欢有时间戳,就像我说的那样,我并没有真正期待它。
任何关于删除它的帮助(或者我可能需要它!?)会很棒。如您所见,我只是想执行一个简单的回归分析
【问题讨论】:
-
Excel文件中的时间戳是否也在同一列中?
-
@MRL 在 X 初始化期间删除“日期”和“预测”。