cancel
Showing results for 
Search instead for 
Did you mean: 

Unico GUI Meta-classifier Issue

ttugur
Associate

I am using LSM6DSOX for my project. As far as I understand, meta-classifiers need to be separate for each function (for my project). But I cannot separate two_hands_free and pushing_chart functions. I think this would pose a problem for machine learning. Is this really the case? Will this cause a problem? What should I do to separate these two? And also how is the meta-classifier determined? Should I collect more data to separate these two?

Ekran görüntüsü 2024-07-29 162602.png

1 ACCEPTED SOLUTION

Accepted Solutions
Federica Bossi
ST Employee

Hi @ttugur ,

The former refers to the numeric value you associate with a given class, and of course you should give your classes different values if you want to distinguish between them when you read a prediction from a tree; in the case of LSM6DSOX the maximum number of values is 16 (0..15), meaning each tree can predict 16 classes maximum.

The metaclassifier offers the possibility of counting how many predictions we receive from a given group, and only when this number reaches a threshold set for that group, the MLCX_SRC register is updated with the decision tree output. So in this case it is not critical that you have one group per class, you could share the same group with "similar" classes. But since it seems you have 4 classes, and LSM6DSOX offers 4 metaclassifier groups, you can have individual counters for each class.

To do so, make sure you assign an output value for the class that fall inside the group:
- Group #1: 0..3
- Group #2: 4..7
- Group #3: 8..11
- Group #4: 12..15

So in your case I would select:
- steady: 1
- random: 4
- two_hands_free: 8
- pushing_chart: 12

Bare in mind that the metaclassifier stage is completely optional, and you can just leave the thresholds set to 0 without changing your output values and the application will still work as expected.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

View solution in original post

1 REPLY 1
Federica Bossi
ST Employee

Hi @ttugur ,

The former refers to the numeric value you associate with a given class, and of course you should give your classes different values if you want to distinguish between them when you read a prediction from a tree; in the case of LSM6DSOX the maximum number of values is 16 (0..15), meaning each tree can predict 16 classes maximum.

The metaclassifier offers the possibility of counting how many predictions we receive from a given group, and only when this number reaches a threshold set for that group, the MLCX_SRC register is updated with the decision tree output. So in this case it is not critical that you have one group per class, you could share the same group with "similar" classes. But since it seems you have 4 classes, and LSM6DSOX offers 4 metaclassifier groups, you can have individual counters for each class.

To do so, make sure you assign an output value for the class that fall inside the group:
- Group #1: 0..3
- Group #2: 4..7
- Group #3: 8..11
- Group #4: 12..15

So in your case I would select:
- steady: 1
- random: 4
- two_hands_free: 8
- pushing_chart: 12

Bare in mind that the metaclassifier stage is completely optional, and you can just leave the thresholds set to 0 without changing your output values and the application will still work as expected.

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.