![見出し画像](https://assets.st-note.com/production/uploads/images/166069037/rectangle_large_type_2_923882b69bc407a8a472fcec4b733dcd.png?width=1200)
Triple Stratified CV Strategyについて
こんにちは、分析屋の中村です。
kaggleのコンペティションのISIC2024にチーム参加し、そこで2位を取ることができました。
このコンペはshakeが激しく、cv戦略がとても重要でした。
![](https://assets.st-note.com/img/1734488658-swxXCRzO2W8TUbeAa6VLYkFQ.png?width=1200)
今回はkaggleで使ったTriple Stratified CV Strategyについて書いていこうと思います。
Triple Stratified CV Strategyとは?
医療用画像などラベルに偏りのあるデータセットを扱う場合に役に立つかもしれないCV戦略です。
Triple Stratified CV Strategyの目的
1.リークの防止
同じ患者に属する画像が異なるfoldに分散されることで、trainデータとvalデータ間でリークすることを防ぎます。
![](https://assets.st-note.com/img/1734488794-ViLz4waEK31FcGlQYMoR9gSx.jpg?width=1200)
2.クラス不均衡の解消
悪性と良性の画像数が極端に異なる場合、各foldで同じ割合になるようにデータを分割します。
![](https://assets.st-note.com/img/1734488940-hVs6mz2InG37ELo4XPHKDwc1.jpg?width=1200)
3.患者ごとの画像数の偏りへの対応
患者ごとの画像数が異なる場合、fold間で均等に分配します。
![](https://assets.st-note.com/img/1734488965-FqpBgtlaoYKDUiXHvI94jy8d.jpg?width=1200)
他のクロスバリデーション手法との比較
1.Simple KFold
ランダムに均等な分割を行います。
2.Stratified KFold
クラスラベルを考慮した分割を行います。
3.Group KFold
同じグループ番号を持つデータは同じ側に分割されます。
4.Stratified Group KFold
同じグループ番号が同じ側に分割され、正解ラベルの分布はTrainとTestで等しくなります。(優先度はGroup KFoldが上)
医療用画像を使った分割の例
1.患者の分割(isolate Patients)
同一患者の全ての画像が一つのfoldに含まれるようにします。
2.悪性画像のバランス(Balance Malignant Images)
データセット全体の悪性画像の割合を各foldで均等にします。
3.患者ごとの画像数の分布のバランス(Balance Patient Count Distribution)
患者ごとの画像数を考慮し、各foldが画像数の多い患者と少ない患者を均等に含むようにします。
この手法の応用
これはTriple Stratifiedだが、もっと層を重ねることも可能だと考えられます。
今回の例でいうと世界中の病院からデータが収集されていて、どの病院からのデータというカラムがあったので4つの層にしてcvを測ることもあり得たと思います。
実装例
CV Strategyを決定するには
当たり前ですが、どのCVを用いるかは実験を行って相関が高いものを用いるのが良いと思います。
自分は過去にLBと同じデータの分割方法が良いだろうと思い込んでコンペに挑んで、shakeで順位を落としたことがあります。
私は複雑なCVを実装しましたが、上位陣は実験からKFoldで十分と判断している人がいました。CVはものさしなので、実験からその正しさが得られればどの分割手法であろうがそれで十分であるということです。
ここまでお読みいただき、ありがとうございました!
この記事が少しでも参考になりましたら「スキ」を押していただけると幸いです!
株式会社分析屋について
弊社が作成を行いました分析レポートを、鎌倉市観光協会様HPに掲載いただきました。
ホームページはこちら。
noteでの会社紹介記事はこちら。
【データ分析で日本を豊かに】
分析屋はシステム分野・ライフサイエンス分野・マーケティング分野の知見を生かし、多種多様な分野の企業様のデータ分析のご支援をさせていただいております。 「あなたの問題解決をする」をモットーに、お客様の抱える課題にあわせた解析・分析手法を用いて、問題解決へのお手伝いをいたします!
【マーケティング】
マーケティング戦略上の目的に向けて、各種のデータ統合及び加工ならびにPDCAサイクル運用全般を支援や高度なデータ分析技術により複雑な課題解決に向けての分析サービスを提供いたします。
【システム】
アプリケーション開発やデータベース構築、WEBサイト構築、運用保守業務などお客様の問題やご要望に沿ってご支援いたします。
【ライフサイエンス】
機械学習や各種アルゴリズムなどの解析アルゴリズム開発サービスを提供いたします。過去には医療系のバイタルデータを扱った解析が主でしたが、今後はそれらで培った経験・技術を工業など他の分野の企業様の問題解決にも役立てていく方針です。
【SES】
SESサービスも行っております。