HRV狀態差異分析:

  • 嘗試用HRV在各個狀態時的差異來跑ML

  • 焦慮反應與恢復(A1-A3)

    • HRV_DeltaAnx_RMSSD = RMSSD(A2) − RMSSD(A1)
    • HRV_RecAnx_RMSSD = RMSSD(A3) − RMSSD(A2)
    • HRV_ReturnAnx_RMSSD = RMSSD(A3) − RMSSD(A1)
  • 注意力負荷反應(A6-A7)

    • HRV_DeltaAttn_MeanNN = MeanNN(A7) − MeanNN(A6)
    • HRV_DeltaAttn_RMSSD = RMSSD(A7) − RMSSD(A6)
    • HRV_DeltaAttn_SD1 = SD1(A7) − SD1(A6)
  • 正向情緒恢復(A4-A5 + 回到基線)

    • HRV_RecPos_RMSSD = RMSSD(A5) − RMSSD(A4)
    • HRV_ReturnPos_RMSSD = RMSSD(A5) − RMSSD(A1)
    • HRV_ReturnPos_MeanNN = MeanNN(A5) − MeanNN(A1)

傳統統計結果(normal ranking):

/Users/yuchi/PycharmProjects/PsyMl_Data/.venv/bin/python /Users/yuchi/PycharmProjects/PsyMl_ISI/ML/tools/normal_ranking.py 

========================================================================
[3TP] 來源:isi_raw_data_hrv_recalc(已在 SQL where 過濾 3TP IS NOT NULL)
[概況] 列=33 欄=1026  總缺值=10338

[目標 '3TP'] 樣本數:33
  - 類別 0: 19 (57.6%)
  - 類別 1: 14 (42.4%)

------------------------------------------------------------------------
[3TP] 模式=允許 | 允許欄位數=9
  - 實際可用特徵數:9
  - 排序依據:info_gain | Top 9
                      info_gain  gain_ratio     SU  gini_decrease  anova_f    chi2
HRV_DeltaAttn_MeanNN      0.528       0.265  0.354          0.037    0.278  14.538
HRV_ReturnPos_MeanNN      0.455       0.181  0.259          0.000    0.040  12.555
HRV_ReturnPos_RMSSD       0.410       0.188  0.259          0.000    0.857  11.215
HRV_ReturnAnx_RMSSD       0.352       0.172  0.232          0.000    0.008   9.788
HRV_RecAnx_RMSSD          0.277       0.115  0.163          0.000    0.000   8.100
HRV_DeltaAttn_RMSSD       0.257       0.146  0.187          0.247    0.282   7.003
HRV_DeltaAttn_SD1         0.257       0.146  0.187          0.128    0.264   7.003
HRV_RecPos_RMSSD          0.250       0.089  0.131          0.416    1.557   7.762
HRV_DeltaAnx_RMSSD        0.203       0.153  0.175          0.172    0.013   6.057

进程已结束,退出代码为 0

Lasso Ranking

/Users/yuchi/PycharmProjects/PsyMl_Data/.venv/bin/python /Users/yuchi/PycharmProjects/PsyMl_ISI/ML/tools/lasso_ranking.py 
[模式] 允許模式

[資料] 來源=isi_raw_data_hrv_recalc  目標=3TP  樣本=33  特徵=9
  已排除群組:['ACS', 'CPT', 'EEG', 'IGT', 'ISI', 'PSQI', 'WM']
  總缺值比例:18.18%

[CV結果](分數 = neg_log_loss,越大越好 → log_loss 越小)
  lambda_min:C = 0.199635  |  lambda = 5.00913
  lambda_2SE:C = 0.0316228  |  lambda = 31.6228

[選入變項(2SE)] 以 |係數| 排序(前 30)
  (無變項被選入;可放寬正則或檢查特徵)

[對照] lambda_min 非零變項數:0,lambda_2SE 非零變項數:0

[Top 10(路徑峰值)] 不綁定單一 C
HRV_ReturnPos_MeanNN
 HRV_DeltaAttn_RMSSD
HRV_DeltaAttn_MeanNN
    HRV_RecPos_RMSSD
 HRV_ReturnPos_RMSSD
  HRV_DeltaAnx_RMSSD
    HRV_RecAnx_RMSSD
 HRV_ReturnAnx_RMSSD
   HRV_DeltaAttn_SD1

Lasso Ranking 200次循環

/Users/yuchi/PycharmProjects/PsyMl_Data/.venv/bin/python /Users/yuchi/PycharmProjects/PsyMl_ISI/ML/tools/lasso_ranking/1_lasso_stability_ranking.py 
[資料] 來源=isi_raw_data_hrv_recalc  目標=3TP  樣本=33  特徵=9

[穩定性排名] 已輸出:/Users/yuchi/PycharmProjects/PsyMl_ISI/ML/tools/outputs/lasso_stability_ranking.csv
             feature  count  freq  mean_abs_coef
   HRV_DeltaAttn_SD1    200   1.0      10.310658
 HRV_DeltaAttn_RMSSD    200   1.0       5.253410
    HRV_RecPos_RMSSD    200   1.0       2.105531
HRV_DeltaAttn_MeanNN    200   1.0       1.630612
  HRV_DeltaAnx_RMSSD    200   1.0       1.394721
 HRV_ReturnPos_RMSSD    200   1.0       1.328560
HRV_ReturnPos_MeanNN    200   1.0       1.257333
 HRV_ReturnAnx_RMSSD    200   1.0       0.692708
    HRV_RecAnx_RMSSD    200   1.0       0.630162

運算結果

  • BAI_T1, BDI_T1


[資料] 目標=3TP 樣本=27 特徵=2
使用欄位:['BDI_T1', 'BAI_T1']
[SMOTE] OFF (mode=Standard, k_neighbors=5, class_weight_when_smote=True)
[CLASS_WEIGHT] mode=Off

[目標分佈]
  - 類別 0: 15 (55.6%)
  - 類別 1: 12 (44.4%)
[偵測] 目標型態:binary;classes=[0 1]

=== Basic ML Benchmark (Standard | Repeated Stratified 5-fold x 100 CV) | seed=42 | SMOTE=OFF | class_weight=OFF ===
             model   AUC  F1_pos(=1)  Prec_pos  Rec_pos  F1_neg(=0)  Prec_neg  Rec_neg   MCC  Accuracy  Pred1_mean  Pred0_mean
        NaiveBayes 0.942       0.737     0.855    0.696       0.847     0.824    0.915 0.653     0.820       1.936       3.464
LogisticRegression 0.938       0.719     0.848    0.664       0.846     0.804    0.925 0.630     0.812       1.830       3.570
      RandomForest 0.912       0.678     0.732    0.690       0.771     0.798    0.795 0.514     0.749       2.272       3.128
               SVM 0.895       0.705     0.823    0.663       0.829     0.800    0.898 0.601     0.796       1.906       3.494
               KNN 0.880       0.681     0.765    0.673       0.806     0.809    0.855 0.564     0.775       2.054       3.346
      DecisionTree 0.738       0.679     0.741    0.686       0.764     0.791    0.791 0.510     0.745       2.278       3.122

--- Aggregated Confusion Matrix Sums (Standard) ---
             model  TN_sum  FP_sum  FN_sum  TP_sum
        NaiveBayes    1372     128     360     840
LogisticRegression    1387     113     398     802
      RandomForest    1193     307     371     829
               SVM    1347     153     400     800
               KNN    1283     217     390     810
      DecisionTree    1186     314     375     825

--- Specificity / Sensitivity (Standard) ---
             model  Specificity  Sensitivity
        NaiveBayes        0.915        0.700
LogisticRegression        0.925        0.668
      RandomForest        0.795        0.691
               SVM        0.898        0.667
               KNN        0.855        0.675
      DecisionTree        0.791        0.688



  • 加上HRV_DeltaAttn_MeanNN

[資料] 目標=3TP 樣本=27 特徵=3
使用欄位:['BDI_T1', 'BAI_T1', 'HRV_DeltaAttn_MeanNN']
[SMOTE] OFF (mode=Standard, k_neighbors=5, class_weight_when_smote=True)
[CLASS_WEIGHT] mode=Off

[目標分佈]
  - 類別 0: 15 (55.6%)
  - 類別 1: 12 (44.4%)
[偵測] 目標型態:binary;classes=[0 1]

=== Basic ML Benchmark (Standard | Repeated Stratified 5-fold x 100 CV) | seed=42 | SMOTE=OFF | class_weight=OFF ===
             model   AUC  F1_pos(=1)  Prec_pos  Rec_pos  F1_neg(=0)  Prec_neg  Rec_neg   MCC  Accuracy  Pred1_mean  Pred0_mean
               SVM 0.912       0.728     0.853    0.674       0.856     0.811    0.932 0.645     0.820       1.828       3.572
      RandomForest 0.902       0.709     0.785    0.705       0.802     0.817    0.839 0.579     0.780       2.180       3.220
LogisticRegression 0.875       0.711     0.842    0.657       0.842     0.799    0.921 0.619     0.806       1.820       3.580
               KNN 0.854       0.696     0.832    0.638       0.846     0.794    0.933 0.611     0.805       1.738       3.662
        NaiveBayes 0.842       0.709     0.822    0.674       0.822     0.804    0.885 0.601     0.794       1.974       3.426
      DecisionTree 0.727       0.658     0.719    0.667       0.756     0.778    0.788 0.486     0.734       2.236       3.164

--- Aggregated Confusion Matrix Sums (Standard) ---
             model  TN_sum  FP_sum  FN_sum  TP_sum
               SVM    1398     102     388     812
      RandomForest    1258     242     352     848
LogisticRegression    1382     118     408     792
               KNN    1400     100     431     769
        NaiveBayes    1327     173     386     814
      DecisionTree    1182     318     400     800

--- Specificity / Sensitivity (Standard) ---
             model  Specificity  Sensitivity
               SVM        0.932        0.677
      RandomForest        0.839        0.707
LogisticRegression        0.921        0.660
               KNN        0.933        0.641
        NaiveBayes        0.885        0.678
      DecisionTree        0.788        0.667
  • 加上HRV_ReturnPos_MeanNN

[資料] 目標=3TP 樣本=27 特徵=3
使用欄位:['BDI_T1', 'BAI_T1', 'HRV_ReturnPos_MeanNN']
[SMOTE] OFF (mode=Standard, k_neighbors=5, class_weight_when_smote=True)
[CLASS_WEIGHT] mode=Off

[目標分佈]
  - 類別 0: 15 (55.6%)
  - 類別 1: 12 (44.4%)
[偵測] 目標型態:binary;classes=[0 1]

=== Basic ML Benchmark (Standard | Repeated Stratified 5-fold x 100 CV) | seed=42 | SMOTE=OFF | class_weight=OFF ===
             model   AUC  F1_pos(=1)  Prec_pos  Rec_pos  F1_neg(=0)  Prec_neg  Rec_neg   MCC  Accuracy  Pred1_mean  Pred0_mean
        NaiveBayes 0.911       0.765     0.840    0.752       0.840     0.847    0.873 0.658     0.821       2.194       3.206
LogisticRegression 0.898       0.711     0.838    0.657       0.844     0.801    0.922 0.618     0.807       1.818       3.582
      RandomForest 0.890       0.639     0.730    0.631       0.772     0.775    0.824 0.492     0.739       2.042       3.358
               SVM 0.877       0.752     0.844    0.727       0.842     0.832    0.889 0.650     0.818       2.084       3.316
               KNN 0.868       0.670     0.813    0.611       0.832     0.779    0.927 0.580     0.788       1.686       3.714
      DecisionTree 0.718       0.640     0.704    0.638       0.756     0.765    0.797 0.463     0.727       2.140       3.260

--- Aggregated Confusion Matrix Sums (Standard) ---
             model  TN_sum  FP_sum  FN_sum  TP_sum
        NaiveBayes    1309     191     294     906
LogisticRegression    1383     117     408     792
      RandomForest    1236     264     443     757
               SVM    1333     167     325     875
               KNN    1390     110     467     733
      DecisionTree    1196     304     434     766

--- Specificity / Sensitivity (Standard) ---
             model  Specificity  Sensitivity
        NaiveBayes        0.873        0.755
LogisticRegression        0.922        0.660
      RandomForest        0.824        0.631
               SVM        0.889        0.729
               KNN        0.927        0.611
      DecisionTree        0.797        0.638
      DecisionTree        0.798        0.655
  • 加上HRV_RecPos_RMSSD

[資料] 目標=3TP 樣本=27 特徵=3
使用欄位:['BDI_T1', 'BAI_T1', 'HRV_RecPos_RMSSD']
[SMOTE] OFF (mode=Standard, k_neighbors=5, class_weight_when_smote=True)
[CLASS_WEIGHT] mode=Off

[目標分佈]
  - 類別 0: 15 (55.6%)
  - 類別 1: 12 (44.4%)
[偵測] 目標型態:binary;classes=[0 1]

=== Basic ML Benchmark (Standard | Repeated Stratified 5-fold x 100 CV) | seed=42 | SMOTE=OFF | class_weight=OFF ===
             model   AUC  F1_pos(=1)  Prec_pos  Rec_pos  F1_neg(=0)  Prec_neg  Rec_neg   MCC  Accuracy  Pred1_mean  Pred0_mean
LogisticRegression 0.937       0.745     0.855    0.702       0.861     0.828    0.928 0.665     0.830       1.906       3.494
      RandomForest 0.901       0.687     0.775    0.672       0.802     0.799    0.850 0.557     0.772       2.066       3.334
               SVM 0.893       0.768     0.876    0.724       0.866     0.837    0.927 0.688     0.839       1.960       3.440
               KNN 0.882       0.658     0.813    0.590       0.827     0.767    0.928 0.563     0.780       1.638       3.762
        NaiveBayes 0.842       0.725     0.852    0.674       0.842     0.808    0.917 0.633     0.812       1.880       3.520
      DecisionTree 0.718       0.636     0.705    0.632       0.757     0.763    0.804 0.465     0.729       2.108       3.292

--- Aggregated Confusion Matrix Sums (Standard) ---
             model  TN_sum  FP_sum  FN_sum  TP_sum
LogisticRegression    1392     108     355     845
      RandomForest    1275     225     392     808
               SVM    1391     109     329     871
               KNN    1392     108     489     711
        NaiveBayes    1375     125     385     815
      DecisionTree    1206     294     440     760

--- Specificity / Sensitivity (Standard) ---
             model  Specificity  Sensitivity
LogisticRegression        0.928        0.704
      RandomForest        0.850        0.673
               SVM        0.927        0.726
               KNN        0.928        0.593
        NaiveBayes        0.917        0.679
      DecisionTree        0.804        0.633

結合HRV_DeltaAttn_MeanNN, HRV_RecPos_RMSSD


[目標分佈]
  - 類別 0: 15 (55.6%)
  - 類別 1: 12 (44.4%)
[偵測] 目標型態:binary;classes=[0 1]

=== Basic ML Benchmark (Standard | Repeated Stratified 5-fold x 100 CV) | seed=42 | SMOTE=OFF | class_weight=OFF ===
             model   AUC  F1_pos(=1)  Prec_pos  Rec_pos  F1_neg(=0)  Prec_neg  Rec_neg   MCC  Accuracy  Pred1_mean  Pred0_mean
               SVM 0.916       0.807     0.890    0.778       0.885     0.867    0.929 0.736     0.863       2.078       3.322
      RandomForest 0.899       0.691     0.773    0.682       0.797     0.803    0.841 0.558     0.771       2.120       3.280
               KNN 0.866       0.651     0.809    0.580       0.829     0.762    0.933 0.557     0.779       1.596       3.804
LogisticRegression 0.860       0.737     0.854    0.691       0.857     0.823    0.928 0.657     0.825       1.880       3.520
        NaiveBayes 0.754       0.713     0.835    0.665       0.834     0.798    0.906 0.611     0.802       1.890       3.510
      DecisionTree 0.694       0.604     0.689    0.600       0.733     0.740    0.787 0.424     0.705       2.086       3.314

--- Aggregated Confusion Matrix Sums (Standard) ---
             model  TN_sum  FP_sum  FN_sum  TP_sum
               SVM    1394     106     267     933
      RandomForest    1261     239     379     821
               KNN    1400     100     502     698
LogisticRegression    1392     108     368     832
        NaiveBayes    1359     141     396     804
      DecisionTree    1181     319     476     724

--- Specificity / Sensitivity (Standard) ---
             model  Specificity  Sensitivity
               SVM        0.929        0.777
      RandomForest        0.841        0.684
               KNN        0.933        0.582
LogisticRegression        0.928        0.693
        NaiveBayes        0.906        0.670
      DecisionTree        0.787        0.603