<commit_before>// Databricks notebook source exported at Sat, 25 Jun 2016 04:27:53 UTC
// MAGIC %md
// MAGIC 
// MAGIC # [Scalable Data Science](http://www.math.canterbury.ac.nz/~r.sainudiin/courses/ScalableDataScience/)
// MAGIC 
// MAGIC ## Keystroke Biometric
// MAGIC ### Scalable data science project by [<NAME>](https://www.linkedin.com/in/andrey-konstantinov-38234531)
// MAGIC 
// MAGIC *supported by* [![](https://raw.githubusercontent.com/raazesh-sainudiin/scalable-data-science/master/images/databricks_logoTM_200px.png)](https://databricks.com/)
// MAGIC and 
// MAGIC [![](https://raw.githubusercontent.com/raazesh-sainudiin/scalable-data-science/master/images/AWS_logoTM_200px.png)](https://www.awseducate.com/microsite/CommunitiesEngageHome)

// COMMAND ----------

// MAGIC %md
// MAGIC # Keystroke Biometric
// MAGIC Completed by <NAME> for Scalable Data Science course for University of Canterbury, Christchurch
// MAGIC 2016/05
// MAGIC 
// MAGIC ### What is keystroke biometric?
// MAGIC https://en.wikipedia.org/wiki/Keystroke_dynamics
// MAGIC 
// MAGIC ### Why?
// MAGIC - detect if an account is shared by multiple people (to enforce licensing)
// MAGIC - detect if an account is accidently used by a second person when a device is left unattended (to block it / reask for password)
// MAGIC - waive the second form authentication factor for less-risky opertions (when keystroke dynamic is strong)
// MAGIC - categorise PC user to experienced and not experienced
// MAGIC 
// MAGIC ### Existing work
// MAGIC Comparing Anomaly-Detection Algorithms for Keystroke Dynamics
// MAGIC - http://www.cs.cmu.edu/~maxion/pubs/KillourhyMaxion09.pdf
// MAGIC - http://www.cs.cmu.edu/~keystroke/
// MAGIC <commit_msg>ujified<commit_after>// Databricks notebook source exported at Tue, 28 Jun 2016 11:18:13 UTC
// MAGIC %md
// MAGIC 
// MAGIC # [Scalable Data Science](http://www.math.canterbury.ac.nz/~r.sainudiin/courses/ScalableDataScience/)
// MAGIC 
// MAGIC ## Keystroke Biometric
// MAGIC ### Scalable data science project by [<NAME>](https://www.linkedin.com/in/andrey-konstantinov-38234531)
// MAGIC 
// MAGIC *supported by* [![](https://raw.githubusercontent.com/raazesh-sainudiin/scalable-data-science/master/images/databricks_logoTM_200px.png)](https://databricks.com/)
// MAGIC and 
// MAGIC [![](https://raw.githubusercontent.com/raazesh-sainudiin/scalable-data-science/master/images/AWS_logoTM_200px.png)](https://www.awseducate.com/microsite/CommunitiesEngageHome)

// COMMAND ----------

// MAGIC %md
// MAGIC The [html source url](https://raw.githubusercontent.com/raazesh-sainudiin/scalable-data-science/master/db/studentProjects/08_AndreyKonstantinov/055_KeystrokeBiometric.html) of this databricks notebook and its recorded Uji ![Image of Uji, Dogen's Time-Being](https://raw.githubusercontent.com/raazesh-sainudiin/scalable-data-science/master/images/UjiTimeBeingDogen.png "uji"):
// MAGIC 
// MAGIC [![sds/uji/studentProjects/08_AndreyKonstantinov/055_KeystrokeBiometric](http://img.youtube.com/vi/rnpa6YsDXWY/0.jpg)](https://www.youtube.com/v/rnpa6YsDXWY?rel=0&autoplay=1&modestbranding=1&start=2586&end=3956)

// COMMAND ----------

// MAGIC %md
// MAGIC # Keystroke Biometric
// MAGIC Completed by <NAME> for Scalable Data Science course for University of Canterbury, Christchurch
// MAGIC 2016/05
// MAGIC 
// MAGIC ### What is keystroke biometric?
// MAGIC https://en.wikipedia.org/wiki/Keystroke_dynamics
// MAGIC 
// MAGIC ### Why?
// MAGIC - detect if an account is shared by multiple people (to enforce licensing)
// MAGIC - detect if an account is accidently used by a second person when a device is left unattended (to block it / reask for password)
// MAGIC - waive the second form authentication factor for less-risky opertions (when keystroke dynamic is strong)
// MAGIC - categorise PC user to experienced and not experienced
// MAGIC 
// MAGIC ### Existing work
// MAGIC Comparing Anomaly-Detection Algorithms for Keystroke Dynamics
// MAGIC - http://www.cs.cmu.edu/~maxion/pubs/KillourhyMaxion09.pdf
// MAGIC - http://www.cs.cmu.edu/~keystroke/
// MAGIC 
{'fraction_non_alphanumeric': 0.1405602923264312, 'fraction_numerical': 0.02241169305724726, 'mean_word_length': 3.970944309927361, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 15, 'lorem ipsum': 0, 'www.': 11, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7250678', 'n_tokens_mistral': 1548, 'n_tokens_neox': 1339, 'n_words': 323}