{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.11.11","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":102335,"databundleVersionId":12518947,"sourceType":"competition"}],"dockerImageVersionId":31040,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# CMI - Detect Behavior with Sensor Data","metadata":{}},{"cell_type":"markdown","source":"英語が苦手なので、生成AIで日本語訳しました。良かったら、活用ください。","metadata":{}},{"cell_type":"markdown","source":"# 概要\n## Overview  \n動き、温度、近接センサーのデータを使用して、髪を引っ張るなどの身体集中反復行動（BFRB）と、メガネを直すなどのBFRBではない日常的な動作を区別することは可能でしょうか？このコンペティションの目的は、リストバンド型デバイスから収集されたさまざまなセンサーデータを用いて、BFRBに似た行動と非BFRB的な行動を識別する予測モデルを開発することです。\n\nこれらの行動を正確に切り分けることができれば、BFRBを検出するウェアラブルデバイスの設計と精度が向上し、幅広い精神疾患に関連する支援が可能になります。最終的には、こうした行動の治療を支援するためのツールを強化することにつながります。\n\n## Description\n**身体集中反復行動（BFRB：Body-focused repetitive behaviors）** には、髪を引っ張る、皮膚をいじる、爪を噛むなどの自分自身に向けられた反復的な動作が含まれます。これらの行動は、頻繁または強度が高い場合、身体的な損傷や心理社会的な問題を引き起こす可能性があります。BFRBは、不安障害や強迫性障害（OCD）などにおいてよく見られ、精神的な健康問題の重要な指標となります。\n\n#### 手の動作とデバイス\n\nBFRBを調査するために、Child Mind Institute は **「Helios」** という手首装着型デバイスを開発しました。このデバイスは、こうした行動を検出することを目的としています。市販されている多くのウェアラブルデバイスには、回転や動きを測定するための **慣性計測ユニット（IMU）** が含まれていますが、Heliosウォッチにはそれに加えて以下が搭載されています：\n\n- 5つのサーモパイル（体温の検出用）\n- 5つのToF（Time-of-Flight）センサー（近接の検出用）\n\nHeliosデバイス上のこれらセンサーの配置については、右図を参照してください（※図は省略されています）。\n\n#### 研究内容\n\n我々は、これら追加センサーのBFRB動作検出への貢献を検証するための研究を実施しました。この研究では、参加者がHeliosデバイスを装着した状態で一連の繰り返し動作を行いました。動作は以下の3つのフェーズから構成されます：\n\n1. **Transition（移動）**  \n　「休止」姿勢から手を目的の位置に移動させる動作。\n\n2. **Pause（静止）**  \n　短い間、何も行わずに手を止める時間。\n\n3. **Gesture（動作）**  \n　BFRB的または非BFRB的なカテゴリに属するジェスチャーを実施。\n\n各参加者は、以下の4種類の身体姿勢のうち少なくとも1つの姿勢で、18種類のユニークなジェスチャー（BFRB的な動作8種、非BFRB的な動作10種）を実施しました。\n\n- 座る（Sitting）\n- 前屈して利き手でない腕を脚に置く（Sitting leaning forward）\n- 仰向けに寝る（Lying on back）\n- 横向きに寝る（Lying on side）\n\nこれらのジェスチャーについては、下の表および各ジェスチャーのビデオで詳しく説明されています。\n\n### BFRB的ジェスチャー（ターゲット動作）\n\n| 動作部位 – 内容                     | 姿勢                                                                 |\n|------------------------------------|----------------------------------------------------------------------|\n| 耳の上 – 髪を引っ張る              | 座位（Sitting）                                                     |\n| おでこ – 生え際の髪を引っ張る      | 前かがみで座る（Sitting leaning forward）                           |\n| おでこ – かく（引っかく）          | 座位（Sitting）                                                     |\n| 眉 – 髪を引っ張る                  | 座位（Sitting）                                                     |\n| まつげ – 髪を引っ張る              | 座位（Sitting）                                                     |\n| 首 – 皮膚をつねる                  | 座位（Sitting）                                                     |\n| 首 – かく（引っかく）              | 座位（Sitting）                                                     |\n| ほお – 皮膚をつねる                | 座位（Sitting）、前かがみで座る（Sitting leaning forward）、仰向けで寝る（Lying on back）、横向きで寝る（Lying on side） |\n\n### 非BFRB的ジェスチャー（Non-Target Gesture）\n\n| 動作内容                                         | 姿勢                                               |\n|--------------------------------------------------|----------------------------------------------------|\n| ボトル／カップから飲む                           | 座位（Sitting）                                    |\n| メガネをかける／外す                             | 座位（Sitting）                                    |\n| 顔に向かって空気を引き寄せる動作                 | 座位（Sitting）                                    |\n| 膝・脚の皮膚をつねる                             | 前かがみで座る（Sitting leaning forward）          |\n| 膝・脚の皮膚をかく（引っかく）                   | 前かがみで座る（Sitting leaning forward）          |\n| 脚に名前を書く                                   | 前かがみで座る（Sitting leaning forward）          |\n| スマホで文字を打つ                               | 座位（Sitting）                                    |\n| トレーの中を手探りして物を取り出す               | 座位（Sitting）                                    |\n| 空中に名前を書く                                 | 座位（Sitting）                                    |\n| 手を振って挨拶する（Wave hello）                | 座位（Sitting）                                    |\n\nこのコンペティションでは、以下の2つのタスクを達成する予測モデルの開発が求められています：  \n 1. BFRB的なジェスチャーと非BFRB的なジェスチャーの分類  \n 2. BFRB的なジェスチャーの具体的な種類の識別\n\nモデルの評価において重要なのは、テストセットの半分にはIMU（慣性計測装置）のみのデータが含まれており、  \n残りの半分にはHeliosデバイスのすべてのセンサーデータ（IMU、サーモパイル、ToFセンサー）が含まれているという点です。\n\nこのタスクの成果は、実世界における大きな影響を持ちます。開発されたモデルから得られる知見は、センサー選定に関する設計判断に活かされます。  \n特に、サーモパイルおよびToF（Time-of-Flight）センサーが、IMU単体に比べてBFRB検出精度を大きく向上させるのかという点が評価されます。\n\nそのため、これら追加センサーの導入によるコストや複雑性が正当化されるかどうかを判断するうえで、皆さんの取り組みが重要になります。  \n最終的には、より効果的なBFRB検出・治療支援ツールの開発に向けて大きな前進となります。  \n\n関連記事（英語）:  \n\t•\tGarey, J. (2025). What Is Excoriation, or Skin-Picking? - Child Mind Institute  \n\t•\tMartinelli, K. (2025). What is Trichotillomania? - Child Mind Institute\n\n## Evaluation\nこのコンテストの評価指標は、2つの要素を等しく重み付けしたマクロF1のバージョンです：  \n\t•\tジェスチャーがターゲットタイプかノンターゲットタイプかを判定するバイナリF1スコア  \n\t•\tすべてのノンターゲットのシーケンスを1つの non_target クラスにまとめた上でのジェスチャークラスごとのマクロF1スコア  \n\n最終スコアは、バイナリF1スコアとマクロF1スコアの平均です。  \n\n提出物に訓練データに存在しないジェスチャーの値が含まれている場合、エラーになります。  \n\n## Submission File\nこのコンペティションへの提出は、提供された評価APIを使って行う必要があります。このAPIは、モデルが一度に1つのシーケンスに対して推論を行うことを保証します。  \nテストセットの各 sequence_id に対して、対応するジェスチャーを予測してください。\n\n## Timeline\n\n| 日付              | 内容                                             |\n|-------------------|--------------------------------------------------|\n| 2025年5月29日     | コンペ開始日                                     |\n| 2025年8月26日     | 参加登録締切日（この日までに規約を承諾する必要あり）  |\n| 2025年8月26日     | チーム結成・合併締切日（チーム参加・合併の最終日）      |\n| 2025年9月2日      | 最終提出締切日                                   |\n\n※すべての締切は、特に記載がない限り、該当日のUTC時間23:59までです。  \n※主催者は必要に応じてスケジュールを更新する権利を有します。\n\n## Prizes\n\n| 順位     | 賞金額       |\n|----------|--------------|\n| 1位      | 15,000ドル     |\n| 2位      | 10,000ドル      |\n| 3位      | 8,000ドル       |\n| 4位      | 7,000ドル       |\n| 5位      | 5,000ドル       |\n| 6位      | 5,000ドル       |\n\n## Acknowledgements\n\n本コンペティションで使用されたデータは、ニューヨーク市を拠点とし、世界中の子どもたちの支援を目的とした画期的なメンタルヘルス研究「Healthy Brain Network」との協力により提供されました。\n\nHealthy Brain Networkでは、家族、地域リーダー、支援者がChild Mind Instituteと連携し、発達中の脳の秘密を解き明かす取り組みを行っています。さらに、Child Mind Instituteのスタッフや地域コミュニティからも参加者が募集され、彼らの協力に感謝いたします。\n\nまた、Kaggleチームからの寛大な支援に加え、カリフォルニア州医療サービス局（DHCS）による「Children and Youth Behavioral Health Initiative（CYBHI）」の一環として資金提供を受けています。\n\n## Code Requirements\n\n本コンペティションへの提出は**Notebooks（ノートブック）を通じて行う必要があります**。\n\n「Submit（提出）」ボタンを有効にするためには、以下の条件を満たす必要があります：\n\n- CPUノートブックの実行時間は9時間以内  \n- GPUノートブックの実行時間は9時間以内  \n- インターネットアクセスは無効  \n- 公開されている外部データの利用は自由（事前学習済みモデルも含む）\n\n詳細は[Code Competition FAQ](https://www.kaggle.com/docs/competitions)をご参照ください。  \n提出エラーが発生した場合は、[コードデバッグのドキュメント](https://www.kaggle.com/docs/competitions#debugging)を確認してください。\n\n### About the Child Mind Institute and the Healthy Brain Network\n\n**Child Mind Institute (CMI)** は、子どものメンタルヘルス分野で最も信頼される独立非営利団体です。  \n- 金字塔的なエビデンスに基づくケアを提供し、毎年数百万の家族に教育リソースを届けています。  \n- 支援が行き届いていない地域の教育者の育成や、オープンサイエンスの推進、未来の画期的な治療法の開発にも取り組んでいます。\n\n**Healthy Brain Network (HBN)** は、Child Mind Instituteによるコミュニティベースの研究プロジェクトです。  \n- 5歳から21歳までの子どもたちに対し、無料で精神健康と学習に関する評価を行い、家族と地域資源をつなげています。  \n- 脳と身体の特徴とメンタルヘルスや学習障害との関連を明らかにするための情報を収集しています。  \n- HBNは、精神医学的・行動的・認知的・生活習慣的（例：運動、食事）な表現型の識別情報を除いたデータを蓄積し公開しています。  \n- さらに多様なモダリティの脳画像（MRI）、脳波（EEG）、デジタル音声・映像記録、遺伝情報、活動量計データ（アクティグラフィ）も収集しています。","metadata":{}},{"cell_type":"markdown","source":"# Data\n\n## Dataset Description\n本コンペティションでは、センサーのデータを用いて身体に焦点を当てた反復行動（BFRBs）とその他のジェスチャーを分類します。\n\nこのデータセットには、参加者が利き腕の手首に装着したHeliosデバイスを使って、8種類のBFRBに似たジェスチャーと10種類の非BFRBジェスチャーを行った際のセンサー記録が含まれています。Heliosデバイスには以下の3種類のセンサーが搭載されています：\n\n- **1x 慣性計測ユニット（IMU; BNO080/BNO085）**  \n  加速度計、ジャイロスコープ、磁力計の測定値を統合し、オンボード処理によって向きや動きを提供するセンサー。\n\n- **5x サーモパイルセンサー（MLX90632）**  \n  非接触型の温度センサーで赤外線放射を測定。\n\n- **5x タイムオブフライトセンサー（VL53L7CX）**  \n  発光した赤外線が物体で反射して戻るまでの時間を測り、距離を計測するセンサー。\n\n本コンペへの提出は、提供されるPython評価APIを使用して行います。APIはテストセットのデータを1シーケンスずつ処理する仕組みです。使用例はこのノートブックの中にあります。\n\n- 非公開のテストセットには約3,500シーケンスが含まれます。  \n- テストセットの半分はIMUのみで記録されており、サーモパイル（thm_）およびタイムオブフライト（tof__v*）のカラムは存在しますが値はnullです。  \n- これにより、タイムオブフライトセンサーとサーモパイルセンサーを追加することでBFRB検出の精度が向上するかを評価できます。  \n\nなお、このデータセットにはセンサー通信障害による欠損データが一部のシーケンスで存在することが知られています。\n\n## Files\n\n#### ファイル名\n- `train.csv`\n- `test.csv`\n\n#### 各カラムの説明\n\n- **row_id**  \n  各行のユニークID。\n\n- **sequence_id**  \n  センサーデータのバッチID。1つのシーケンスは「Transition」「Pause」「Gesture」の3フェーズを含む。\n\n- **sequence_type**  \n  ジェスチャーがターゲット（BFRB-like）か非ターゲット（non-BFRB-like）かを示す。  \n  （訓練データのみ）\n\n- **sequence_counter**  \n  各シーケンス内の行番号。\n\n- **subject**  \n  データ提供者ごとのユニークID。\n\n- **gesture**  \n  目的変数。シーケンスのジェスチャーの種類を示す。  \n  （訓練データのみ）\n\n- **orientation**  \n  シーケンス中の被験者の姿勢説明。  \n  （訓練データのみ）\n\n- **behavior**  \n  現在のシーケンスフェーズ中の被験者の行動説明。\n\n- **acc_[x/y/z]**  \n  IMUセンサーからの3軸加速度（単位：m/s²）。\n\n- **rot_[w/x/y/z]**  \n  IMUのジャイロスコープ、加速度計、磁力計の情報を統合し、3D空間におけるデバイスの姿勢を表すクォータニオン。\n\n- **thm_[1-5]**  \n  時計に搭載された5つのサーモパイルセンサーの温度データ（単位：摂氏）。  \n  インデックス番号は概要ページの写真の対応位置と一致。\n\n- **tof_[1-5]_v[0-63]**  \n  時計に搭載された5つのタイムオブフライトセンサーの距離データ。  \n  各センサーは64画素（8x8グリッド）で構成される。  \n  例：`tof_1_v0`は1番目のセンサーの最初の画素、`tof_5_v63`は5番目のセンサーの最後の画素。  \n  データは行方向に取得され、左上が最初の画素、右方向に続き、最終は右下の画素。  \n  反射信号がない場合は-1が入る。値はキャリブレーションされていないセンサー値で0〜254の範囲。\n\n#### `[train/test]_demographics.csv`\n\n参加者の人口統計および身体的特徴を含む表形式ファイル。\n\n| カラム名               | 説明                                                                                  |\n|------------------------|---------------------------------------------------------------------------------------|\n| **subject**            | 参加者のユニークID                                                                     |\n| **adult_child**        | 参加者が子どもか大人かを示す（0 = 子ども、1 = 大人）。大人は18歳以上と定義。                |\n| **age**                | データ収集時の参加者の年齢（単位：歳）                                                  |\n| **sex**                | 生まれたときの性別（0 = 女性、1 = 男性）                                               |\n| **handedness**         | 利き手（0 = 左利き、1 = 右利き）                                                       |\n| **height_cm**          | 身長（単位：センチメートル）                                                           |\n| **shoulder_to_wrist_cm** | 肩から手首までの長さ（単位：センチメートル）                                            |\n| **elbow_to_wrist_cm**  | 肘から手首までの長さ（単位：センチメートル）                                            |\n\n---\n\n#### `sample_submission.csv`\n\n提出用ファイルのサンプル。\n\n| カラム名     | 説明                      |\n|--------------|---------------------------|\n| **sequence_id** | シーケンスID              |\n| **gesture**      | 予測するジェスチャー名    |\n\n---\n\n#### `kaggle_evaluation/`\n\n評価APIを実装したファイル群。  \nUnix環境でローカルにAPIを実行し、動作確認が可能。\n","metadata":{}},{"cell_type":"code","source":"","metadata":{"trusted":true},"outputs":[],"execution_count":null}]}