Numpy 无法将数组数据从数据类型(';<;M8[ns]';)强制转换为数据类型(';float64';)
我试图预测门票销售,但收到以下错误:Numpy 无法将数组数据从数据类型(';<;M8[ns]';)强制转换为数据类型(';float64';),numpy,scikit-learn,Numpy,Scikit Learn,我试图预测门票销售,但收到以下错误: TypeError: Cannot cast array data from dtype('<M8[ns]') to dtype('float64') according to the rule 'safe' 所有行。这是我的数据头 created event_id tickets_sold tickets_sold_sum 0 3/12/19 1 90 90 1 3/13/19 1 40 130 2 3/14/19 1
TypeError: Cannot cast array data from dtype('<M8[ns]') to dtype('float64') according to the rule 'safe'
所有行。这是我的数据头
created event_id tickets_sold tickets_sold_sum
0 3/12/19 1 90 90
1 3/13/19 1 40 130
2 3/14/19 1 13 143
3 3/15/19 1 8 151
4 3/16/19 1 13 164
处理
datetime
值的最简单方法是将它们转换为POSIX时间戳
X_train = data_train.created.astype("int64").values.reshape(-1, 1) // 10**9
及
然而,通过这种方式,您将学到几乎没有任何有用的信息来预测未来的数据,因为测试集的POSIX时间值合理地超出了训练集中POSIX时间值的范围
我的建议是修改X_train
和X_all
,以便从日期中获得多个信息特征(作为分类特征,使用一个热编码):
处理
datetime
值的最简单方法是将它们转换为POSIX时间戳
X_train = data_train.created.astype("int64").values.reshape(-1, 1) // 10**9
及
然而,通过这种方式,您将学到几乎没有任何有用的信息来预测未来的数据,因为测试集的POSIX时间值合理地超出了训练集中POSIX时间值的范围
我的建议是修改X_train
和X_all
,以便从日期中获得多个信息特征(作为分类特征,使用一个热编码):
可以说,问题源于创建的
事件数据的类型。请提供它的摘录(不是图像),以使错误重现。Hi@句子我更改了它并添加了摘录。您确定错误在linear\u reg.predict(X\u all)
上,而不是在linear\u reg=LinearRegression()期间。fit(X\u train,y\u train)
?发布完整的堆栈跟踪“问题可能源于事件\u数据的类型。已创建。请提供它的摘录(不是图像),以使错误重现。Hi@句子我更改了它并添加了摘录。您确定错误在linear\u reg.predict(X\u all)
上,而不是在linear\u reg=LinearRegression()期间。fit(X\u train,y\u train)
?发布完整的堆栈跟踪`这似乎有效!你能解释一下有什么问题吗?你在用'values.reforme(-1,1)做什么。我的预测似乎仍然是错误的,而且是负的。但我认为这是另一个问题。添加了解释和建议。这似乎有效!你能解释一下有什么问题吗?你在用'values.reforme(-1,1)做什么。我的预测似乎仍然是错误的,而且是负的。但我认为这是另一个问题。添加了解释和建议。
X_all = event_data.created.astype("int64").values.reshape(-1, 1) // 10**9