As I briefly mentioned earlier, to analyze strokes, each motion needed to be transformed into a more compact representation.
The approach I used was an autoencoder; it receives data about the joints’ coordinates, the putter’s rotation, and etc. as input, attempting to reconstruct it after passing through a compressed internal layer. It must recreate the original motion from this more compact layer so it learns to capture the most important part of the stroke.
Once the model was trained, every stroke in the dataset could be mapped to a point in the learned representation space. Strokes with similar motion structures were naturally plotted near one another, while different motion groups appeared separate.
Nest, clustering methods could be applied to group similar strokes together, revealing recurring motion patterns. What was most important was that these patterns emerged without using any data on the outcome for training. The system was identifying ways golfers move and not judging whether those motions were successful.