2015-11-18 137 views
1

我有以下問題: 我有一個數據集(arff),存儲了:字符,鍵保持時間,用戶。 所以有了這些信息,我必須計算一個人在鍵盤上打字的概率。哪個WEKA分類器的概率?

如果某人在鍵盤上輸入,則會提取與上述信息相同的信息(用戶,密鑰保持時間,用戶),並與arff文件進行「比較」。結果應該如下:我有一個arff文件中的用戶「John」的數據集。之後,一位用戶輸入他的用戶名「John」並寫入文本。結果應該是用戶「Johns」類型與存儲在arff中的「John」數據集相同的概率。 90%是合適的人,90%是約翰。

我希望我能解釋我的問題。我的問題是,我應該在這種情況下選擇哪一個分類器?我是用IBK做的,但是如果我有15個人,概率將被劃分爲15,並且我得到了小概率。 可能性取決於arff中存儲的人數。還是應該將結果與人數相乘以獲得真正的概率?

+0

當用戶輸入「John」時,你想讓他成爲John而不是John的概率還是找到他最相似的用戶? – AlbertoD

+0

我的意思是,你的分類器應該回答的問題是「他說他是約翰,他說的是實話嗎?」或者「他說他是約翰,但是他真的是誰?」 – AlbertoD

+0

這正是我的問題。所有這些都是有幫助的,但在我的情況下,很難找到:他是約翰而不是約翰的可能性。 (當容易實現時找到他最相似的用戶)。 答案應該看起來像這樣,確切地說,他說他是約翰,但他說的是實話嗎?「。 – dulevw

回答

1

注:分佈的所有概率之和必須是1

它是某種真實的,你得到「小概率」當你有更多的類,但它不是因爲它被分成按類的數量,所以你不會找到你想要的結果乘以數字類的概率:它不再是概率(它可能很容易變成> 1)。


你獲得使用IBK是你想要的東西不同的概率分佈:它會告訴你哪一個,存儲用戶之間,更類似於當前用戶(被約翰概率VS是保羅VS是莎拉等等),獨立於他所說的名字。


你想輸出是一個二元分類的結果,但你需要訓練一個分類爲您儲存的每一個用戶。

每個分類的訓練集將類似於你已經擁有的數據集,但(在約翰的情況下)會有isJohn而不是user,而這種新列將contanin true如果user是約翰和false否則。

EDIT

character, key holdtime, user 
      90,  150ms, John 
      70,  120ms, Sarah 
      100,  110ms, Paul 

將變得

character, key holdtime, isJohn 
     90,  150ms, true 
     70,  120ms, false 
     100,  110ms, false 

這個分類器的輸出分佈是is John VS is not John

要獲得您想要的確切輸出,您必須爲每個存儲的用戶訓練一個分類器,並根據當前用戶所說的名稱調用正確的輸出。


關於使用哪種分類器,我認爲沒有辦法知道哪種分類器最適合您的情況。我通常嘗試一些分類器,並選擇最好的一個

+0

謝謝你的回答。我還必須爲每個用戶製作一個訓練集,例如:john.arff,sarah .arff ...我不明白你的意思是「是約翰」還是「不是約翰」?我也有4列,char,hold,john,不是john?或者它會看起來像*。現在呢?這對我來說沒有任何意義,因爲我總是寫(例如:90,150ms,John),這意味着約翰鍵入了150ms的關鍵字90.我應該爲每個用戶創建一個.arff並且計算這個關鍵字的概率用戶?對於用戶約翰採取john.arff,並看看這個用戶的可能性是什麼?對嗎? – dulevw

+0

我編輯了我的答案,以澄清我的意思是isJohn。是的,你應該爲每個用戶創建一個.arff(和一個不同的分類器) ,那麼對於用戶約翰你拿約翰模型,看看他的概率是多少 – AlbertoD

+0

當然,你可以包括ude在每個用戶的二進制列中: '字符,關鍵保持時間,isJohn,isSarah,... \ n 90,150ms,true,false \ n 70,120ms,false,true \ n 100 ,110ms,假,假' ,然後忽略你不使用的列(對於John的分類器,你忽略isSarah等) – AlbertoD