Column連載コラム

2021.10.03

【講師自己紹介】自己紹介に代えて~大学時代にやってきたこと、なぜデータサイエンティストを志したか、求められるスキルは何だろうか~

データサイエンスアカデミー兼任講師の笹森です。グループ会社のデータフォーシーズでデータサイエンティストとして働く傍ら、データサイエンスアカデミーで講師も兼任しております。本記事では以下について述べていこうと思います。

 

・これまでどのような分析業務を行ってきたか
・学生時代の専攻は何であったか
・なぜデータサイエンティストを目指したか
・データサイエンティストにはどのようなスキルが求められるか

 

■これまでどのような分析業務を行ってきたか

・金融機関における不正取引検知
・IoTデータを用いた故障予兆検知
・流通分野における需要予測等の各種モデル構築
・地域性を考慮した購買分析
・自然言語処理による人材マッチング分析
・申し込み情報に基づく保険料推定
・会員離脱予測モデルに基づく離脱防止検討

 

等があります。詳細は割愛いたしますが全てに共通しているのは「データを用いて、何かやりたいことをする(知りたいことを知る)」ということです。データ分析はこの言葉に集約されるといっても過言ではないと思います。また、大事であるのは「何かやりたいこと(何か知りたいこと)が先にあり、そのためにデータを用いる」ということです。やりたいことを実現する、知りたいことを探索するための方法論は様々なものがあります。例えば「店の売上の傾向が知りたい」が目的だった場合、実際にその店に赴いて店の様子を調査する、という「データを利用する」とは限らない方法も当然あるはずです。その中でも「データを利用する」ことに特化した存在がデータサイエンティスト(またはデータアナリスト、データ分析者)と呼ばれるものだと言えるでしょう。

 

■学生時代の専攻は何であったか

学生時代の専攻は数学でした。よく「紙とペンの世界」と呼ばれることも多いですが、実際に大きく間違いではありません。もちろん計算機を実行して研究を行っていく分野もありますが、大体は紙とペンのみで研究していくような分野です。私は大学数学の中でも特に確率論を専攻しておりました。これは少々ややこしいのですが、いわゆる「統計学」とは異なることをやっておりました。私が「大学では数学科でして特に確率論を専攻しておりました」と述べるとよく「ではデータサイエンスに出てくるような統計学についてはかなりご存知なんですね!」と反応されます。しかし前述の通り「統計学」をやってきたわけではないので実は働き始めた当初は統計学については無知識でした。このような誤解をされてしまうのも仕方ない話でして、大学数学がどのようなことをやるのかを数学科以外の人がよく知らないといったこともあります。よってここでは私の専攻テーマが何であったかよりも「そもそも大学数学はどういうことをやるのか」について述べようと思います。

 

「大学数学は何をやるのか?ひたすら計算をするのか?」と思われがちですが、大学数学がどういうことをやっているかのイメージとしては、高校数学で言うところの「集合と論理」のイメージが近いかと思われます。「nが偶数であるならばn^2も偶数であることを証明せよ」ですね。こういう証明を考えていくのが大学数学と言えます。もちろん微分・積分のような計算も行います。ただし高校数学では割と「これはこういうものであるととりあえず認めて計算していこう」としていた部分が「これはこういうものであるということを”きちんと証明した上で”計算していこう」と変わります。

 

誤解を恐れずに述べると、大学数学は「RPGの縛りプレイ」に似ています。RPGをプレイするときには多くの方は普通にプレイしてクリアーすると思いますが、更なるRPGの楽しみ方として縛りプレイと呼ばれるものがあります。「どれだけレベルを上げずにクリアーできるか」、「魔法を一切使わずにクリアーできるか」などですね。大学数学ではこのような「RPGの縛りプレイ」と似たことを行うことが多いです。一例をあげますと、我々が高校までの数学で触れてきた「世界」は大学数学ではユークリッド空間と呼ばれる「世界」です。このユークリッド空間では「点と点の距離の計算」、「ベクトルの大きさの計算」、「ベクトルとベクトルの角度の計算」などができました。大学数学では、これに制約をかけた空間を取り扱ったりします。例えば「距離は計算可能、大きさも計算可能、しかし角度の計算はできないような空間では、ユークリッド空間で成り立っていた良い性質や良い定理はどれほど成り立つのだろうか」を調べていきます。当然、成り立つものもあれば成り立たないものもあります。そうすると「定理」の中でも「別にユークリッド空間でなくても、距離と大きさが計算可能な空間では成り立つ定理」と「ユークリッド空間では成り立つけれども、角度が計算できないような空間では成り立たない定理」と分類することができます。そういうことを繰り返していくと「こういう性質が成り立つためには、こういう前提がないとダメなのか」であったり「こういう性質が成り立つためには、この前提は別になくても良かったのか」と、どんどん「本質」に近づいていくことができると言えます。RPGの縛りプレイもまさに似たようなものであり、低レベルクリアーしようとすると理想的にはレベル1でのクリアーが目標になりますが、大体の場合それは難しいでしょう。「強制バトルイベントによる経験値のせいで仕様上必ずレベル2にはなってしまう」であったり「レベル1だと体力が20だけど、あるバトルで必ず先制攻撃を食らってしまう。防具やアイテム効果などを最大限駆使してもどうしてもダメージは22になってしまう」であったり等々。そうすると「低レベルクリアー実現可能の理想レベルとしてはレベル3だ」のようなものがわかります。そして「プレイヤーのレベルが3であるならば、このRPGはクリアーできる」を”証明”したことになります。単にクリアーするだけならばレベル3であればよいことは分かりましたがさらに「5時間以内にクリアーする」という条件を満たそうとするとレベル3ではできないかもしれません。それならば5時間以内にクリアーするための必要最低限レベルはいくつなのか?また別の方向性として「とにかく速くクリアーする」を狙うと何時間何分になるのか?(これは縛りプレイというよりはタイムアタックの部類かとは思いますが)など、考えられることはたくさんあります。それを一つ一つ丁寧に行っていくのが大学数学であり、今なお「誰も挑戦したことがない記録」に挑戦している研究者がたくさんいます。

 

大学数学では様々な分野があり、様々な定理がありますがどんな分野であろうとも定理の形(構造)はどれも共通しています。「仮定A⇒結論B」という構造です。仮定Aとしては当然弱い仮定(達成しやすい仮定)の方が良いですし、結論Bとしては強い結論(インパクトのある結論)の方が良いです。そうすると考えるべきは「結論Bとしてはどのようなものが考えられるか?どういうことが言えれば嬉しいか?」であったり「結論Bを導くために必要だと思われる条件は何か?その中でもどの条件が”本質的”か?(外せないものか?)」です。そしてある程度の仮説を置いたうえで、自分が設定した仮定(+それから導かれる事実)のみを用いて、他の余計なものを使わずに、得たい結論に辿り着けるかどうかの証明を頑張ります。よって数学科では「いま自分が何のみを使えるか?得たい結論は何か?自分が用いることができる条件のみを用いて、得たい結論を得るためにはどういう道筋を辿ればいいか?」ということを常日頃やっております。もちろん学部生のうちからいきなり「世界中の誰も解いたことがない問題」について考えることは難しいですので、先人が示してきた定理の証明を学んで訓練します。

 

■なぜデータサイエンティストを目指したか

前段で長々と語ってしまいましたが、ここからは私がなぜデータサイエンティストを目指したかについて述べます。まずは、やはり数学の知見を活かせる仕事だというのは魅力的でした。「データサイエンスの実務を行う上でどこまで数学的理論部分を理解していなければならないか?」というのは実はなかなか難しい問ですが、少なくとも統計学の初歩は必須ですし、また知りたい場合は自分で勝手に勉強すればいい話でもあります。勝手に勉強してもそれが全くの無駄になることはありません。(機械学習の理論部分を理解しておく必要は必ずしもないと思いますが、理解しておけば有益であることは確かです)そういう意味では「数学の知見を活かせる」仕事だと思いました。ただし一方で別に「自分が学んできた分野の知識を使うかどうか」についてはあまり気にしていなかったです。前述の通り、私がやってきたのは確率論であり統計学ではなかったですし、大学数学までいくと抽象化されている部分も多いですのでその知識をそのまま扱う職業というのはなかなかないだろうと判断しておりました。

 

ただし前述の通り、数学の具体的な題材はともかくとして、やってきた作業としては「いま自分が何のみを使えるか?得たい結論は何か?自分が用いることができる条件のみを用いて、得たい結論を得るためにはどういう道筋を辿ればいいか?」ということです。私はこの作業自体が非常に面白いと思っていたので、こういう体験ができるような職業に就きたいと思っておりました。もちろんデータサイエンティストに限らず世の中にはこのような頭脳労働をする仕事は数多もあるかと思われますが、その中でも数学の知見を活かしやすい仕事として「データサイエンティスト」が就活の軸として残った感じです。

 

■データサイエンティストにはどのようなスキルが求められるか

データサイエンティストにどのようなスキルが求められるか、というのはこれも非常に難しい問いでございます。

 

ある人はエンジニアリング能力だと言います。それは実際に正しいです。いわゆるビッグデータを扱うとなると数千万個、数億個のデータを扱うのは当たり前になってきます。まさかそれを手計算で行うわけにはいきません。プログラミング言語を用いてその計算は機械にやらせるのが普通です。私自身が扱ってきたものでいうとPython、R、SAS、SQLといったものがあります。実際にこのあたりのプログラミング言語が使われることは多いです。(厳密にはSQLはプログラミング言語ではなくデータベース操作言語ですが。)「どれか1つをほぼ完璧に理解する」であったり「すべてに精通している」必要は全くないと思いますが少なくとも「どれか1つを最低限理解する」必要はあると思います。

 

ある人は数理能力だと言います。それも実際に正しいです。どこまでが必要かという線引きは難しい話ですが、少なくとも「単純な平均(算術平均)がそもそもどういうものか、どういう計算をしたら算出できるか」すら理解していない状態で実務を行うのはやはり難しいでしょう。私の個人的な感覚では高校数学についてはある程度理解しておけば十分であろうと思います。逆に言えば高校数学レベルのことは必要になる場面がでてきます。例えば、ある予測モデルをつくってその予測モデルの良し悪しを検証しようという場合、ある指標を用いて定量的に計算したりします。このときの指標としては実は候補はたくさんあり、「いま何がやりたいか」、「どういうことが知りたいか」、「どうなっていれば良い予測と言えるか」に応じて適切と思われるものを選定していく必要があります。指標には計算式がありますからその計算式を解釈して「こういう指標はこういうことを知りたいときに使えそうだな」と判断していく場面も実務上では出てきます。その計算式には四則演算の他にも高校数学で学んだ総和記号Σであったり組み合わせ計算や順列計算であったり微分・積分は当たり前のように出てきます。よってこのあたりについてはある程度理解しておく、すなわち高校数学についてある程度理解しておくことは必要と私は考えます。

 

ある人はコンサルティング能力だと言います。それも実際に正しいです。何も目的がないままデータを分析することはほぼありません。必ずと言っていいほど「知りたいこと」であったり「やりたいこと」であったり「解決したい課題」があって、それを知るため、やるため、解決するためにデータを利用して分析していくものです。よって、そもそも「何が目的か」をきちんと捉える必要があります。そして「いま何が使えるか」、「どんなデータが必要か」も把握する必要があります。アカシックレコードが手元にあればすべて解決できるでしょうが、当然ながらそんなものは手元にはありません。自社の売上の分析を行いたいときに、自社の売上の詳細なデータは使えるでしょうが、他社の売上の詳細なデータはよほどのことがない限り手に入れることはできません。また自社のネット販売の売上の分析を行いたいのに自社の店舗販売の売上の詳細なデータだけあっても、やりたい分析はなかなかできないでしょう。この場合は必要なのは「自社のネット販売の売上の詳細なデータ」です。このように、どういうデータがあるのか、どういうデータが必要なのかについてもきちんと捉える必要があります。そして目的と前提について把握したら「前提→目的」の道筋をどのように設計していくかが必要になります。データ分析の手法は数多ものやり方がありますが、当然それらには一長一短があります。中には「自分がいまやりたいこと」を知るために用いるのには不適切な手法もあります。このように数多もの分析手法の中から「筋の良さそうなもの」をきちんと選択していき、そして実際に分析を行っていく能力も必要不可欠です。(このあたりは数理能力、エンジニアリング能力とも重複がある部分です。)今の前提、最終目標、それらをつなぐロードマップを描く…これはまさにコンサルティング能力と言えるものでしょう。

 

それらの他にも様々な能力は求められるでしょう。自分が持てるエンジニアリング能力であったり数理能力には限界があります。そして日々、新しい技術であったり理論であったりはものすごいスピードで出現してきます。どうしても実務を行う上で自分が知らなかったことというのは出てくるものです。そういうときに「自分で調査できるか」であったり「自分で学習できるか」の能力は必要になっていきます。そして日本語だけでは必要な情報が取れないこともあります。英語の能力(スピーキング、リスニングはともかくリーディングについて)はある程度あったほうがよいでしょう。

 

そういう意味では「新しいこと、自分が未知のことについて勉強することが苦ではない(別に問題なく行える)」というのが唯一必要なスキルかもしれませんね。(もっともこれはデータサイエンティストだけに限った話ではないと思われますが、ただし実際に「勉強しなければならない」という場面に遭遇するのはデータサイエンティストは多いと思います。)

 

■まとめ

本記事では、私の自己紹介(+α)として

 

・これまでどのような分析業務を行ってきたか・学生時代の専攻は何であったか
・なぜデータサイエンティストを目指したか
・データサイエンティストにはどのようなスキルが求められるか

 

について述べました。こうしてみるとデータサイエンスの仕事は私が数学科で学んできたこと(具体的な題材というよりは「問題に対するアプローチ」であったり「問題解決の方法」)をよく使っていると思いますし、実際に満足度高く日々の業務を行っております。今回はこのあたりで終わりたいと思いますが、別の記事では「統計学や機械学習について」であったり「特定の業界、特定の分野におけるデータサイエンスの役割、可能性、実例」などについても述べていければと思っております。

 

※講師のプロフィールはこちらで紹介しています

データサイエンスアカデミーでは、
無料個別相談・セミナーを実施中!
お申し込みはこちら

Archiveアーカイブ