{
  "id": 588556,
  "title": "Feature loaded problem",
  "url": "/competitions/cmi-detect-behavior-with-sensor-data/discussion/588556",
  "author_name": "Kurise",
  "post_date": "2025-07-07T06:42:51.290000",
  "votes": 0,
  "comment_count": 0,
  "views": 0,
  "content": "<p>I'm facing a great problem when I load my precomputed feature.<br>\npseudo code: <br>\nif os.path.exists(feature_path):<br>\n            df = pd.read_pickle(features_path)<br>\nelse:<br>\n            df.read('train.csv')<br>\n            #feature computation<br>\n            df.to_pickle(features_path)</p>\n<p>When I test my feature : the epoch val_score are following : <br>\n1 : no feature path<br>\nFold 1 Epoch 1: train_loss=3.0134 val_loss=2.9939 val_acc=0.0569 val_H_F1=0.0301<br>\nFold 1 Epoch 11: train_loss=2.2733 val_loss=1.8690 val_acc=0.3848 val_H_F1=0.5868<br>\nFold 1 Epoch 21: train_loss=2.0752 val_loss=1.6709 val_acc=0.4810 val_H_F1=0.6576<br>\nFold 1 Epoch 31: train_loss=1.9356 val_loss=1.5998 val_acc=0.5196 val_H_F1=0.6775<br>\nFold 1 Epoch 41: train_loss=1.8568 val_loss=1.5373 val_acc=0.5478 val_H_F1=0.6999<br>\n2: feature path exists<br>\nFold 1 Epoch 1:train loss=2.9927 val loss=2.9947 val acc=0.0569 val H F1=0.0301<br>\nFold 1 Epoch 11: train loss=2.0026 val loss=1.6869 val acc=0.4764 val H F1-0.6540<br>\nFold 1 Epoch 21:train loss=1.8311 val loss=1.5194 val acc=0.5622 val H F1=0.7042<br>\nFold 1 Epoch 31: train loss=1.7050 val loss=1.4055 val acc=0.6132 val H F1=0.7424<br>\nFold 1 Epoch 41:train loss=1.6278 val loss=1.3428 val acc=0.6545 val H F1=0.7713</p>\n<p>I didn't uploaded the 'no feature path' version, but the 'feature path exists' version are more thread with my LB and I think it will get the same LB. From the discussion, much people use StratifiedGroupKFold split by subject whose CV is lower than LB a lot such as : optimo: cv : 0.756 LB : 0.783 Natsume: cv-0.7714,lb-0.79, but my CV just lower than LB little such as : cv : 0.7789 LB : 0.79, cv : 0.7904 LB : 0.81 (low). This make all my experiments useless today, so I publish this for someone the same with me…</p>",
  "messages": [
    {
      "id": 3243451,
      "postDate": "2025-07-07T06:42:51.290Z",
      "content": "<p>I'm facing a great problem when I load my precomputed feature.<br>\npseudo code: <br>\nif os.path.exists(feature_path):<br>\n            df = pd.read_pickle(features_path)<br>\nelse:<br>\n            df.read('train.csv')<br>\n            #feature computation<br>\n            df.to_pickle(features_path)</p>\n<p>When I test my feature : the epoch val_score are following : <br>\n1 : no feature path<br>\nFold 1 Epoch 1: train_loss=3.0134 val_loss=2.9939 val_acc=0.0569 val_H_F1=0.0301<br>\nFold 1 Epoch 11: train_loss=2.2733 val_loss=1.8690 val_acc=0.3848 val_H_F1=0.5868<br>\nFold 1 Epoch 21: train_loss=2.0752 val_loss=1.6709 val_acc=0.4810 val_H_F1=0.6576<br>\nFold 1 Epoch 31: train_loss=1.9356 val_loss=1.5998 val_acc=0.5196 val_H_F1=0.6775<br>\nFold 1 Epoch 41: train_loss=1.8568 val_loss=1.5373 val_acc=0.5478 val_H_F1=0.6999<br>\n2: feature path exists<br>\nFold 1 Epoch 1:train loss=2.9927 val loss=2.9947 val acc=0.0569 val H F1=0.0301<br>\nFold 1 Epoch 11: train loss=2.0026 val loss=1.6869 val acc=0.4764 val H F1-0.6540<br>\nFold 1 Epoch 21:train loss=1.8311 val loss=1.5194 val acc=0.5622 val H F1=0.7042<br>\nFold 1 Epoch 31: train loss=1.7050 val loss=1.4055 val acc=0.6132 val H F1=0.7424<br>\nFold 1 Epoch 41:train loss=1.6278 val loss=1.3428 val acc=0.6545 val H F1=0.7713</p>\n<p>I didn't uploaded the 'no feature path' version, but the 'feature path exists' version are more thread with my LB and I think it will get the same LB. From the discussion, much people use StratifiedGroupKFold split by subject whose CV is lower than LB a lot such as : optimo: cv : 0.756 LB : 0.783 Natsume: cv-0.7714,lb-0.79, but my CV just lower than LB little such as : cv : 0.7789 LB : 0.79, cv : 0.7904 LB : 0.81 (low). This make all my experiments useless today, so I publish this for someone the same with me…</p>",
      "rawMarkdown": "I'm facing a great problem when I load my precomputed feature.\npseudo code: \nif os.path.exists(feature_path):\n            df = pd.read_pickle(features_path)\nelse:\n            df.read('train.csv')\n            #feature computation\n            df.to_pickle(features_path)\n\nWhen I test my feature : the epoch val_score are following : \n1 : no feature path\nFold 1 Epoch 1: train_loss=3.0134 val_loss=2.9939 val_acc=0.0569 val_H_F1=0.0301\nFold 1 Epoch 11: train_loss=2.2733 val_loss=1.8690 val_acc=0.3848 val_H_F1=0.5868\nFold 1 Epoch 21: train_loss=2.0752 val_loss=1.6709 val_acc=0.4810 val_H_F1=0.6576\nFold 1 Epoch 31: train_loss=1.9356 val_loss=1.5998 val_acc=0.5196 val_H_F1=0.6775\nFold 1 Epoch 41: train_loss=1.8568 val_loss=1.5373 val_acc=0.5478 val_H_F1=0.6999\n2: feature path exists\nFold 1 Epoch 1:train loss=2.9927 val loss=2.9947 val acc=0.0569 val H F1=0.0301\nFold 1 Epoch 11: train loss=2.0026 val loss=1.6869 val acc=0.4764 val H F1-0.6540\nFold 1 Epoch 21:train loss=1.8311 val loss=1.5194 val acc=0.5622 val H F1=0.7042\nFold 1 Epoch 31: train loss=1.7050 val loss=1.4055 val acc=0.6132 val H F1=0.7424\nFold 1 Epoch 41:train loss=1.6278 val loss=1.3428 val acc=0.6545 val H F1=0.7713\n\nI didn't uploaded the 'no feature path' version, but the 'feature path exists' version are more thread with my LB and I think it will get the same LB. From the discussion, much people use StratifiedGroupKFold split by subject whose CV is lower than LB a lot such as : optimo: cv : 0.756 LB : 0.783 Natsume: cv-0.7714,lb-0.79, but my CV just lower than LB little such as : cv : 0.7789 LB : 0.79, cv : 0.7904 LB : 0.81 (low). This make all my experiments useless today, so I publish this for someone the same with me..."
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "3243451": "I'm facing a great problem when I load my precomputed feature.\npseudo code: \nif os.path.exists(feature_path):\n            df = pd.read_pickle(features_path)\nelse:\n            df.read('train.csv')\n            #feature computation\n            df.to_pickle(features_path)\n\nWhen I test my feature : the epoch val_score are following : \n1 : no feature path\nFold 1 Epoch 1: train_loss=3.0134 val_loss=2.9939 val_acc=0.0569 val_H_F1=0.0301\nFold 1 Epoch 11: train_loss=2.2733 val_loss=1.8690 val_acc=0.3848 val_H_F1=0.5868\nFold 1 Epoch 21: train_loss=2.0752 val_loss=1.6709 val_acc=0.4810 val_H_F1=0.6576\nFold 1 Epoch 31: train_loss=1.9356 val_loss=1.5998 val_acc=0.5196 val_H_F1=0.6775\nFold 1 Epoch 41: train_loss=1.8568 val_loss=1.5373 val_acc=0.5478 val_H_F1=0.6999\n2: feature path exists\nFold 1 Epoch 1:train loss=2.9927 val loss=2.9947 val acc=0.0569 val H F1=0.0301\nFold 1 Epoch 11: train loss=2.0026 val loss=1.6869 val acc=0.4764 val H F1-0.6540\nFold 1 Epoch 21:train loss=1.8311 val loss=1.5194 val acc=0.5622 val H F1=0.7042\nFold 1 Epoch 31: train loss=1.7050 val loss=1.4055 val acc=0.6132 val H F1=0.7424\nFold 1 Epoch 41:train loss=1.6278 val loss=1.3428 val acc=0.6545 val H F1=0.7713\n\nI didn't uploaded the 'no feature path' version, but the 'feature path exists' version are more thread with my LB and I think it will get the same LB. From the discussion, much people use StratifiedGroupKFold split by subject whose CV is lower than LB a lot such as : optimo: cv : 0.756 LB : 0.783 Natsume: cv-0.7714,lb-0.79, but my CV just lower than LB little such as : cv : 0.7789 LB : 0.79, cv : 0.7904 LB : 0.81 (low). This make all my experiments useless today, so I publish this for someone the same with me..."
  }
}