我在这里看不到你的问题。由于它是从纪元开始计算秒数的时间戳,因此您只需应用模运算符,其值为感兴趣的范围。如果你训练一个分类器,你应该能够预测每个即将到来的地方。主要问题不是性能,因为学习只是偶尔进行,而是如何更新学习的数据集。如前所述,您不必为此使用机器学习,但是如果您想使用机器学习来完成,这基本上可以使用一维数据集上的 k 最近邻来完成。
[编辑]:
混合语言但修复它:分类器是将进行统计分类的算法。
在机器学习和统计中,分类是根据包含已知类别成员的观察(或实例)的训练数据集来识别新观察属于一组类别(子群体)中的哪一个的问题。[ 1 ]
由于我只使用 sklearn 来执行此类操作,因此以下是一个简约示例,说明如何使用 k-最近邻分类器 [ 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