I'm new on this website, so hello everybody :)My question:I have a huge amount of viewing data from STBs (set-top-boxes). For example: [1024532, 11/6/2016, 12:03, 2, 65] Means that STB ID=1024532 watched on 11/6/2016 from 12:03, 2 minutes channel 65. I have about 1e9 records like that. Lets talk for the sake of the question about just 1 STB data, let's say STB 1024532 - I have about 30000 viewing events from this STB - on 1 year (2015).I also have demographic data, for example I know that in the household of this STB there are 4 members. What I'm trying to do is to cluster the viewings, based on the click events, to separate viewers. For example, 1 viewer has a tuning event every 2 minutes on average while other viewer is making a tuning event every 20 minutes on average - so in that case I can know that this is viewer A and this is viewer B. Also, I can use the channels they are watching to give a better prediction. So what I have is many many viewing events, which I divide by 4 hours or more of 0 events in the TV - and I need to associate every group of viewing events to a viewer in the household. I have a few millions STBs so of course I can separate my  data to train & test. So my question is what features should I extract from every group of viewing events, and what algorithm should I apply to create the classification model. (I hope I was clear and that my English was not too broken, English is not my first language, Hebrew is).    
Detecting viewing patterns on a large dataset
classification;clustering;predictive modeling;bigdata