【Season 3, Episode 26】Multi-Class Prediction of Cirrhosis Outcomes【データコンペ07】

コンペ概要

Your Goal: For this Episode of the Series, your task is to use a multi-class approach to predict the the outcomes of patients with cirrhosis. Good luck!

コンペ詳細

目標

Status:[C,CL,D]の三値。
患者 C (打ち切り)、CL (肝臓 移植のため打ち切り)、または D (死亡) の状態。

データ
  • train.csv
  • test.csv
  • sample_submission.csv
  • cirrhosis.csv(追加データ)
Column Dtype Explanation
id int64 ID
N_Days int64 登録から(1986年7月)の死亡、移植、研究分析のいずれか早い時点までの日数
Drug object 薬物の種類 D-ペニシラミンまたはプラセボ
Age int64 年齢(日数)
Sex object 性別
Ascites object 腹水の存在 N(No) または Y(Yes)
Hepatomegaly object 肝腫大の存在 N(No) または Y(Yes)
Spiders object クモ(クモ状血管腫?)の存在 N(No) または Y(Yes)
Edema object 浮腫の存在 N(浮腫なし、および浮腫に対する利尿薬治療なし)、IS(浮腫は利尿薬なしで存在するが、利尿薬によって解消される浮腫)、または Y(利尿薬治療にもかかわらず浮腫)
Bilirubin float64 血清ビリルビン
Cholesterol float64 血清コレステロール
Albumin float64 アルブミン
Copper float64 尿銅
Alk_Phos float64 アルカリホスファターゼ
SGOT float64 血清グルタミン酸オキザロ酢酸トランスアミナーゼ
Tryglicerides float64 トリグリセリド
Platelets float64 立方あたりの血小板数
Prothrombin float64 プロトロンビン時間
Stage float64 病気の組織学的段階[1,2,3,4]
Status object 患者の状態['D', 'C', 'CL']

課題種別:多値分類
学習データサンプル数: 7905
説明変数の数:19
欠損値:なし

評価指標

multi-class logarithmic loss:loglossを多クラス分類に適応させた指標
multi-class loglossは低いほど誤差が少なく、良い指標。

情報公開ポリシー

Data Access and Use.
Competition Use and Commercial: You may access and use the Competition Data for any purpose, whether commercial or non-commercial, including for participating in the Competition and on Kaggle.com forums, and for academic research and education. The Competition Sponsor reserves the right to disqualify any participant who uses the Competition Data other than as permitted by the Competition Website and these Rules.

データのアクセスと使用。
コンテストでの使用および商用: お客様は、コンテストや Kaggle.com フォーラムへの参加、学術研究や教育など、商用か非商用かを問わず、あらゆる目的でコンテスト データにアクセスして使用することができます。コンテスト主催者は、コンテスト Web サイトおよび本規則で許可されている以外のコンテスト データを使用する参加者を失格にする権利を留保します。

学習の目的

選択理由

同レベルでのコンペで実力をしっかりつけよう。

目標・目的

  • 新しいモデル(1つ)に触れてみる。
  • 特徴量の生成
  • Codeを参考にする。
  • データの確認
  • ちゃっちゃかやる

分析

ベースライン作成

簡単なデータの確認をしつつベースラインを作成していく。
型の情報と欠損値、目的変数のStatusの割合を確認。

  • 欠損値なし。
  • Statusの割合に偏りがある。

モデルをいろいろ試したいので扱いやすい数値属性の変数を使ってベースラインを作成していく。
LightGBM,GradientBoostingClassifier,Kerasを試してみる。

データの確認

肝硬変の最も一般的な原因

肝硬変の患者では、肝臓がん(肝細胞がん)が発生することがある。

’Status',"N_Days、

  • 値が小さいとDが多く、値が大きいとCが多い
  • DとCの割合の逆転は1000あたり、およそ3年
  • CLの母数が少ない

CとDの区別は予測がうまくできそうだが、サンプル数が少ないCLを区別するのが難しそうと予想。

検診段階での進行具合で日数に変化があると予想。このグラフはわかりにくい。

'Drug'


ほぼほぼ半々。プラセボは偽の薬みたいなこと。

  • 薬とプラセボを比較してもあまり変化はない。
  • D-ペニシラミン:銅のキレート剤である

銅をキレート(体外へ排出)する薬。そもそも肝硬変の理由もいくつかあり銅の排出に関係するのはウィルソン病らしい。ウィルソン病の特徴が当てはまる対象者にフラグを立てて比較を検討するとよいかも。

'Sex',

  • 女性の割合が多い。

一般的には男女比 3:1だそうなので、特定の機関で集計した、もしくは1980年代あたりのデータなので社会的背景があるかもしれない。

  • 死亡率は男性が高い。
'Ascites'

  • Ascites:腹水。肝臓の疾患が原因の一つ。
  • 2値のカテゴリ。
  • YのDの割合の高さ。 これが原因で死亡するというものではないので複合的な要因が考えられる可能性がある。
'Hepatomegaly'


  • Hepatomegaly:肝脾腫。肝臓や脾臓が肥大すること。
  • Nの場合にCが多い。
  • Yの場合にCLの割合が高そう。
  • 肝硬変にかかるとここら辺に症状が現れやすいらしい。
'Bilirubin'

  • ビリルビンは寿命を終えた赤血球が分解される際に生じる色素
  • 肝臓や胆道の機能に大きなダメージを与える病気が進行すると血液中のビリルビン濃度が上昇していく
  • 2.0未満/普通、2.0以上3.0以下/注意、3.0超/危険
'Cholesterol'


肥満度も肝硬変に関係か

’Albumin'

  • Albumin:アルブミン。腹水や胸水などの症状を引き起こす。
  • 低いとやばい。肝臓から漏れ出している。
  • 基準値:3.9g/dL 以上
  • アルブミンの低下は栄養状態が悪い場合にも起こりやすく、特に食事量が少なくなる高齢の方は低栄養状態になりやすい。

アルブミン/年齢?(年齢当たりのアルブミン

'Copper'

  • Copper:ウィルソン病をはじめとする銅代謝異常の診断指標。
  • 基準値.男:4.2~33.0女:2.5~20.0
'Prothrombin'

  • プロトロンビン時間:血液凝固因子と呼ばれる、血液を固める作用のあるたんぱく質に関連した検査値
  • 基準値:10~13
  • 高い場合重症肝障害が疑われる

データから見る考察

  • 目的変数StatusのCLを正しく予想するとスコアが上がりそう
  • 肝硬変の理由によるフラグを立てると有用かもしれない
  • 男女比の理由
  • 基準値などがある変数に対してはフラグ
  • アルブミン/年齢?(年齢当たりのアルブミン


相関関係からみてもCLを予測するのは苦労しそう。 一番高い相関がStatus_C。スタッキングが有効か?

振り返り

年末年始の忙しさに敗北し、このコンペはここまででした。上位入賞者の解放を参考に学んで、次のコンペに向かいます。

モデル

入賞者使用モデル

  • NN
  • XGBoost
  • LightGBM

をスタッキングしていました。なんか考えていたことの方向性はいい感じでした。 まだモデルをうまく扱えないので結果が出ているとは限りませんがヨシヨシですね。
NNのモデルの扱い方の参考にCodeを多少あさっていきたいと思います。 XGBoostよりLightGBMのほうが優れていると思っていましたが、この2つでアンサンブルしている人も多くいました。ちょっと違うらしい。

変数

年齢による日数の違い、他関係ありそうな変数同士を掛け合わせていたり、そこまで面白い考え方はなし

最後に

SIGNATEのほうも参加できずに年が明けてしまったので悲しいですね。

S4のPlaygroundがすでに始まっている、18日からはSIGNATEで新しいコンペが始まるのでどちらも参加して1月も頑張て行きたいところ。