Comments (6)
Okay, I want to start on this now.
I'll initially be doing it in several smaller stages, so that the small classifier changes can be tested individually in the wild, for improvements / regressions in accuracy results.
Stage 1 will be items 1 and 2 from the notes list. So the stage 1 goal will be classifier feature / weighting tweaks, to hopefully eliminate the bogus transport type results that've been turning up in locations where they obviously shouldn't.
I'll also probably throw in items 3 and 4, because life is short and people want things now, not later. So it's more important to get results quickly rather than achieving an exact mathematical science.
I'll also probably throw in "tram" as a new transport type. Because literally hundreds of people have asked for it, and adding in one more base type will be an interesting first test for whether the other changes have been beneficial or not.
Oh, I guess I'm supposed to be open sourcing the classifier code too. Hmm. I don't have a solid plan for that yet. So I'll eye the code up while I'm going along, and if there's anything base level that I can cleanly open source along the way, I'll do it then. Basically mix in the open sourcing process along with the classifier improvements.
Alright ... time to get this happening.
from locokit.
Stage 1 Todos
- Stop using
coreMotionActivityType
[Live in Arc App v2.1.9] - Remove the special case rejection of zero
stepHz
values for walking (Maybe? As above, number hunt first) - Ditch pseudo counts for location bound types (car, train, bus, etc)
- If best match score is too low, fall back to "transport", to avoid the zero pseudo counts causing new regions to be classify everything as walking (or whatever the best bad match happens to be).
- Add "tram", because I want to give people something more than just "trust me, it's better" in the first iteration
Stage 2 Todos
- Stop creating empty UD models (ie Arc's private models) for non-core types
- Ditch the "transport" meta type and consolidate into single classifier
- Only auto create GD models server side for base types
- Stop generating / updating GD transport models server side
- Make sure the zero pseudocount coord maps are definitely happening
- Only use D2 models for extended types (ie coordinate bound types)
from locokit.
Remove the special case rejection of zero stepHz values for walking (Maybe? As above, number hunt first)
I gave this one a couple of days on my test devices, and it was a disaster.
The pedometer's data is far too gappy to make it feasible. A large portion of walking samples are recorded with zero cadence and zero step counts. Which results in the walking model getting bloated with zero stepHz values, and the classifier treating a large percentage of vaguely moving indoor samples as walking (eg playing with your phone while lying on the couch). If the building produces drifting location data, then the percentage of false positives goes up significantly. It's a mess.
So that's a failed experiment, and definitely not going to ship!
Stop using coreMotionActivityType [Live in Arc App v2.1.9]
This one is on the fence. It'll need more time and data before it becomes clear whether it's helped or hindered.
I haven't been able to observe any positive difference yet, and there has possibly been some slight negative trend. But the activity types that would benefit from this most are types that are going through a rapid geographical coverage expansion at the moment, so they're going through the usual expected downward slope in reported accuracy, before starting to trend upwards.
I'll give the coreMotionActivityType change another week or two before deciding.
from locokit.
When will you please open sourcing the ML classifiers?
from locokit.
Hi @dolmens! The ML classifiers are already open sourced. Have a look in the develop
branch under Timelines/ActivityTypes
.
https://github.com/sobri909/LocoKit/tree/develop/LocoKit/Timelines/ActivityTypes
from locokit.
Fantastic. Thank you for your excellent work. Read that code later.
from locokit.
Related Issues (20)
- Question about deep sleeping HOT 4
- Can't build develop HOT 6
- Xcode 11, Swift 5.1 HOT 2
- The necessary unit tests should be created HOT 5
- Couldn't build LocoKit Develop branch with Xcode 11.2 HOT 1
- Couldn't build LocoKit Develop branch with Xcode 11.3 HOT 1
- Unable to build in Swift 5 HOT 1
- Battery usage optimization HOT 1
- Is TimelineManager still available? HOT 5
- LocoKit won't build on Apple Silicon Macs HOT 6
- LocoKit SPM resolve warning HOT 2
- ClassifierResults only returns one value: Car HOT 2
- Getting Only stationary activityType from most recent TimelineItem HOT 3
- Deleting TimelineItems HOT 5
- Xcode 13 / Swift 5.5 compatible LocoKitCore HOT 4
- Question for Histogram.probabilityFor HOT 2
- Latest 3.9.1 with iOS 16.4.1 extreme battery drain HOT 4
- Xcode 14.1 Simulator don't build
- Machine Learning Classifiers HOT 1
- The positioning will be erratic at night HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from locokit.