views:

114

answers:

1

i'm working on a project and i have a subset of user's key-stroke time data.This means that the user makes n attempts and i will use these recorded attempt time data in various kinds of classification algorithms for future user attempts to verify that the login process is done by the user or some another person. (Simply i can say that this is biometrics)

I have 3 different times of the user login attempt process, ofcourse this is subset of the infinite data.

until now it is an easy classification problem, i decided to use WEKA but as far as i understand i have to create some fake data to feed the classification algorithm.The user's measured attempts will be 1 and fake data will be 0.

can i use some optimization algorithms ? or is there any way to create this fake data to get min false positives ?

Thanks

+3  A: 

There are a couple of different ways you could go about approaching this.

Collect Negative Examples - One easy solution would be to just gather keystroke timing data from other people that could be used as negative examples. If you want to gather a large sample very cheaply, as in about 1000 samples for about $10, you could use a service like Amazon Mechanical Turk.

That is, you could put together a human intelligence task (HIT) that has people type in randomized password like sequences. To get the timing information you'll need to use an External Question, since the restricted HTML for regular questions doesn't support JavaScript.

Use a Generative Model - Alternatively, you could train a generative probability model to a user's keystroke behavior. For example, you could train a Gaussian mixture model (GMM) to the user's delay between keystrokes.

Such a model will give you a probability estimate of keystroke timing information being generated by a specific user. You would then just need to set a threshold of how likely the timing information should be in order for the user to be authenticated.

Use 1-class SVMs - Finally, 1-class SVMs allows you to train a SVM like classifier using only positive examples. To learn one-class SVMs in WEKA, use the LibSVM wrapper if you're using v3.6. If you're using the bleeding edge developer version, there's weka.classifiers.meta.OneClassClassifier.

dmcer
thanks for the answer Daniel.After i understand your points,i will post here for help.
berkay
Sure thing, let me know if there's anything that should be elaborated. If you do find this answer or others to be helpful or informative, be sure to up-vote them and select one as the accepted answer to the question.
dmcer