Improve performance and fix one bug

About the bug:
The last shoper would be ignored in the `for` loop on tranactions in gen_vw_features.py.