目的を意識した精度指標
精度ってなんだ?
よくデータ分析をしていて話に出るのが「精度」です。
けど、「精度」ってなんでしょう??
真面目に考えると難しい。。。
小難しい本を読むと、回帰分析ではAICやら、MAPEやら決定係数やらいろいろ出てきます。
でも、仕事で使う上で個人的に一番大事なのは、「仕事で何をしたいのか?」から精度指標を決めることだと考えています。
下記は「お酒メーカー(サントリーやキリンなど)が、「ビール大好き」属性の人を集めて、今度新商品する新ビール商品のインタビューをしたい。そこで属性を予測するモデルを作りたい」という状況を仮定したときのものです。
シンプルに正しく予測された数を見ると、6人中4人なので66%の正答率となります。
しかし、今やりたいことは「ビール大好き」の人集めたいのです。そうなると、「ビール大好きと予測した人が、本当にビール大好きなのか」というのも非常に重要になってきます。
例えば「全体の正答率66%だけど、ビール大好きと予測したは全員ワイン大好きでした」では、話になりません。
そこで、ビール大好きと予測した人に絞って正答率を見てみると、4人中3人正解で75%となります。
こんな具合に、「精度」といっても目的に合わせて、適切に設定することが非常に重要ですし、よく考えないと微妙にずれた指標を使ってしまう可能性があります。
(ちなみにこの例の場合、全員ビール大好きと予測すると、「全体」の正答率は6人中4人で66%、「ビール大好きと予測して本当にビール大好き」の正答率は100%となり、数値上は良いですが、その予測にはなんの意味もありません)
データ分析案件のPMになった人に読んでほしい
パネルディスカッションで出た悩み
先日、データサイエンティストとしてパネルディスカッションにパネラーとして参加しました。
その時受けた相談の一つが、「データ分析案件のPMをやっているが、案件マネジメントに困っている」というお話でした。
そこで、そんな人たち向けに案件マネジメントの仕方の助言となるようなスライドを作ってみました。
困っている原因はいくつかあり、これはその一例向けでしかないのですがお役に立つと幸いです。
今後も不定期にデータ分析PM初心者向けのスライドを作っていこうと思います。
上記のパネルディスカッションでも出たのは「精度が~」と言われ終わり時がわからないパターンなので、次はそういう状況で困っているPM向けのスライドを作る予定です。
Qiitaも書いてます
Qiitaにも小技なり、読んだ論文のサマリーなり色々書いてますのでぜひ見てください!
https://qiita.com/Naka-u
Rで直接Clipboardへコピーする方法
Clipbordへのコピー
会社で案外知らない人がいることを知ったので、こちらでも共有
write.table(table, "clipboard", sep = "\t")
これでクリップボードにコピーできるので、エクセルへ`ctrl + v`で貼り付けられます!
例えばこんなかんじに
> table unit price freq temp 1 1 1 4 5 2 5 2 3 2 3 2 3 5 2 4 4 4 2 4 5 2 1 4 5 6 4 2 6 7 7 4 3 4 6 8 3 4 7 2 9 5 1 5 4 10 2 2 6 3 11 4 3 7 6 12 5 4 6 7 13 4 1 5 5 14 2 2 2 4 15 5 3 6 2 16 4 4 4 3 > write.table(table, "clipboard", sep ="\t", row.names = FALSE)
これでコピーされたので、エクセルの`ctrl + v`で貼り付けできます。
(貼り付けたところのキャプチャー)
RとPython
RとPythonどっちが良い??
最近はだいぶPythonから入って、Rは別に、、みたいな人も増えましたが、よくある疑問が「RとPythonどちらを覚えるべきか?」ですね!
個人的な答えは「両方覚えれば?」です笑
どちらか一つしか選べない、というものでもないですし、求人とか見ても「RやPyhonを用いて分析した経験」のように両方書いてあることも多いので。
何より、どちらかしかわからない人より、両方わかるほうが市場価値は高いんじゃないでしょうか。(もちろん、これだけで市場価値は決まらないですけどね)
とはいうものの初心者が始めるにはどっちが。。。
ただ、初学者がいきなり両方勉強するのはなかなか大変かと思いますので、まずどちらか入るべきか?という視点でいくと下記のようになるかなと。。
R
・プログラミングがそもそも初心者
・記述統計寄りのバックグラウンドで、そちら寄りの分析がしたい
・機械学習寄りのことがしたい
・画像認識などをやりたい
だいたいどちらでも同じことができる
階層ベイズモデルなり、状態空間モデルなり、MCMC推定なり、クラスターなり、判別モデルなり、勾配Boostingなり、このあたりはRでもPythonでもどちらでもできます。
ただ、個人的には変数加工する際にRStudioを用いれば列数・行数を確認しながら行えるので、Rのほうがおすすめです。(PythonならSpyderがおすすめです)
ただ、画像解析系はPythonのほうがおすすめです。これは圧倒的にPythonでの事例が多いので、困ったときにググって解決できるからです。
時代はPython?
なんとなくPyhonから入る人が増えているように思えますし、会社に入社してくる学生や、インターン生もPython使いの比率が増えてきているように思えます。
ならば、Rの時代は終わるのか?というとわかりません笑
ただ、完全に需要がなくなるのはまだ先かなと。そのときにPython使いだらけの中、Rが使えれば市場価値は高そうですよね。なので、個人的には両方覚えちゃえば?と思ってます。
またJuliaなんて言語が次に流行る!とも言われているので、学び続ける姿勢が何より大事かなと。。
Qiitaに記事書いてます!
QiitaにRの小技など、記事書いてますのでこちらもよろしくおねがいします!
データサイエンティストのお仕事
2年ほどデータサイエンティストとして働いたので、思ったことを徒然と。
要点としては下記2点です。
・データサイエンティストの仕事は、まずデータチェックから
・無理じゃないか、という状況から妥当な仮定を重ねて、結果を出す
データサイエンティストは地道な仕事
たまに、「データサイエンティストはセクシーな仕事」そんな言葉が数年前に聞かれ、今でもデータサイエンティストを目指す学生の中には、「知的でスマートにバリューを出す仕事」のようなイメージをお持ちの方もいますが、実態はものすごく地味ですし、根気がいる仕事です。
どんな仕事でもそうですが、特に知的労働なんてものは根性の仕事です。コンサルも、投資銀行も、実態は根性論のような働き方だったりします笑(もちろん根性だけじゃできない仕事ですが、根性がないとできない仕事ということです。)
データサイエンティストの根性とは。。。
データチェック、ここが特に根性がないときついフェーズです。。
実際の仕事では教科書や参考書のようにきれいなデータなんてまずないです。
欠損値があったり、月次のデータと週次のデータが混在していたり、そもそもPDFの表しかなかったり、、挙げればきりがないですが、「顧客がデータを管理できていない」という状況はザラです。まずそれはPythonなりTableauなり、日々使うツールで読み取れる形にする必要があります。
また、データも様々な粒度が混在していたり、同じデータでも期間で定義が違ったり。。(例えば売上データなら、2017年までは月次の都道府県別のデータで、2018年からは週次の市区町村別とか)
こういったデータを受領し、まず「どのようなデータなのかチェックし、顧客に疑問点を問い合わせる」この仕事から始まることがザラです。
分析できなくね・・・
その結果、顧客が求めてる結果を「統計的に確からしく出すのは無理じゃないか?」ということもザラにあります。しかし、そこで「できません」なんて言っていたら仕事はありませんし、仕事である以上競合他社との戦いもある以上、何かしら仮定をおいて分析する必要があります。
「どれだけ顧客を納得させられる仮定を起き、分析条件を整えるか」この力がデータサイエンティストに求められる力の一つだと思います。データサイエンティスト協会で「ビジネス力」「データエンジニア力」「データサイエンス力」をデータサイエンティストに求められるスキルとして定義していますが(
http://www.datascientist.or.jp/files/news/2014-12-10.pdf
)、この妥当な仮定には業務上必要なアウトプットを出すために妥当な仮定をおける「ビジネス力」と、分析上妥当な仮定を置ける「データサイエンス力」が主に必要になってきます。
いざ分析へ
データサイエンティストらしい分析フェーズは業務に占める割合は小さかったりします。上記のような分析条件の整理が終わってしまえば、あとはコードを書いて回すだけだったりしますので。。