0

у меня есть:Нормализовать Time Series - Scikit

  1. 3 Википедии отсчеты доступа статьи (еженедельно) (ABC)
  2. данные подспутниковых (еженедельно)
  3. Всего на счету википедия английской статьи трафика (еженедельно)

Моя цель, построить множественную линейную регрессию с подсчетами доступа статьи 3 Википедии и попытаться предсказать будущее землю информация об истине.

Прежде чем приступать к созданию нескольких линейных регрессий, я хочу сделать предварительную обработку (нормализацию или масштабирование) на моих 3 счетах доступа к википедии.

Мой формат данных выглядит следующим образом.

date  | A (x1)  | B (x2) | C (x3) | total_en  | ground truth(y) 

01/01/2008 | 5611  | 606 | 376 | 1467923911 | 3.13599886 
08/01/2008 | 8147  | 912 | 569 | 1627405409 | 2.53335614 
15/01/2008 | 9809  | 873 | 597 | 1744099880 | 2.91287713 
22/01/2008 | 12020 | 882 | 600 | 1804646235 | 3.44497102 
...   | ...  | ... | ... | ...  | ... 

Без нормализации Я строю свою множественную линейную регрессию следующим образом.

wiki3.shape = (150,3) // включить статью ABC с Numpy массива

ground_truth = (150,1) // включают в себя данные о местонахождении наземных в Numpy массиве

X_train, X_test, y_train, y_test = cross_validation.train_test_split(wiki3, ground_truth, test_size=0.3, random_state=1) 

model = linear_model.LinearRegression() 
model.fit(X_train, y_train) 

predictions = model.predict(X_test) 

Мой вопрос для получения лучших результатов Как я могу нормализовать/масштабировать данные x1, x2, x3 и y?

Должен ли я нормализовать каждую статью с общим трафиком английской статьи или использовать другой способ?

Является ли перекрестная проверка K-Fold разумной для временных рядов?

Спасибо.

ответ

0

Чтобы увеличить ваши данные, вы можете использовать sklearn.preprocessing.scale. Если date является вашим index, это так же просто, как wiki3_scaled = scale(wiki3) (если нет, то date также будет масштабироваться, что вам, скорее всего, не понадобится).

Нормализация с total_en является модельным решением. Если у вас есть основания полагать, что A/total_en - лучшая функция, чем A, то идите. Еще лучше, попробуйте оба.

Если вы пытаетесь предсказать ground truth из того же дня A, B и C, то это не проблема временных рядов и к-Fold перекрестной проверки, безусловно, разумно. Если вы пытаетесь предсказать будущее ground truth от сегодняшних A, B, C, ground truth и, возможно, соответствующих отстающих переменных, то я не понимаю, почему вы не можете перекрестно проверять; просто будьте осторожны, чтобы настроить его таким образом, чтобы вы тренировались по истории и перекрестно проверяли будущее.

Вы можете получить ответы на эти решения моделирования на Cross Validated, так как StackOverFlow более ориентирован на программирование.

+0

Спасибо за ваш ответ, у меня есть данные для данных A, B, C и наземных данных истины. Данные статьи A, B, C поступают раньше, чем данные наземной истины, такие как 1 неделя. Итак, когда у меня есть счет доступа к статье A, B, C, я пытаюсь предсказать, что будет на самом деле считать истину. Итак, вы думаете, что теперь k-fold cross validation является разумным? –

Смежные вопросы