Before discussing any model work, it's worth being straight about what the collar has actually seen.

The dataset is 191 clips recorded from one cat over 19 capture sessions. 155 of them carry a behaviour label; the other 36 are unlabelled and excluded. Each clip is a 5-second window: 8 kHz mu-law audio paired with time-aligned 6-axis motion at 104 Hz. The train/test split is 116/39, a 25% held-out split stratified by class.
The class balance is the interesting part, and not in a good way:
Eat 94 Resting 40 Drink 11 Moving 10
Eating dominates because a cat eating is easy to catch and easy to label. Drinking is rarer, briefer, and happens when you aren't watching. "Moving" is a catch-all that turned out to be the hardest to record deliberately, because the moment you follow a cat around with a phone, it stops doing whatever it was doing.
That imbalance sets a ceiling on what any result from this data means. Eleven drink clips is not enough to claim anything general about drinking, and I'll come back to what that does to the numbers in the next log.
One thing the label set does show: it isn't hardcoded. This particular recording happened to contain eat/drink/resting/moving, discovered from the data rather than fixed in firmware. A different recording produces a different label set without touching the collar.
Full dataset breakdown and the training pipeline: github.com/Jerome-Graves/meowtion/tree/main/docs/technical
Jerome Graves
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.