我承認,我不是一個統計類的傢伙。但是我之前遇到過這類問題。真的,我們在這裏討論的是,你有一些觀察到的離散事件,你想知道如何在任何給定的時間點看到它們。你所得到的問題是你想要獲取離散數據並從中取出連續的數據。
想到的術語是density estimation。具體爲kernel density estimation。您可以通過簡單的分箱來獲得核密度估計的一些效果(例如,計算時間間隔中的數量事件,例如每四分之一小時或每小時)。核密度估計只具有比簡單分箱更好的統計特性。 (產生的數據通常是'平滑的'。)
雖然這只是照顧你的一個問題。接下來的問題仍然是一個更有趣的問題 - 你如何獲取數據的時間線(在這種情況下,只有打印機數據),並從中產生預測?第一件事是第一件事 - 你設置問題的方式可能不是你想要的。儘管擁有有限數據源並預測該源的下一步的奇蹟概念聽起來很有吸引力,但集成更多數據源以創建實際預測更加實用。 (例如,在有很多手機活動之後,打印機可能會受到重創 - 某些公司可能很難預測)Netflix挑戰賽就是這方面的一個頗有力的例子。
當然,更多數據源的問題在於還有額外的工作量來設置收集數據的系統。
老實說,我認爲這是一個領域特定的問題,並採取兩種方法:找到時間無關模式,並找到時間依賴模式。
一個與時間有關的例子是,每週4:30,Suzy打印出當天結束的報告。這發生在每週的特定時間。這種事情很容易以固定的時間間隔進行檢測。 (每天,每週一天,每個週末,每個星期二,每個月的第一天等...)這在預定時間間隔內非常簡單 - 只需創建一週估計概率密度函數的曲線並且返回到時間並平均曲線(可能是通過開窗函數的加權平均以獲得更好的預測)。
如果您想要更復雜一些,找一種方法來自動檢測這些間隔。 (可能數據不會如此強大,以至於你可能只是蠻橫地強制這個。)
一個與時間無關的模式是,每次會計Mike打印一張發票清單時,他都會轉向Johnathan,他在幾小時後打印出一大批完整的發票報告。這種事情更難以發現,因爲它更自由。我建議您查看各種時間間隔(例如30秒,40秒,50秒,1分鐘,1.2分鐘,1.5分鐘,1.7分鐘,2分鐘,3分鐘...... 1小時,2小時,3小時, ....)並通過很好的方式對它們進行二次取樣(例如Lanczos resampling)以創建一個向量。然後使用vector-quantization樣式算法對「有趣」模式進行分類。但是,您需要仔細考慮如何處理類別的確定性 - 如果您的結果類別的數據非常少,則可能不可靠。 (某些矢量量化算法比其他方法更好)
然後,要創建關於將來打印某物的可能性的預測,請查找最近的活動間隔(30秒,40秒,50秒,1分鐘和所有其他間隔)通過矢量量化並基於其確定性對結果進行加權以創建預測的加權平均值。
你要找到測量時間依賴性和時間獨立輸出的確定性來創建一個最終估計的好方法。
這種事情是典型的預測數據壓縮方案。我建議你看看PAQ,因爲它有很多我在這裏過的概念,並且可以提供一些非常有趣的見解。甚至可以使用源代碼以及所用算法的優秀文檔。
你可能要採取從矢量量化完全不同的方法和離散的數據和使用的東西更像是一個PPM方案。它可以非常簡單地實施並且仍然有效。
我不知道這個項目的時限和範圍是什麼,但這樣的事情總是可以採取第N度。如果截止日期有限,我想強調一點,您擔心首先要做的事情,然後使其運作良好。沒有最佳的東西比沒有東西好。
這種項目是酷。如果你把它包裝好,這種項目可以幫你找到工作。我建議你花點時間,把它做對,然後把它作爲功能,開源,有用的軟件發佈。我強烈建議開源,因爲您希望創建一個社區,可以在您有權訪問,支持或支持的更多環境中貢獻數據源提供程序。
祝你好運!
也許你可以生成0和1的列表,將在事件發生的,零否則,再訓練神經網絡識別模式。基本上,如果您的列表長度爲1000個事件,並且您想預測下一個100個,那麼請使用1000-> 100個神經網絡。 –
您可能會在[statistics stackexchange](http://stats.stackexchange.com/)中獲得更好的答案 – amit
不知道!我想我應該只是在那裏重新發布? – ankushg