Fettfingerverteilung

10

Kurze Frage:
Gibt es eine Fettfingerverteilung? Ich bin sicher, wenn es existiert, hat es einen anderen Namen.

Ich weiß nicht, wie ich es als analytische Funktion formulieren soll. Können Sie mir helfen, entweder eine vorhandene Version davon zu finden oder sie in einer saubereren Form als einer riesigen Simulation zu formulieren?

Es ist die Verteilung der tatsächlich getroffenen Zahlen, wenn eine bestimmte Zahl das beabsichtigte Ziel ist, aber die Tasten sind viel kleiner als der Finger, so dass in der Nähe befindliche Tasten manchmal versehentlich getroffen werden.

Die Verwendung einer solchen Distribution ist eine falsche Eingabe beim Drücken von Tasten auf einem Mobiltelefon. Wenn ich eine Firma betreiben würde, in der man "jetzt 1 drücken" muss oder so und "Sie haben 1 gedrückt, ist das richtig", dann könnten sie eine anständige Annäherung an die Fettfingerwahrscheinlichkeiten erhalten, obwohl 2 in einer Reihe Fettfinger es durcheinander bringen könnten einige. (Hamming-Abstand in Fettfingern? Fettfinger-Markov-Ketten?)

Ich möchte damit versuchen, eine Fehlerkorrektur in das Drücken von Tasten einzubauen. Ich habe ein paar eigene Beispiele, aber nicht genug Variationen in der Fingerfettigkeit oder der Tastaturtopologie des Mobiltelefons, um robust zu sein.

Hintergrund und Ausarbeitung:
Hier ist ein normales Layout der Handytastatur: Geben Sie hier die Bildbeschreibung ein

Stellen Sie sich vor, meine Finger sind viel größer als die Tasten. Wenn ich also eine 5 treffe, bekomme ich meistens eine 5, aber dann auch eine 2,4,6 oder 8 (ebenso wahrscheinlich) ) und dann bin es weniger wahrscheinlich (aber nicht Null), eine 1,3,7,9 (gleich wahrscheinlich) zu bekommen, und es ist sehr unwahrscheinlich, dass ich eine 0 bekomme.

Ich kann mir vorstellen, dass ich eine Werteverteilung erhalten würde, wenn ich versuchen würde, eine unendliche Anzahl von 5 für einen festen "Fingerdurchmesser" einzugeben. Wenn mein Fingerwert kleiner ist, ändert sich die Verteilung. Wenn ich versuche, eine andere Zahl zu treffen, ändert sich die Verteilung.

In der Praxis hängt dies vom Layout der Tasten ab. Wenn sie sich in einem riesigen Ring und nicht in einem 3x3-Gitter befänden, wäre das eine andere Frage. In diesem Fall werden wir voraussichtlich nur mit 3x3-Rechteckgittern arbeiten. Ich vermute auch, dass die Tastatur über eine digitale Verriegelung verfügt, sodass nur ein Tastendruck erkannt werden kann. Es gibt höchstens 7 Frequenzen für andere Tasten, z. B. wenn die "0" gedrückt wird. Ich bin mir nicht sicher, wie ich das sauber angehen kann. Vielleicht ein Faktor mal normalisierter quadratischer Abstand zwischen dem Zielschlüssel und dem vom Kandidaten ausgelösten Schlüssel?

Hier ist, wie ich die Verteilung simulieren würde, wenn die fünf gedrückt werden (Gewichte sind etwas willkürlich):

#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))

Zusätzlicher Hinweis:
Also habe ich diesen Artikel gelesen:
http://www.scientificamerican.com/article/peculiar-pattern-found-in-random-prime-numbers/

Ich denke, es gibt eine Umkehrung der Variation "Fettfingerverteilung", die für die letzte Ziffer der Primzahlen gilt. Es gibt Ziffern, die aufgrund der letzten Ziffer der Primzahl ausgeschlossen werden.

EngrStudent
quelle

Antworten:

4

Da es sich um diskrete Zahlen handelt, habe ich sofort daran gedacht, eine kategoriale Verteilung als bedingte Verteilung für jeden Zielschlüssel zu verwenden.

Wenn wir also Ihr Beispiel für die Absicht eines Benutzers nehmen, 5 zu drücken, und die tatsächlich gedrückte Taste sein lassen, erhalten wir:K

P(K=k|5)=pk,5wherepk,50andk=09pk,5=1

Wir können eine solche Verteilung für jeden Schlüssel definieren. Dies ist der empirische Teil.

Nehmen wir nun an, die tatsächlich gedrückte Zahl ist , wir wollen auf die beabsichtigte Taste . Dies wird natürlich als Bayes'sches Inferenzproblem ausgedrückt:kI

P(I=i|k)=P(I=i)P(k|I=i)i=09P(I=i)P(k|I=i)

Diese Gleichung gibt die Wahrscheinlichkeit an, mit der der Benutzer drücken wollte, , er drückte .ki k

Sie werden jedoch feststellen, dass dies von abhängt. Dies ist die vorherige Wahrscheinlichkeit, dass jemand jemals beabsichtigen würde , zu drücken . Ich würde mir vorstellen, dass dies davon abhängt, dass die tatsächliche Telefonnummer (natürlich) gedrückt wird, aber da Sie dies nicht wissen, müssen Sie diesen vorherigen Kontext anpassen.iP(I=i)i

Das Fazit ist, dass es keine einzelne Fettfingerverteilung gibt, es sei denn, wir sprechen über die Verteilung, die von einer beabsichtigten Anzahl abhängig ist. Wenn Ihre Fehlerkorrekturmethode nützlich sein soll, muss sie die beabsichtigte Anzahl unter Verwendung dieser bedingten Verteilungen erraten. Dies erfordert jedoch einen nützlichen vorherigen Kontext, andernfalls würde ich erwarten, dass die abgeleitete Taste immer die tatsächlich gedrückte Taste ist ... nicht übermäßig nützlich.


quelle
0

Ich stimme Beys Ansatz zu, dh die bedingte Wahrscheinlichkeit, dass jede Taste gedrückt wird, wenn die Absicht des Benutzers für die beabsichtigte Taste am höchsten ist. Andernfalls würden die Gerätehersteller den Schlüssel umbenennen. Einige Tasten neigen eher dazu, falsch gedrückt zu werden als andere. Vielleicht in Richtung Mitte. Selbst wenn wir dies wissen, weil wir Zahlen eingeben, ist es nicht möglich, Wörter wie das Korrigieren von Wörtern auszunutzen, da eine Zahl genauso gültig ist wie die nächste. Eine Fehlerkorrektur bei einzelnen Tastenanschlägen ist daher nicht möglich.

Was machbar ist, ist die Korrektur oder vielleicht die weniger ehrgeizige Erkennung von Schlüsselfehlern in einem bestimmten Eingabedatentyp. Dies geschieht beispielsweise für eine ISBN oder eine Kreditkartennummer. Telefonnummern haben jedoch keine Prüfsummen. Vielleicht könnte die empirische Verteilung für jede Tastatur verwendet werden, um die effizienteste Überprüfung von Zahlen durchzuführen - dies ist die beste Verwendung der hinzugefügten Prüfnummer (n).

Ben S.
quelle
Wenn ich die Kontrolle hätte, könnte ich Tastengrößen und Zwischenabstände zum geometrischen Treiber der Fehlerkorrektur machen. Vielleicht könnte man mit dem gleichen Bereich, mit dem man arbeiten kann, eine bessere Korrektur vornehmen. Mit dem Aufkommen von Smartphones könnte man die Größe von Tasten dynamisch ändern und ständig berühren, um Absichten zu informieren.
EngrStudent