コンテンツへスキップ

kaggle

社員のKaggle実施レポートを公開しています

kaggle活動記録-2

こんにちは。アイティーシーの藤原です。
今回は新卒社会人1年目、python・機械学習初心者の私が取り組んだ、Kaggleコンペティションについてご紹介いたします。

今回取り組んだコンペティション
Titanic – Machine Learning from Disaster

コンペティションの内容
タイタニック号の遭難事故での乗客データから、誰が生存者生き残るか?を予測するコンペティションです。
乗客データは訓練用データとテストデータに分かれており、それぞれの乗客者データには名前、年齢、性別、社会的地位の情報が与えられました。

所感
Titanic Tutorialはkaggle初学者が一番初めに取り組むべきコンペティションだと思います。理由は以下の通りです。
・kaggleプラットフォームに慣れることを目的として作成されたコンペティションであること。
・有志の方がチュートリアルガイドを作成していること。

kaggleでコンペティションに参加するためには、用意されたデータを取得して、学習モデルを構築し、それらから得た分析結果を提出する必要があります。
チュートリアルガイドでは、これらのステップについて順を追って解説しているので、kaggleの使い方について簡単に理解することができました。
こちらのチュートリアルガイドは、このコンペティション用に作成されたものなので、書かれた通りに作業を進めるだけでコンペティションを完了させることができました。
私が今回取り組んだコードはこちらから参照することができます。ご興味ある方はぜひご覧ください。

私はPythonや機械学習については研修を受けた程度で、高度なスキルや現場での経験を持っているわけではありません。
こちらのチュートリアルガイドにはコーディングも記載されていますので、機械学習そのものに不安を持たれている方でも問題ありません。それでも不安に思われる方は、kaggle内にPythonや機械学習についての学習コースも用意されていますので、そちらから取り組まれてもいいかもしれません。


(↑kaggleの学習コースページ。初歩から学習することができます。)

kaggleに登録はしたものの、どこから手をつけたらいいのかわからないという方にはぜひ、こちらのコンペティションに参加することをお勧めいたします。

————————————————–
自己紹介
所属:株式会社アイティーシー ソリューション事業部所属
経歴:2022年度入社。新卒一年目。
現在、一人前のSE・DSになるため日々の業務に勤しんでおります。
kaggleアカウントページはこちら:https://www.kaggle.com/shutafujiwara

Kaggle活動記録-1

こんにちは。アイティーシー DA事業部の岡です。

Kaggle活動記録では、岡が参加したKaggleコンペティションの内容と、実績について詳しく書いていきます。
※本記事は、機械学習を勉強し始めた方や、これからKaggle等のコンペティションサイトに参加しようとされている方向けの記事です。以降で出現する専門用語について、1つひとつの説明を割愛しているので、何卒ご容赦ください。

Kaggleについて
皆さま、Kaggleについてご存じでしょうか?
Kaggle(サイト)は、企業や研究者がデータやコードを投稿・共有し、世界中のデータサイエンティストがその最適モデルを競い合うプラットフォームサイトです。https://www.kaggle.com/
Kaggle社はGoogle傘下の、予想モデリングおよび分析手法関連プラットフォームを提供している企業です。

今回ご紹介するコンペティション
Tabular Playground Series-6月版
「Tabular Playground Series」は、他のコンペティションと比較し、参加しやすい初心者向けのコンペティションです。
~Tabular Playground Series 参加しやすいポイント~
◎学習/分析対象データは、表形式のデータで、ほとんどの場合、データファイルは1種類のみです。
◎ほとんどのSeriesのデータで、提供されるデータに欠損値は存在しません。
◎コンペティションで競う評価指標はメジャーなものが多く分かりやすいです。
正答率や絶対平均誤差がよく使用される評価指標になります。

コンペティション内容詳細
上記『参加しやすいポイント』で記載した内容とは相反しますが、6月版コンペティションは、欠損値が多く存在するデータ群が提供され、これ(欠損値)を予測/補完するモデルを作成、精度を競い合う、という内容でした。評価指標はRMSE(二乗平均平方根誤差)で、RMSEが小さいほど精度が高いモデル(予測)である、と評価されます。

予測値算出までの主な流れ
Tabular Playground Seriesで、予測値を提出するまでの”個人的な”作業の流れは決まっていて、以下のようになります。
データ状態の確認(EDA)
・・
学習データの準備
・・
モデルの構築(学習)
・・
精度評価
・・
提出用データ作成
この流れに沿って、実際にモデル構築を行ったソースコード、フェーズ毎の詳細な説明などは以下Kaggleページで公開しています。ご興味があれば、是非ご覧ください。
https://www.kaggle.com/code/imnaho/tps-jun22-eda-predict

考察
今回のコンペティションは、個人的にはとても納得できる結果が出ました。
今回の分析対象のデータは、ID列を除いた80列、1000000行のデータ群でしたが、データ状態を確認したところ、単相関で相関が強い列と相関がほぼ0なデータ列が極端に分かれていることが分かりました。

(↑公開コードより単相関のheatmap画像を抜粋。黒色箇所が相関ほぼ0です。↑)
このことから、特に相関が強い列については回帰やランダムフォレストなど、数値予測としてポピュラーなアルゴリズムを利用することで、精度が高くなることが予想できますし、逆に相関ほぼ0な列については他の列はあまり気にせず、単純な平均値や中央値により補完する方が良いのではないか?と予想することができます。
上記URLで記載している公開コードでは、補完が必要な列に対し、列ごとに複数のアルゴリズムで学習させ、精度を評価しています。
具体的には、欠損値が存在しているデータ列数が55列、選定したアルゴリズムが4種類+単純な中央値補完1種類で精度を評価したため、学習と評価(RMSEの計算)は55×5=275回行っています。
結果は想定通り、相関が高い列は数値予測アルゴリズムで精密(精密さはパラメータで指定します)に予想した方が精度が高く、相関がほぼ0な列では時間をかけて学習したモデルより、単純な列毎の中央値の値の方が精度が良い、もしくはほぼ変わりなしという結果になりました。
実際にデータ補完を依頼される場合には、これで終わりではなく、結果をレポートにまとめ、特に相関が0に近いデータ列について、お客様によくよくヒアリングを行い、相関が0になる理由や、データ自体が間違っている可能性がないか、相関が高くなる可能性があるデータを追加できないか等、追加検討し、より精度の高いモデルの構築を目指します。
ともあれ、仮説がぴったり当たっているととても気持ちがいいものです。
データ状態の確認から、仮説、仮説検証の道筋を綺麗に書けたのと、これに沿って構築したモデルの予測値スコアが上場の結果だったため、公開したNotebookに対しシルバーを獲得することができました。upvoteいただいた方に感謝です。

今後もKaggle活動記録を追加していきますのでお楽しみに!

————————————————–
自己紹介
所属:株式会社アイティーシー データアナリティクス事業部
経歴:約6年間、SEとして基幹システムの運用保守、開発を担当していました。
データサイエンティストへのキャリアチェンジを試み、日々奮闘中です。
Kaggleアカウントページはこちら:https://www.kaggle.com/imnaho
LinkedInページはこちら:https://www.linkedin.com/in/naho-oka-9ba89322b/