Input: Training data extracted from a genuine user, . Testing data extracted from a genuine user or an imposter, . |
In the training phase: |
(1) for each attribute do |
(2) ← |
(3) ← |
(4) end for |
(5) for each attribute do |
(6) mean ← |
(7) for each row do// Start from second row |
(8) mean ← (mean + )/2 |
(9) end for |
(10) diff ← |
(11) ratio ← (mean − )/diff |
(12) divisor← 20 − (20 * ratio) |
(13) rangeDiff← (diff/divisor) |
(14) end for |
(15) for each row and each attribute in do |
(16) label ← ceil(()/rangeDiff) + (20 − divisor) |
(17) if label = 0 |
(18) label ← 1 // If the data is exactly the same value as the minimum time, then it should be categorized as label |
(19) model← label // We just preserve it as to represent |
(20) end for |
In the testing phase: |
(1) Convert the to the alphabet letter format based on the minimum point the rane difference from step 3 and step 7 |
respectively, from training phase. And then we run from step 15 to step 20 for just once time. |
(2) for each row in model do |
(3) for each attribute in do |
(4) if = model |
(5) Score← 1 |
(6) end for |
(7) Final_Score← sum(Score) |
(8) end for |
(9) Checking_Score ← mean(Final_Score) // Can be max, min, median, mean, and mode |
(10) return Checking_Score |
Output: The score then used to compare the threshold |