コンテンツへスキップ

AI・データ分析

DA事業部案件からのお知らせ
・FDUA活動
・Kaggle活動
・その他AI開発、データ分析関連

Kaggle活動記録-4

はじめまして。
アイティーシーの門田と申します。
今回は私が取り組んだKaggleコンペのご紹介です。

今回のコンペ
Spaceship Titanic

コンペの内容
久しぶりにKaggleを触るため、リハビリがてらに、初心者向けと名高いタイタニックに参加しました。
「またタイタニックやんけ」と思われるかもしれませんが、なんと今回のタイタニック号は宇宙船です。
そして、時空の歪みと衝突して異次元へ転送されてしまった乗客の被害状況を分析するのが、今回の課題です。

学習・分析データについて
このコンペのInputとして提供されるのが、以下の3ファイルです。
・train.csv(学習用の乗客データ)
・test.csv(分析用の乗客データ)
・sample_submission.csv(提出ファイルのサンプル)

各ファイル内の項目については、以下をご参照ください。
配布データ

train.csvを使って学習して、test.csvに対して予測して、sample_submission.csvと同じ形式のファイルを作って提出するのが、このコンペの目的です。
こちらも乗客データが表形式で分かりやすいのが、触りやすくていいですね。

考察
実際に記載したコードとスコアはこちら
スコアの向上案の1つとして、値が抜けていた項目の補完処理を考えています。
現在のコードではシンプルにバックフィルで補完していますが、乗客のデッキごとに特徴量の傾向が分かれていたため、これは活用出来そうですね。
この仮説検証で、またこのNotebookを随時更新していきます。

今回の活動記録は以上となります。
最後までご拝読頂きましてありがとうございました。
またの更新をお待ちください。

「GitHub Copilot」のトライアルを開始

株式会社アイティーシーは、システム開発における業務効率化を目的に、「GitHub Copilot」導入へ向けたトライアルを開始いたしました。

「GitHub Copilot」は、GitHub社が提供するAIモデルをベースとしたソースコード補完ツールになります。
関数名や前後の内容から実行したい処理を予測し、最適なソースコードを提案してくれます。
これによって、コード記述にかかる時間を削減し、開発業務の効率化が見込まれています。
詳細につきましては、こちらからご確認ください。

当社といたしましては、品質が担保できるか、どの程度の作業効率化が図れるかを観点として検証中です。
OpenAIによる「GPT-4」の公開以降、各業界でAI利活用の動きが急速に活発となっていますが、システム開発にもその影響はあるでしょう。
今後も、AIの利活用による次世代型の開発について模索していく予定です。

Microsoft 365 Copilot 「仕事の副操縦士」のご紹介

M365の主要なOffice製品ChatGPTレベルのAIがアドオンされるというものですが、
officeという基本業務製品へのAI導入によるデモは衝撃でした。
少なくともホワイトカラーといわれるデスクワークの生産性は劇変していくのだと思います。

改めてAIとの共生の深度によって、生産性が劇変する時代に、遂に突入してきたと思いました。

>>>>>>>>>>>>>>>>>>>

Microsoft 365 Copilot 「仕事の副操縦士」のご紹介

AI で大きく変わる新しい働き方にご注目ください。Microsoft 365 Copilot は、Word、Excel、PowerPoint、Outlook、Teams などのMicrosoft 365アプリに組み込まれた次世代 AI 機能です。大規模言語モデル (LLM) のパワーと、Microsoft Graph や Microsoft 365 アプリ内のデータを組み合わせ、あなたの言葉を地球上で最も強力な生産性向上ツールに変えます。創造力を高め、生産性を最大限に高め、スキルを一段階引き上げる、Microsoft 365 Copilot が提供する機能の詳細をぜひご覧ください。

株式会社アイティーシー
代表取締役 三宅 浩亮

Kaggle活動記録-3

こんにちは。アイティーシー DA事業部の岡です。前回に引き続きKaggle活動記録を掲載します。

Kaggleについて
前回のブログ記事をご覧ください!

今回ご紹介するコンペティション
Tabular Playground Series-9月版

コンペティション内容詳細
今回ご紹介するコンペティションは機械学習モデルを構築したことがある方にとってはお馴染み、特定商品の販売点数予測です。評価関数はSMAPE(対称平均絶対パーセント誤差)。過去4年間(2017年~2020年)の売上データを学習データとし、次の1年間(2021年)の売上点数を予測します。

今回のコンペティションのポイント
この題材(商品販売点数予測)は、TabularPlaygroundSeries-1月版ととても似ています。
前回と比較し、データ状態として違うのは、「予測商品点数が増えていること」と、「予測する国の数が増えていること(国毎、店舗毎の売上店数を予測します)」が挙げられます。
また、外的要因により前回と大きく違うところは、2020年流行した新型コロナの影響です。2022年1月コンペは、2019年の1年間の売上予測でしたが、今回は学習データに2020年のデータが含まれ、予測対象が2021年の1年間、なので、新型コロナの影響がかなり大きいです。後述しますが、売上数の時系列推移を見ると2020年を境に売上点数推移が大きく変動していることが分かります。今回の分析ポイントは、一見一貫性がないように見える時系列データを元に予測を行うモデルを作成するためにどのようなアプローチ、考え方が出来るのか?というところだと思います。以降、今回のコンペで岡のアプローチについて記載しますが、Kaggleページにてコード付きNotebookを公開しているのでよろしければご確認ください。

データ状態を確認
前回補足したとおり、データを確認⇒特徴量を追加した学習データの作成⇒モデルの構築、の順で予測モデルと予測値を作成していきます。

①単純な日毎の販売数の推移から確認していきましょう。横軸が時間軸、縦軸が販売数で1日の合計販売数の平均をプロットした図が↓です。2019年までは年末年始に突出して販売数が増加していることと、2020年がそれまでと比べて明らかに推移傾向が違うことが分かります。

②予測する国同士の日毎販売数の相関をヒートマップ↓で確認。どうも「ドイツ・フランス・ベルギー」と、「イタリア・ポーランド・スペイン」の2グループに分かれて、3カ国ずつで高い相関がありそうです。※2020年のデータも含んだ状態=コロナの影響を反映したとしても相関が高いということで、上記2グループ内ではコロナによる商品販売数への影響が同じである推察します。

③国別かつ店舗別に横軸を時間軸、縦軸を販売数としたグラフを見ていきます。予測する6カ国の中で一番極端な傾向にあった2カ国のみを↓に表示します。ベルギーが2020年以降、それまでと比較し販売件数が減少し、逆にポーランドは販売件数が増加していることが分かります。他の4カ国の傾向も、上記②図の相関が同じグループ同士で同じ傾向(2020年以降がそれまでと比べて増加or減少している)であることが確認できました。※相関が高いもの同士で同じ傾向なので想定通りです。



④上記①の販売数の推移を商品プロダクト毎に分けて見ていきます↓。横軸、縦軸は①と同じで、プロダクト毎に色を分けています。プロダクトが違えば、販売数の時間軸に対する推移が違うことと、2020年の、特にコロナによる影響が大きかったと思われる、大体2020年2月~6月にかけては、プロダクトが違っても変動傾向が同じであることが確認できました。

⑤全体での年毎の販売数推移は↓の通り。コロナにより販売数が減ったのかと思ったら逆で、2020年が一番販売数が多かったです。

⑥曜日毎の販売数も見てみましょう。横軸の0が月曜日~6が日曜日です縦軸は1日ごとの販売数の平均値です。曜日毎で販売数に違いがでそうなことはなんとなく想像出来ますし、週末にかけて、金土日曜日の販売数が多いことはまぁその通りかなといった感触です。

⑦同じコンペに参加していた別の参加者さんがとても良い特徴量を見つけてくださったのでそちらも追加。詳しくはこちらをご参照ください。1日ごとの販売数の合計(国別、商品別を全てあわせた合計値)を分母、商品毎の販売数合計値を分子とした割合を時系列で並べると、2017年~2019年と変わらず、2020年も同じような、連続的な傾向が確認できるのです。これは素晴らしいです。時系列データというと、連続的な傾向を元に次の値を予測するという特色が強いですが、上記①や③、④をみると明らかに連続的ではなく、どのように特徴量として重み付けをしていこうかと悩んでいたところでした。↓を見る限り、どのプロダクトも2年周期で傾向が変化してそうです。

学習データを準備
色々なデータ状態、傾向を確認したところで学習データを作成していきましょう。
●提供データのうち、ラベルデータをカラム毎にscikit-learnのOrdinalEncoderを用いて数値データに変換
●日付データを年、月、日のデータに分割して追加
●上記②から、相関が高いもの同士の2グループに分けて平均や個別で先に予測した値を特徴量として入れても良さそう
●上記⑥から、曜日ラベルも追加
●⑦より、↑でプロットしたデータを用いて、軽めのRegressionで求めた2021年1年間の割合推移(↓図の2021年区間)を特徴量として追加。2017年~2020年は実際のデータなので、予測値が連続的に求められていることが分かります。)
●なんとなく各国のGDPデータも追加してみる

いざ学習&コンペの結果
学習データが準備できたところで、後はモデルのアルゴリズムを選定し、学習するのみです。時系列データといえば、でお馴染み、LSTMを利用したモデルも検討しましたが、2020年の推移がそれまでと極端に違うことから多分今回はそれだとうまくいかないだろうと思い、単純にLGBMとCatboostのReggressorにて学習。スコアは約8.4でした。(ちょうど中間あたりの順位。平々凡々です。)コンペ1位の方はスコア4でした。因みにコロナの影響がないバージョンの2022年1月コンペの1位スコアが4.5なのでこれより良い結果。データが違うといえど、本当にすごい…

考察
データ確認⑦図より、周期性が確認できた時点で、フーリエ変換を用いた特徴量を追加することも可能でしたが、ちゃんと理屈を理解していないままに追加するのはどうかなぁ、、ということで今回は追加しませんでした。これを追加したらもっと良いスコアが期待できたかも知れません。また、驚きだったのは、上記で同じことを記載しましたが、2022年1月のコンペ1位スコアより、今回のコンペ1位スコアの方が良いということです。詳しくは確認していませんが、学習データボリュームとバラエティーが前回より増えていたことも、スコアが良くなった要因のひとつではないかなと考えています。何にせよ、素晴らしい!また、どうしても解せないのが、国毎にコロナにより販売数が減ったり、増えたりと明らかに傾向が違うことです。これなんでなんでしょうか…人口が1年で極端に増減することはないですし、国の政策(コロナに対する補助とか?)が違うからでしょうか…?GDP以外に、CCIなど、他の経済指標も特徴量として追加してみましたが、予測値スコアを大きく上げるような特徴量は見つけられずにいます。何かこの事象を説明できる要因が見つかったら本ブログ更新しようと思います。

最後まで読んでいただきありがとうございました!

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

一社)金融データ活用推進協会「標準化委員会」活動本格化に向けた検討メンバーに参画いたしました

株式会社アイティーシーは、金融データ活用推進協会(以下FDUA)の「標準化委員会」の検討メンバーに参画しました。

FDUA「標準化委員会」は、これまでその活動骨子の策定や情報交換会の開催を通じて、金融データ活用の在るべき組織の標準化活動を推進してきました。この度、金融業界を代表する有識者および高度な専門知識を持つ有識者により構成される検討メンバーが正式に決定、アイティーシーは、サポーターとして参画することとなりましたのでお知らせいたします。

詳細は下記プレスリリース記事をご参照ください。
https://prtimes.jp/main/html/rd/p/000000002.000103937.html

【標準化委員会の活動概要について】
業界横断で交流しつつ、関係諸団体等との連携も深めながら、金融データ活用の在るべき組織の標準を策定していきます。具体的には、各金融機関によるセルフチェックが可能となる「データ活用組織チェックシート」(仮称)の制定を予定しています。また、制定後には、各金融機関のデータ活用組織状況を本チェックシートにより定点観測することで、データ活用に関して金融業界全体の底上げを図ってまいります。

標準化委員会でのサポーターの役割は、委員長、委員長代行の作業の補佐です。
これまでの第一回、第二回意見交換会活動と同様、「金融機関におけるデータ活用の標準化」に向けた活動の一助となるよう、精一杯努めて参ります!

金融データ活用推進協会(FDUA)の詳細はこちら

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

FDUA主催の第二回標準化委員会に参加しました!

アイティーシーが特別会員として参画している、金融データ活用推進協会(FDUA)主催の「第二回標準化委員会(2022年9月21日開催)」に参加しました!詳細はこちら

本委員会は、「金融機関におけるデータ活用の標準化」を推進するため、金融機関の「データ活用チェックシート」の作成と、金融各社の壁を越えて業界横断で交流を図りデータ活用の連携を進めることを目的としています。

~イベントに参加後の感想~
第二回目のテーマは、「金融機関におけるデータ活用ガバナンス」についてでした。
正直なところ、ガバナンスというテーマは自分にとって難しいものでしたが、データの利活用業務を行う上でとても大切な、というか必要不可欠なものなのだなと今回の意見交換会を通して再認識しました。ガバナンスがきっちり整備されているからこそ、「このデータこういう使い方していいんだっけ?」とか「このデータ分析モデルに組み込んで大丈夫かな?」といった作業中の疑問点や不安が解消されやすいと思いますし、このような場面に遭遇したら、まずはガバナンスがどうなってるのか?確認するように意識することも大切だと思いました。

金融データ活用推進協会HPはこちら

関連記事
金融データ活用推進協会(FDUA)主催のMeet-Upイベントに参加しました!
金融データ活用推進協会(FDUA)が日本経済新聞に取り上げられました!

金融データ活用推進協会会員限定Meet upに参加しました!

アイティーシーが特別会員として参画している、金融データ活用推進協会(FDUA)主催の「第一回 一般社団法人金融データ活用推進協会Meetup(会員限定)」に参加しました!詳細はこちら

イベントでは、協会の活動報告や、勉強会、懇親会などが行われました。

~イベントに参加後の感想~
今回のイベントは、協会発足後初となる大型オフラインイベント(オンラインもあり)で、かなり大勢の会員の方が参加されていました。FDUAでは月二回、定期連絡会と勉強会がオンライン開催されていますが、やはりオフラインだと参加会員の方々とお話ししやすかったり、会場の雰囲気が分かるので、こういったオフラインイベントに参加することもとても大事だなと感じました。

金融データ活用推進協会HPはこちら

関連記事
金融データ活用推進協会(FDUA)主催のMeet-Upイベントに参加しました!
金融データ活用推進協会(FDUA)が日本経済新聞に取り上げられました!