Posted at

データサイエンティストを目指して勉強した1年間まとめ

More than 1 year has passed since last update.


はじめに

本記事では、データサイエンスについて学んだこと、データ分析業務に携わって、経験したこと、気付いたことをまとめています。特に、後半を中心にまとめています。前半についてはこちらの「データサイエンティストを目指して半年で学んだことまとめ」に書いています。ご興味があれば、読んでいただければと思います。


全てはビジョン(あるべき/ありたい姿)を明確にしてから始まる

データ分析で最も重要になるのが、ビジョン(あるべき/ありたい姿)の明確度にあると感じています。ビジョンが明確であるほど、課題・目的も明確に設定でき、課題解決のための仮説検証、必要なデータの準備と、ビジョンの実現に向けたデータ分析ができるようになります。勿論、ビジョンが明確であれば良いというものではないかもしれません(必要なデータが集められない等)が、少なくとも、意味のない作業を減らすことは可能だと考えられます。

逆にビジョンが明確でない場合、まず、何をやれば良いかわからない状態になる可能性が非常に高いです。とりあえず、手元にあるデータから何か言えないかデータをいじくった結果、「このデータから○○という傾向がわかる!」と思っても、「で?、だから何?」となります。結局、ビジョン(ゴールとも言える)が定まっていないと何も解決できず、「とりあえず、やってみた!」に終わってしまうのです。

また、注意したいのが良い感じの出力結果から目的設定するスタイル。特に初心者(自分含め)に多いのではないでしょうか?予想していた結果ではない(そもそも何も考えていない場合も…)が、特徴的な結果が出たときに、それを元に分析してしまうパターンです。このパターンに陥ると、(個人的経験によると)「やりたいことは、それじゃない」となります。目先の結果に囚われず、常に、ビジョン・目的を達成できるのか否かを基準にしなければなりません。最近は、その結果は、何を説明できるのか?を自分に問いかけることで、ビジョン・目的を見失わないようにしています。

ビジョンが大事と書いたものの、必ずしも、自らビジョンを設定できるとは限らないのが現状です。分析依頼者から「良い感じにして欲しい」と言われる場合は、「良い感じ」を聞き出すことで、ビジョンを明確にしていくことはできるかもしれませんが、とりあえずAIで何かやってほしい!と言われる場合は言っている人・タイミングの見極めが肝心、というのが個人的な見解です。


攻略!「とりあえずAI」

自分の知っている範囲ではありますが、「とりあえずAIで何かやりたい!」にはパターンがあると考えています。


とりあえずAI~AIは手段の一つ~

AIは手段の一つと考えているパターン。「AIでやると何が違うのか」を説明し、課題解決ができそうか、試す価値があるのかを理解してもらえると良い関係を築けるという印象。「AI(機械学習?)とは何か?どんなものを想像しているのか?」等、お互いのギャップを埋めつつ、ビジョンを設定していけるか、対話次第であると考えています。

機械学習等、いわゆる高度な分析でなくても、課題が解決できれば良いという印象が強い。


とりあえずAI~「AIでやってます」と言いたい~

次は、「AIでやってます」と言いたいパターン。特に、課題があるわけでもなく、何かに困っているわけでもないが「AIやってます」と言える何かをやりたい人達。「無理なら仕方がない」と思っている人もいる模様。ビジョンや課題はこちらから提案していく印象が強い。協力が必要な時に対応してもらえるかがポイントかなと。

データ収集が予想以上に大変と気付き、やめる印象があります。、


とりあえずAI~AIは俺の意図通りの結果を出すんだろ?~

最後は、いわゆるAI万能説。特に、強い印象があるのが、「Deep Learningでやれば解決できるんでしょ?」というDeep Learning特化型と、「俺の求める分析結果を出して!AIでできるんでしょ?」というシンプルなAI万能説信者の2パターン。

Deep Learning特化型の特徴は昨今のAIブームの影響が非常に大きいというのは明らかです。確かに、Deep Learningが大きな成果を上げているのは事実ですが、どんな課題に対しても有効とはいえないこと、成果を出すだけのデータの量と質を用意できるのかという大きな課題があります。が、これらの課題を無視してでも、「とにかくDeep Learningでやりたい、ほかの手法ではダメだ、Deep Learningだ!」という人たちがこちらになります。もっと他にやるべきことがあるだろうに…

シンプルなAI万能説信者は、最近(自分の周りでは)減ってきている気がしますが、印象は一番強いです。特に、印象的だったのが、「データはあるんで、要求通りの予測結果出して!」の一言。思い通りに結果出るなら分析いらない説。

これらのAIは自分の思い通りの結果を出す都合の良いものと考えている人はAIが全てやってくれると思い込んでいる場合が多く、何を達成/解決したいかという話にならないので、可能な限り全力逃走か、うまく回避したいところです。ただただ、消耗するだけです。


絶対回避!「とりあえず、やる」

自分で手を動かす時に避けたいのがとりあえず、やる。何をやれば良いかわからないときや、勉強したアプローチを使ってみたいときにやってしまうのですが、結果の説明ができない。「とりあえず、やってみた」とか「こんな結果出たんですけど、どうですか?」くらいしか言えません。そして、注意したいのがとりあえずやってみた結果が、稀に刺さるということです。

何か面白い結果が出た!と盛り上がってしまい、どんどん進めていった結果、当初の目的を完全に見失うなんてことも…結果が面白いかどうかに囚われてはいけない、目的を達成できたかどうかを基準にしなければいけない。

「とりあえず、やる」をやめて、解決すべき課題は何か、何を主張できれば解決できるか、主張するためには根拠として何が必要か、その根拠はデータか導出できるか、やってみると、仮説検証をしっかりやることで、「何か面白い結果」に左右されなくなってきた今日この頃であります。


前半と後半の違い

前半の半年は上記記事にも書いたように、機械学習を、アルゴリズムをどうやって活用するかを中心に学びました。技術検証を中心にやっていたこともあって、いわゆる手段として正しい使い方を勉強しました。一方、後半の半年は実案件にも携わるようになり、それまでの、データ、プログラム、数学・数式だけでなく、顧客とも向き合うようになり、ビジョン、目的の重要性を感じました。

上にも書いてますが、ビジョン・目的があって、それを達成するためにどんな手段が有効か?を考えるようになり、どのアプローチ・アルゴリズムを使うかではなく、何を主張できれば良いか(説得できるか)を先に決めるようになってきた気がします。

また、コミュニケーション能力は重要で、特に、最初の目的・課題設定を曖昧にしてしまうとできるものもできなくなったり、無駄なタスクが増えるので、目的、課題を具体的に設定する、分析結果から次のアクションへとつなげるための対話力が必要になります。


衝撃の一言 3選


  • お客さんがAIで何かやりたいと言っている、自分たちもAIで何かやりたい!意向がマッチしたから、よろしく!

シンプルに何か is 何案件。結局、お客さんの業界調査して、課題を見つけ企画、提案しましたが…

一体、打ち合わせで何を議論したのか気になるところ…


  • データはどうでも良いから、Deep Learningで分析して!予測結果に対する原因とかわかれば良い!

完全にDeep Learning万能説。そもそもデータを適当に用意(自作)して、どんな結果(原因含め)がでるか知りたいと言われましても、結果に何も意味ありませんよ?という話、しかもDeep Learning。やることに意義がある的なことを言われた記憶が…


  • お客さんに従来の分析とは違う分析を提案したい!今?Excelで何かやってるんじゃない?

これは完全にコミュニケーションエラーです。どういう目的の分析(what)を聞いているのに、返事が分析手段(how)になっています。Excelでやった結果とRやPythonでやった結果が異なる(確率的要素は除く)ってそもそも何か問題があるのでは…という話。

これらから言えることは、分析依頼者、分析者の間に誰か(営業やマネージャー)が入る場合、その人も分析、データサイエンスの知識がないと余計な手間が増えるということです。最も避けたいのは、「この前○○ツールでこんなことできるって話したからこのツール使って!」という、無謀なるツール縛り。

データ分析では、データクレンジング・前処理という泥臭いタスクが大半と言われていますが、データ分析をするために関係者を説得するというさらに泥臭いタスクがある場合もあるという現実と向き合っている今日この頃であります。


使用した参考書

文字通り、データ解析初心者向けの本。データ解析のプロセスを理解するのにおすすめ。個人的には分析者だけでなく、分析に携わる人(営業、マネージャー等)にも読む価値があると思っています。

こちらもプロセスを理解するために役立つ1冊。Rのサンプルコードもあるので、手を動かしながらできます。

機械学習プロジェクトの進め方が書かれた1冊。機械学習のアプローチを理解してから読む本という位置付け。

上記3冊は手法は理解したが、実践はどうすれば良いかわからないって人におすすめです。

統計学でおすすめの本といえば、この1冊ではないでしょうか?

統計学勉強ついでにRの勉強もできる1冊。

データサイエンスのための統計学ということで、従来の統計学では行うが、データサイエンスの分野ではやらない等、現代の統計学?とも言える内容。関連語なども書かれており、キーワードの整理にも役立つ1冊。



モデルの使い分けを学べる1冊。Rのサンプルコードあり。

Rは書くよりも読む方が圧倒的に多いので、書く練習のためにやってみました。

時系列モデルを扱う機会があったので、読んでみました。何気に実践→理論は初めてでしたが、「あのコードはこういう意味だったのか!」と気付きがあったので、実践から入るのも悪くないと感じた1冊でした。

ログ解析で異常検知をやることになったので取り急ぎ読んだ1冊。モデルはまだ作っていない。

ベイズを勉強しようと思って、読みました。尚、確率論が弱い模様。

最後は、みんな大好きPRML。やはり確率論が弱いことに気付く。行列あたりも怪しいことに気付く。一方で、何度も数式にだいぶ慣れていることにも気付く。少しずつだが、数式から処理をイメージできるようになった気がする。

何冊も読むと似た内容があったり、本を読む→実装→再度、本を読むと最初わからなかったことが、2回目は理解できたり、気付きもしなかったことに気付くようになったりと数をこなしたことで学んだことが多くあるはずなのに、やればやるほど、次やるべきことが見つかっていく…

改めて、多くのスキルが求めらる分野だと実感しました。数学がプログラミングが苦手とか言っている場合ではない。


さいごに

1年間勉強してきてわかったことは、ビジョン・目的を具体的に設定する力も分析スキルと同様に必要であるということです。また、次のアクションにつなげる主張をデータ分析から導き出すことができるかが今後一番の(永遠の?)課題であると考えています。カギとなるのはFeature Engineeringだと思っています。

では、これにて1年終了。