肥指分佈
簡短的問題:
是否存在胖指分佈?我敢肯定,如果它存在,那麼它有一個不同的名稱。
我不知道如何將其表述為分析函數。你能幫我找到它的現有版本,或者開始用比巨型模擬更乾淨的東西來製定它嗎?
當給定數字是預期目標時,它是實際命中的數字分佈,但按鈕比手指小得多,因此附近的按鈕有時是意外擊中的按鈕。
使用這樣的分佈是在手機上按下按鈕時的虛假條目。如果我經營一家公司,必須“現在按 1”之類的“你按 1,對嗎”,那麼他們可以獲得一個不錯的胖手指概率近似值,儘管連續 2 個胖手指可能會搞砸它起來一些。 (胖手指的漢明距離?胖手指馬爾可夫鏈?)
我想用它來嘗試在按鍵中建立糾錯功能。我有一些自己的樣本,但手指“胖”或手機鍵盤拓撲的變化不足以保持穩健。
背景與闡述:
想像一下,我的手指比琴鍵大得多,所以當我去打 5 時,我很可能會得到 5,但我也有可能得到 2、4、6 或 8(同樣可能),然後得到 1、3、7、9 的可能性較小(但不是零)(同樣可能)並且極不可能得到 0。
我可以想像,如果我嘗試為固定的“手指直徑”鍵入無限數量的 5,那麼我會得到值的分佈。如果我的手指值較小,則分佈會發生變化。如果我嘗試輸入不同的數字,那麼分佈就會改變。
在實踐中,這將取決於鍵的佈局。如果他們在一個巨大的環中而不是 3x3 網格中,那麼這將是一個不同的問題。在這種情況下,我希望我們只處理 3x3 矩形網格。我還懷疑鍵盤有一個數字鎖存器,因此只能檢測到一個按鍵。其他按鈕最多有 7 個頻率,例如按下“0”時。我不確定一種干淨的方式來參與它。也許目標鍵和候選觸發鍵之間的歸一化平方距離乘以因子?
這是我如何模擬按下五個時的分佈(權重有些隨意):
#number of presses npress <- 1000 #hack this (not quadratic) myprobs <- c(0.85) myprobs <- c(myprobs, 0.1275/4, 0.1275/4, 0.1275/4, 0.1275/4) myprobs <- c(myprobs, 0.019125/4, 0.019125/4, 0.019125/4, 0.019125/4) myprobs <- c(myprobs,1-sum(myprobs) ) #order of number my_button <- c(5,2,4,6,8,1,3,7,9,0) #declare before loop y <- numeric() #sample many button presses for (i in 1:npress){ #press the button, store the result y[i] <- sample(my_button,size=1,prob=myprobs) } #hist, show counts hist((y),freq = T) grid() #hist, show freq hist((y),freq = F) grid() #declare before loop my_p5 <- numeric() # compute the probabilties for (i in 1:length(my_button)){ my_p5[i] <- length(which(y==my_button[i]))/npress } # show probability values print(data.frame(my_button,my_p5))
附加說明:
所以我讀了這篇文章:
http ://www.scientificamerican.com/article/peculiar-pattern-found-in-random-prime-numbers/
我想有一個“胖手指分佈”變化的反面適用於素數的最後一位。根據質數的最後一位數字,有些數字被排除在外。
由於我們正在處理離散數字,我立即想到使用分類分佈作為每個目標鍵的條件分佈。
因此,如果我們以用戶意圖按 5 為例,讓是實際按下的鍵,那麼我們得到:
我們可以為每個鍵定義這樣的分佈。這是經驗部分。
現在,假設實際按下的數字是,我們想推斷出預期的密鑰. 這自然表示為貝葉斯推理問題:
這個等式告訴你用戶打算按下的概率 鑑於他們按下.
但是,您會注意到這取決於,這是某人打算按下的先驗概率. 我想這將取決於實際按下的電話號碼(當然),但由於您不知道這一點,您將需要一些方法來調整這個先前的上下文。
底線是沒有單一的胖手指分佈,除非我們談論的是以預期數量為條件的分佈。如果你的糾錯方法是有用的,它必須使用這些條件分佈來猜測預期的數字。但是,這將需要一些有用的先驗上下文,否則我希望推斷的鍵始終是實際按下的鍵……不太有用。