File size: 4,736 Bytes
fa1310e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
{
  "feature_file_name": "multi_features_data_simu5.pkl",
  "dsp": "model config file (Example)",
  "datasource": [
    {
      "type": "vibration",
      "field": "esp32_vib.z_acc",
      "sample_rate": 1000
    },
    {
      "type": "power",
      "field": "esp32_power.ch0",
      "sample_rate": 200
    },
    {
      "type": "sound",
      "field": "sound.data",
      "sample_rate": 16000
    }
  ],
  "FeatureDummyPoweroff": {
    "Is_enable": true,
    "_Is_enable_dsp": "true: append synthetic power-off feature rows during Feature(wav) and Feature(Direct). false: keep only real data.",
    "power_threshold_mv": 20,
    "_power_threshold_mv_dsp": "Dummy power RMS values are uniform random between 0 and this raw mV threshold.",
    "ratio": 0.1,
    "_ratio_dsp": "Dummy rows relative to real feature windows. 0.1 adds 10%.",
    "label": 0,
    "_label_dsp": "Label value appended only when the feature run already has labels.",
    "random_seed": 42,
    "_random_seed_dsp": "Seed for repeatable dummy data. Use null for non-repeatable random values."
  },
  "Is_train_autoencoder": false,
  "autoencoder_structure": 4,
  "L1": {
    "Is_enable": true,
    "_Is_enable_dsp": "true: train/use L1 for poweroff/standby/running gate. false: skip L1 and let L2 classify all machine states directly.",
    "noise_threshold": 0.01,
    "_noise_threshold_dsp": "0603 the number less of cluster than the threshold, consider to be noise",
    "choose_model_power": "Mix",
    "_choose_model_power_dsp": "options: Mix, DBSCAN",
    "choose_model_vib": "Hierarchical",
    "_choose_model_vib_dsp": "options, Hierarchical, DBSCAN",
    "choose_model_pressure": "Hierarchical",
    "_choose_model_pressure_dsp": "options, Hierarchical, DBSCAN. Pressure is optional and trains only when pressure_features exists.",
    "DBSCAN_power_params": [
      1.2,
      50,
      0.9
    ],
    "DBSCAN_params_dsp": "p1= eps, p2= min count in cluster, p3= standby threshold",
    "Hierarchical_power_params": [
      0.2,
      1,
      2,
      0.2
    ],
    "_param1_dsp": "param 1 is factor ,the stable indicattor (less than value)(difference from the reverse previous 2 level)",
    "_param2_dsp": "param 2 is min number of cluster",
    "_param3_dsp": "param 3 is max number of cluster",
    "_param4_dsp": "param 4 is standby threshold (percentage)",
    "Is_save_model": true,
    "Hierarchical_vib_params": [
      0.2,
      4,
      10,
      0.5
    ],
    "_Hierarchical_vib_params_dsp": "For vibration, the format is same",
    "Hierarchical_pressure_params": [
      0.2,
      4,
      10,
      0.5
    ],
    "_Hierarchical_pressure_params_dsp": "For PU5401 pressure L1 clustering. Same format as vibration.",
    "pressure_l1_feature": "max",
    "_pressure_l1_feature_dsp": "Pressure feature used by L1/noise logic. Options: max, min, average, peak_to_peak.",
    "L1_models_name": "L1_models.pkl"
  },
  "L2": {
    "strategy": "consensus",
    "_strategy_dsp": "options: consensus, feature_fusion, meta_clustering, multi_view_cluster",
    "Is_save_model": true,
    "consensus_model": "GMM",
    "_consensus_model_dsp": "model using on each type of sensor clusting: KMeans, GMM",
    "result_type": "prob",
    "_result_type_dsp": "The input the consensus matrix is each submodel result:  prob (probability), one-hot",
    "feature_fusion_pca_factor": 0.95,
    "_feature_fusion_pca_factor_dsp": "how much the PCA catch of the variance for feature_fusion, meta_clustering, multi_view_cluster",
    "feature_fusion_model": "GMM",
    "meta_clustering_model": "GMM",
    "number_class": 0,
    "_number_class_dsp": "The spicify cluster number of each type of sensor. 0 mean search optimal number base on certain score",
    "min_class": 3,
    "_min_class_dsp": "minimum cluster number for search optimal option",
    "max_class": 7,
    "_max_class_dsp": "maximum cluster number (not include) for search optimal option",
    "stable_indicator": 0.3,
    "_stable_indicator_dsp": "when change less than the value, consider it's stable",
    "covariance_type": "diag",
    "_covariance_type_dsp": "GMM parameter, effect on model size",
    "gmm_reg_covar": 1e-06,
    "_gmm_reg_covar_dsp": "Small covariance regularization for GMM. Increase if a nearly constant sensor causes ill-defined covariance.",
    "consensus_max_matrix_samples": 10000,
    "_consensus_max_matrix_samples_dsp": "Maximum sample count for the full L2 consensus N x N matrix. Larger runs use direct probability clustering.",
    "label_sort_preference": [
      "vibration",
      "pressure",
      "power",
      "sound"
    ],
    "_label_sort_preference_dsp": "Preferred active sensor order for sorting L2 labels from lower to higher activity."
  }
}