title: After computing the hash, what is the significance of keeping the only the last byte of the hash
body: <p><code>Problem: To generate Test and train to improve on Generalization error.</code> 
  possible solutions: 
  1. Split instances into train 80% and test 20%, train your model on trainset and tests on testset. But repeating above again and again will somehow let the model cram the data as in multiple time splits will select 1st time chosen instances of the testset into trainset(random sampling.)</p>
  
  <p>The above approach might fail when we fetch an updated dataset.
  Another approach is to select each instance's most stable feature/s(combination can be) to create a unique &amp; immutable identifier that will remain robust even after the dataset updates.After selecting one, we could compute a hash of each instance's identifier, keep only the last two bytes of the hash, and put the instance in the test set if the value is &lt;= 256 * test_ratio.}. This will ensure that testset will remain consistent across multiple runs, even if the dataset is refreshed.</p>
  
  <pre><code>Question: What is the significance of just taking last two bytes of the computed hash? 
  </code></pre>