[英]Sequence learning using Conditional Random Fields?
我是順序學習(和機器學習)的新手,我試圖了解如何使用條件隨機場來解決我的問題。
我有一個數據集,它是我的應用程序的最終用戶何時和何地工作的順序日志。 例如,以下數據集將僅包含 User1 的值
User Facility Weekday
User1 FacilityA Monday
User1 FacilityB Tuesday
User1 FacilityC Wednesday
... ... ...
我正在嘗試解決以下問題:給定用戶工作的工作日和設施,他們接下來將在哪個設施和工作日工作?
為了解決這個問題,我開始研究條件隨機場,但是對於任何圖書館來說都很難使用它。
我嘗試使用以下庫: 1. PyStruct ( https://pystruct.github.io/ ) 但由於這個問題,這對我不起作用: 索引越界:使用 Pystruct 擬合 SSVM
所以我轉向另一個庫.. 3. CRF++ ( https://taku910.github.io/crfpp/ )
我能夠安裝 CRF++ 並且能夠運行他們發行版中給出的示例。 但是,我需要一些幫助來了解如何修改模板文件以適合我的用例...
此外,我認為我的標簽將是上述數據集中的設施+工作日的串聯字符串。
我是序列學習的新手,目前正在努力研究如何解決這個問題......
任何建議都會非常有幫助,因為我似乎有點卡在這里..
謝謝!
是的,由於您要預測兩個標簽( Facility 和 Day ),因此需要連接標簽。 否則,您還可以學習 2 種不同的模型來預測每個標簽(參見第 3 點)。
我認為你應該研究這個問題的回歸模型而不是 CRF。
我認為數據的排列應該以易於了解用戶的日志歷史記錄的方式進行。 您能告訴我您對“任何”用戶(最近 3 次登錄?5 次登錄?7 次登錄?)的“最低”歷史記錄嗎?
假設您有每個用戶的最后 3 次登錄。 然后,如果在你的位置上,我會以不同的方式排列數據並學習 2 個不同的模型,一個用於預測日期,另一個用於預測設施。 用於預測日期的數據和模板文件的排列示例是here 。 類似地,將星期幾更改為設施名稱並學習用於預測設施的模型。 您也可以考慮並為我建議的功能添加更多功能。 如果您有更多用戶數據(例如職業或年齡或其他內容),那么您絕對應該嘗試向訓練數據添加更多列,並將這些列作為特征添加到模板文件中。 請記住,測試文件應以與訓練文件相同的方式排列(除了最后一列可以為空/缺失,因為它是模型在測試期間要預測的標簽)。
如果您想繼續並在一個模型中預測兩個標簽,您可以嘗試串聯(在我給您的示例中,day 現在將變為 day_facility)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.