Это может быть неправильный выбор, в зависимости от ваших потребностей, есть два варианта, которые приходят мне на ум.
- Инкрементальное моделирование
В этом случае даты смоделированы линейным образом, например, 12 De c, 2018 <12, De c, 2019. </p>
Для этого вам просто необходима функция преобразования, которая преобразует даты в цифры c значения.
Поскольку существует много дат, которые необходимо преобразовать в представление чисел c, первое, что нужно убедиться, это то, что список вывода также имеет тот же порядок, что и упомянутый Лукас. Самый простой способ сделать это - прибавить вес к каждой единице (weight_year> weight_month> weight_day).
def date2num(date_time):
d, m, y = date_time.split('-')
num = int(d)*10 + int(m)*100 + int(y)*1000 # these weights can be anything as long as
# they are ordered
return num
Теперь важно нормализовать числовые значения c.
import numpy as np
date_features = []
for d in list(df['date_time']):
date_features.append(date2num(d))
date_features = np.array(date_features)
date_features_normalized = (date_features - np.min(date_features))/(np.max(date_features) - np.min(date_features))
Использование дня, месяца, года в качестве отдельных функций. Таким образом, вместо рассмотрения даты в целом, мы разделяем. Мотивация заключается в том, что, возможно, будут какие-то отношения между выходными данными и конкретной c датой, месяцем и т. Д. c. Например, может быть, внезапно увеличивается объем производства в летний сезон (например, c месяцев) или, возможно, в выходные дни (например, c дней) .