我是HMM的新手,但我嘗試使用Jahmm爲UCI人員活動識別數據集創建代碼。該數據集有561個特徵和7352行,還包括加速度計和陀螺儀的xyz慣性值,主要用於識別6個活動:步行,樓上走,樓下步行,坐下,站立和鋪設。到目前爲止,我曾嘗試以下:如何提高準確度? - 使用連續隱馬爾可夫模型(Jahmm)的活動識別
隨着XYZ慣性值:
- 對於各條活動的,我訓練6級的HMM爲每個軸(對於 兩個加速度計和陀螺儀),僅使用針對相應HMM的活動訓練數據 。對於每項活動,我還對所有軸的概率(即應用於 測試數據)應用了相等的權重 ,並將它們全部添加以獲得每項活動的總和。 最大概率將是挑選出的最大概率。 (我在 這一次沒有運氣,有超高精度的活動在 同時超低其他)注意:我使用了「ObservationReal」,6 狀態(實際狀態爲2-10)和只是將HMM的初始值統一分開 。我有時會獲得NaN值爲 的一些活動。
- 我也嘗試在R中先縮放(z-score)數據,然後應用上述方法 ,但仍無濟於事。
- 我也嘗試用「ObservationVector」編碼慣性值, ,但我不知道如何設置最初的Opdfs(它說 它必須是一個正定矩陣)。
隨着特徵值:
- 我發現功能集只是太大,無法Jahmm運行,所以 與上述縮放數據(因爲我無法得到與 拿得出手的成績雖然它是標準化的[-1,1]),我跑了 列車和測試數據的R PCA和相關性之前,我喂他們 我jahmm代碼(其中包括六個6 - 狀態HMM,每 活動,對測試數據採取最大概率),並且 結果仍然是n非常好。特別是座位活動,其中總是有20%左右的準確度。 (與上面的 「注意」相同的參數)
- 我運行randomRorest與R(與mtry = 8)上的相同數據,並得到 的重要性值。我首先用119個變量分隔了機車和靜態活動 ,然後用89個特徵 (基於RF重要值)和靜態活動(坐, )分類機車 活動(Walking,W. Upstairs,W. Downstairs)鋪設)5個變量。靜態活動的分離很容易(2個狀態,100%),但是這種方法與 調整後的HMM參數相比,我只增加了86%的總體精度。 (用於第二級的 三態HMM)
- 我爲所有活動培訓了一個HMM,其中有6個州(對應於 至1個活動,正如我在一篇論文中所閱讀的)。但我無法弄清楚 之後如何使用維特比。它告訴我維特比需要
List<Observation O>
測試序列,但我顯然有我的測試數據List<List<ObservationReal>>
。
我也曾嘗試HMM包在R:
- depmixS4 - 沒有維特比,我不知道怎麼去用測試數據( 後驗概率它給人的probs與 只有列車數據);我試過聯繫 包的作者,他試圖幫助我,但他告訴我嘗試 的代碼給我錯誤(我還沒有給他發郵件)。
- RHmm - 首先像魅力一樣;對所有列車數據僅訓練了一個6態HMM ,但產生了nans,導致維特比與測試數據有差的序列 。
根據我迄今爲止所讀到的關於HMMs,這些結果對於HMM來說太低。難道我做錯了什麼?在使用上述技術之前,我應該做更多的預處理嗎? HMM/Jahmm的數據真的太大了嗎?我是否過度配合?我現在被卡住了,但我真的必須爲我的項目做活動識別和HMM。我很樂意從已經嘗試過Jahmm和R的持續HMM的人那裏得到建議/反饋。我也願意學習其他語言,如果這意味着它最終會奏效。
你的問題很長,HMM是一個非常專業的話題。如果您將問題簡化爲基本問題並且/或者將其分解爲幾個較小的問題,則可以提高您的答案几率,因爲您在這裏結合了相當多的內容。例如。 「弄清楚如何設置最初的Opdfs」(不管那是什麼)可能是一個你可以分開的問題。 – zapl
謝謝。我會按建議分開它們。 – user3416268