我在這裏看不到您的問題。因爲它是一個時間戳,從時期開始計算秒數,您只需將模數運算符應用到值爲感興趣的範圍內。如果你訓練一個分類器,你應該能夠預測每一個即將到來的地方。主要問題不是性能,因爲學習只是現在和現在完成,而是如何更新學習數據集。 如前所述,您不必爲此使用機器學習,但是如果您想使用機器學習來完成此任務,則基本上可以在您的1d數據集上使用k-nearest-neighbor來完成。
[編輯]: 混合語言,但固定它:分類器是將執行統計分類的算法。
在機器學習和統計,分類識別的問題,其一組類別(亞羣體)一個新的觀察所屬的訓練集包含觀察數據的基礎上的(或實例)的類別成員已知。 [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
什麼是時間戳的來源?它需要解釋它 – Nishanth 2013-04-11 12:50:19
@ e4e5f4你能詳細說明嗎?爲了簡單起見,讓我們假設,他們是我的foursquare/Facebook檢查的時間戳。或者我的推文與位置。 – Codevalley 2013-04-11 13:38:26
是的,但是什麼是參考?它是從什麼時候開始的滴答計數?起源是什麼? – Nishanth 2013-04-11 13:44:46