У меня есть набор данных ежедневной температуры, индексированный по дате, и мне нужно предсказать будущую температуру, используя [SVR
] [1] в scikit-learn.Прогнозирование временных рядов с svr в scikit learn
Я застрял с выбором X
и Y
тренинга и X
тестирования набора. Например, если я хочу, чтобы предсказать Y
во время t
то мне нужно обучающего набора, чтобы содержать X
& Y
в t-1, t-2, ..., t-N
где N
является количеством предыдущих дней, используемых для прогнозирования Y
на t
.
Как я могу это сделать?
это он.
df=daily_temp1
# define function for create N lags
def create_lags(df, N):
for i in range(N):
df['datetime' + str(i+1)] = df.datetime.shift(i+1)
df['dewpoint' + str(i+1)] = df.dewpoint.shift(i+1)
df['humidity' + str(i+1)] = df.humidity.shift(i+1)
df['pressure' + str(i+1)] = df.pressure.shift(i+1)
df['temperature' + str(i+1)] = df.temperature.shift(i+1)
df['vism' + str(i+1)] = df.vism.shift(i+1)
df['wind_direcd' + str(i+1)] = df.wind_direcd.shift(i+1)
df['wind_speed' + str(i+1)] = df.wind_speed.shift(i+1)
df['wind_direct' + str(i+1)] = df.wind_direct.shift(i+1)
return df
# create 10 lags
df = create_lags(df,10)
# the first 10 days will have missing values. can't use them.
df = df.dropna()
# create X and y
y = df['temperature']
X = df.iloc[:, 9:]
# Train on 70% of the data
train_idx = int(len(df) * .7)
# create train and test data
X_train, y_train, X_test, y_test = X[:train_idx], y[:train_idx], X[train_idx:], y[train_idx:]
# fit and predict
clf = SVR()
clf.fit(X_train, y_train)
clf.predict(X_test)
Спасибо! Я попытался подогнать его к своей цели, потому что мне также нужны другие функции рядом с предыдущей температурой, но у меня все еще есть ошибка. TypeError: float() аргумент должен быть строкой или числом –
scikit learn не может обрабатывать строки. Вы должны преобразовать все строки в числовые. Если у вас есть фрейм данных pandas, используйте 'pd.get_dummies'. Если вы работаете строго с sklearn, используйте «LabelBinarizer» в модуле предварительной обработки. –
я уже изменил струнные те, Теперь у меня есть поплавок и DateTime типы данных –