見出し画像

教師あり学習(分類)用いた癌の予測モデルの検討

・はじめに

こんにちは。
現在、Aidemy Premiumにて「データ分析コース」受講して約6ヶ月が経過しました。9ヶ月コースのためまだ時間も残されていますが、ここまで習得したスキルのアウトプットということで本ブログを記載させていただきます。

受講したきっかけの1つは、「AI」や「データ分析」というワードを近頃、よく頻回にメディアを筆頭に耳にするようになったことです。医療系に携わる仕事をしている立場からしてもそれはまた同様です。例えば、胃癌の診断画像をディープラーニングさせて作られた「内視鏡AI」やゲノム情報を用いた「医薬品開発」が挙げられます。特に医療においては、画像診断の領域が最もAI化が進んでいると言われます。日本のように医師不足かつ高齢化も進むような国では、AIやビッグデータを積極的に活用していくことで医師の業務効率が改善され労働時間軽減に繋がるのと、医療費の削減にまで寄与できる可能性があるため、医療業界においてもAIが果たす役割は決して少なくないのではないかと感じています。そのようなものに徐々に保険適応がされ始めていることから国としても期待を持っていることが伺われます。

まだまだ私自身データ分析における理解度はかなり低いですが、今後データを扱うスキルやリテラシーを持った人材が必然的に求められる時代になっていくため、
将来的にはスキルを習得してそれを活かせるような仕事をしていきたいと考えております。

・本記事の概要

教師あり学習(分類)を参考にして、Kaggleの「癌の予測データセット」から癌の予測を以下の2つの手法からどちらの方が精度が高いかを検討してみました。
「癌になるか、またはならないか」という分析において、より精度の高い手法を見つけることが本目的となります。

・ロジスティック回帰
・ランダムフォレスト分析


以下、実際にGoogle Colaboratoryで実装した内容で記載しております。
簡易的な分析結果となりますが、是非ご一読よろしくお願いいたします。

データ元
Kaggle:Cancer Prediction Dataset

開発環境

Google Colaboratory


・作成したプログラム

・ロジスティック回帰


1.パッケージをインポートします

2.データを取得

引用元:https://www.kaggle.com/datasets/rabieelkharoua/cancer-prediction-dataset/data?select=The_Cancer_data_1500_V2.csv3.
特に欠損値が見当たりませんでしたので、このままデータを活用します。

3.①X、Yのデータを指定
   ②訓練データとテストデータの分割

4.①ロジスティック回帰モデルの構築作業
   ②モデルの学習
   ③モデルの分類予測結果
   ④モデル予測結果の正解率

5.分析結果

【ロジスティック回帰の結論】
ロジスティック回帰手法において、0,86という比較的高い数値を示すことができました。次に、ランダムフォレスト分析を実施します。

・ランダムフォレスト分析

1.上記、ロジスティック回帰にて使用したテストデータを活用した
ランダムフォレスト分析の構築

2.分析結果

【ランダムフォレスト分析の結論】
ランダムフォレスト分析においては、0.93(小数点第3位繰り上げ)となりロジスティック回帰手法より精度の高い分析結果となりました。

・総評

ロジスティック回帰が、0,86
ランダムフォレスト分析が、0.93 
となり、このデータセットの分析においては、ランダムフォレスト分析の方がより適している手法ということが分かりました!!

・今後の活用について

- 今回の分析を通して
今回は、癌予測手法の簡単な比較検討でしたが、データ分析自体をより俯瞰的に考えると、過去のデータを材料にして未来の予測ができたり、複雑な物事を可視化できたりと可能性は無限大にあります。特に医療という分野では、膨大なデータが電子カルテや各企業に集約されている割にそれらが積極的に活用されておらず宝の持ち腐れになっているとも思っています。そのようなデータを活用して新たな知見を提供する、またはプロダクトを生産していくことは今後の日本の社会にとっても有意義になると感じます。そのため、「医療✖️データ分析」という着眼点で医療課題や患者アウトカムの向上に活かせるようなデータサイエンティストに将来的になれるようにスキルを磨いていきたいと思っております。

・おわりに

データ分析は、非常に難しいかつ繊細なものだと改めて感じました。少しでもコードミスや入力漏れなどがあるとエラーが出てしまい全く機能しなくなるためです。
単に修正するだけではなく、そのエラーがどのように起きているかを紐解いて原因を探っていく、またそれを理解する作業が習熟するためには必要になるとも感じました。一つの分析にしても様々なアプローチ方法があり、プロセスを変えてコードを書いてみるなど思ったことをすぐにアウトプットして検証するということも大事だと思います。
まだまだ未熟者ですが、これからも様々なデータに触れ実装していけるように引き続き勉強していきたいと思います。

最後までお読み頂きありがとうございました!!

※このブログはAidemy Premiumのカリキュラムの一環で、受講修了条件を満たすために公開しています


この記事が気に入ったらサポートをしてみませんか?