Я не вижу вашей проблемы здесь. Поскольку это временная метка, отсчитывающая секунды от эпохи, вам нужно применить только оператор modulo, значение которого представляет собой диапазон интересов. Если вы обучите классификатор, вы сможете предсказать каждое предстоящее место. Основная проблема заключается не в производительности, а в том, что обучение выполняется только сейчас, а затем, но как обновить изученный набор данных. Как уже говорилось, вам не нужно использовать машинное обучение для этого, но если вы хотите сделать это с помощью машинного обучения, это можно сделать в основном с помощью k-ближайшего соседа в вашем 1d наборе данных.
[EDIT]: Смешанные языки, но исправлены: классификатор - это алгоритм, который будет выполнять статистическую классификацию.
В машинном обучении и статистике, классификация является проблемой определения того, какой из множества категорий (субпопуляций) новое наблюдение принадлежит, на основе обучающего набора данных, содержащих наблюдение (или экземпляры), членство в которых известно. [1]
Как я только использовал sklearn делать такие вещи, следующее минималистичный пример того, как можно использовать к-ближайших соседей классификатором [2]. Чтобы иметь возможность классифицировать, вам нужно изменить строки на числа, а затем подготовить классификатор к данным тестового набора данных, после чего вы сможете предсказать местоположение для новой заданной временной метки.
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
data = [[1365650747255, 'san francisco'],
[1365650743354, 'san francisco'],
[1365650741349, 'san mateo'],
[1365650756324, 'mountain view'],
...
[1365650813354, 'menlo park']]
# Map location strings to integers and replace
location_mapping = {}
location_index = 0
for index, (time, location) in enumerate(data):
if(not location_mapping.has_key(location)):
location_mapping[location] = location_index
location_index += 1
data[index][1] = location_mapping[location]
inverse_location_mapping = {value:key for key, value in location_mapping.items()}
data = np.array(data)
week = 60 * 60 * 24 * 7
# Setup classifier
classifier = KNeighborsClassifier(n_neighbors=10)
# Train classifier on given data
classifier.fit(data[:, 0] % week, data[:, 1])
# Predict desired location
prediction = classifier.predict([[1365444444444 % week]]))
print(inverse_location_mapping[prediction])
[1]: http://en.wikipedia.org/wiki/Statistical_classification
[2]: http://scikit-learn.org/dev/modules/generated/sklearn.neighbors.KNeighborsClassifier.html
Каков источник временной метки? Его необходимо для толкования – Nishanth
@ e4e5f4 Можете ли вы уточнить? для простоты, допустим, это временные метки моих четырехзначных/facebook проверок. Или мои твиты с местами. – Codevalley
Да, но какая ссылка? это количество отсчетов, начиная с? Каково происхождение? – Nishanth