投稿

ラベル(データ分析)が付いた投稿を表示しています

Pythonで遊ぼう!英字新聞の難解度検証

僕がMBA受験をしていた当時から、英字新聞は英文読解力向上によい、という言説があった。当時、自分も仕事の関係でかなりの英文を読んでいたので、大量に英文を読むというのが英語力向上に寄与する感覚は確かにあったのだが、英字新聞に関しては難しいものも多く、教材として考えるのに適切なのかは多少疑問があった。 疑問ならば分析すればいいじゃない、という声が聞こえてきたので、Pythonで遊びがてら、分析してみることにする。尚、統計的に全く有意でない、所謂Spot Check的な分析なので、参考程度にお考え願いたい。また、Codeも書き散らし気味なので、有識者の皆様におかれては是非コメント欄でご指摘願いたい。 さて、まずは準備である。大きくくくって、必要なFunctionalityは二つ。一つはニュース記事をデータとして一括して収集できること、そして、もう一つはそのニュース記事の難易度を言語学的に判断することである。前者について、僕はスクレイピングは余り経験がないのでどうしようか少し調べたところ、newspaper、というドンピシャなパッケージがPythonであることを発見した(詳細のリンクは こちら )。詳細についての検証はしていないが、いくつかためしに動かしてみて、手作業との違いを確認したところ、かなりいい感じに動いているので、こちらを使うことにする。後者については、textstatというProjectがあり、これまたこういう分析をしようとした場合に定番のようであるので、これを採用する(詳細へのリンクは こちら )。Pythonが素晴らしい点の一つは、言語の使用者が多いため、こういったパッケージが大量に用意されていることにある。 さて、用意ができたらとりあえずCodeを書き始める。パッケージのおかげで特にデザインをする必要すらないので、パッケージのインポート -> ニュース記事の分析 -> アウトプットをCSVで作成、という手順だけざくっと決めて書き始める。尚、実装はJupyter Notebookでやった。 まずパッケージのインストールが必要だ。newspaperとtextstatはないようだったので、pipを使ってインストールした。 pip install newspaper pip install textstat では早速使うものについてインポートしていこう...

実際にどうやってSQLとPythonを勉強するかという話

(本稿はMBAに来ていてかつプログラミングの経験がない方を想定している。SQL黒魔術やベイジアンモデリングなどを日々使っている方は生暖かく見守って頂きたい) 何かを学ぶにあたっては、大きく分けて二つの作業が要求される。インプットとアウトプットである。インプットとは知識を学ぶことであり、アウトプットとは知識を使うことだ。インプットした知識をアウトプットし、自分がきちんと理解しているか、また、次に学習すべき課題を見つける、というサイクルを回していくのが、究極的には勉強する、ということだと僕は思っている(GMATやTOEFLでも同じで、延々とインプットばかりしてはだめで、定期的に自分の現在地や、弱み・強みを把握できるような模試やPrepを受ける必要がある)。SQLやPythonに限らず、コンピュータ言語を学ぶ際も、このインプットとアウトプットのバランスが極めて重要になる。コンピュータ言語の勉強においてやっかいなのは、インプット -> アウトプットという学習のループを回す際に、環境依存、というとても大きな変数があることだ。 コンピュータ言語、というのは、日々日々アップデートされ、移り変わっていくものだ。その動機は、コードを走らせた際の効率性であったり、セキュリティに関する脆弱性であったりするが、鴨長明が現代にいたら、世の中にある"人"と"住処"に、間違いなくコンピュータ言語を加えていたであろうくらい、久しくとどまりたるためしがない。従って、自分が書籍などをベースに学んだものが、実際の実務で使えるか、という点には極めて大きな注意を払う必要がある。実際、Pythonが出しているリリースのスケジュールを見ると、とてもアクティブに開発がなされていることがわかる。 https://www.python.org/doc/versions/ といっても、初めてコンピュータ言語を学ぶ諸子にとって、Python 3 対 Python 2 (これはもう決着がついているとは思うが)やOracle SQL 対 PostgreSQLといった論争に入ることにあまり意味はない。結局のところ、これらの環境変数は入社した先の会社のPolicyに大きく依存することになるし、会社毎に極めてローカルなルールを設定しているところだってたくさんある。気にかけておくべきなの...

データ分析とは何かという話

前回の記事では、データ分析をする際にSQLとPythonが如何に扱いやすくかつ有効なスキルか、ということを書いた。より具体的にSQLとPythonの要求水準や学び方に移る前に、私見ではあるが、データ分析とは、という点について述べてみたい。今回はとても短い投稿になるが、少しでもイメージがわけば幸いである。 僕の個人的な経験上、データを分析する、というのはだいたい三つくらいのパターンに分けられる。(1) 仮説検証、(2) 将来予測、そして(3) KPI管理(予実管理)、である。(3)については、(1)の仮説を元に求められた(2)に対して、実際の業績をトラックする、という形になることが多い(というよりそうでないとまずい)。また、今までは(2)の将来予想についてもそれこそエクセルに手入力でドライバーを設定していくことが多かったと思うのだが、これはMachine Learning / Deep LearningなどのよりObjectiveなものに置き換わっていくだろう。人類のトップ1~5%の人が手入力で作った将来予想モデルは、ML/DLで作ったものより優れたパフォーマンスを示すかもしれないが、多くの場合においてML/DLは手作業を凌駕するはずである(僕はML/DL関係の仕事が多いため、多少Biasがかかっているかもしれないが、僕は最早自分の知識をベースにした将来予測の係数は信用できない)。データ分析の肝は(1)の仮説検証、というところに尽きる、というのが私の意見である。 では、仮説検証とは何か。読んで字のごとく、仮説を検証することである。賢明な諸子はお気づきとは思われるが、先ずは仮説を立てる必要がある(個人的に、MBAなどで学ぶフレームワークは、カオスのようなデータを筋道をたてて整理し、仮説を立案するためのものだと思う)。仮説の立案・フレームワークについては、諸先輩方が有難い本を出してくださっているので、そちらに譲るとし、データ分析というとても実務的な観点から、どのような点に注目して仮説立案をするべきか、という点について考えてみたい。 僕が注目することをお勧めするのは、データの外れ値である。外れ値というのは、例えば正規分布を前提にした時に、裾野にあるようなデータポイントだ。そういったセグメントの行動をインタビューなどと組み合わせて分析することで、ビジネスアイデアが生まれてきた...

アメリカ就職で大事なデータ分析スキルの話(その1)

データ分析力、というのは帰国子女などでなく、英語が厳しい日本人留学生にとって、アメリカでの就職戦線で戦うための大きな武器になる(注: 2020年現在)。実際に自分が採用を担当するときも、ポジションがジュニアであればあるほど、こういったデータ分析のためのスキルセットを持っているか、というのが重要になってくる。ネイティブスピーカーのよう会議を上手にしきったり、格式の高い文章を書いたり、ということが難しい日本人留学生にとって、データが扱える、というのは大きな武器になるはずだ。 どの程度のスキルがあればよいのか、という質問をたまに受けるのだが、答えは、"凄ければ凄いに越したことはない"、という当たり前のものになってしまう。航空会社から、同じ値段でどこにでも座ってよい、と言われて、エコノミーを選ぶ人はいないだろう(中にはそういった奇特な諸子もいるかもしれないが、私は大手を振ってファーストクラスにどかっと座るタイプである)。従って、正しい問いは、"書類選考を突破するにあたってレジュメに書いておくべきスキルは何か"、"インタビューを突破するにあたって、最低どれくらいのスキル・実務経験が必要か"、という極めて具体的なものである必要がある。これからこのトピックについて数回に分けて掘り下げたい(気合が続けば)と思うのだが、本稿では一回目として、僕の独断と偏見に拠る、そもそもこのデータ分析スキルとは何ぞや、というところからスタートしたい。以下、少し長くなるので結論からのべると、今からスタートする人はとりあえずSQLとPythonをやるべきだ。 まずデータを分析するにはデータを引っ張ってこなければならない。コンサルや投資銀行出身の諸子におかれては、Due Diligenceの時に出てくるビジネスプランにくっついてくる、整理されていない元データを思いだしてみよう(トラウマがよみがえらないことを祈る)。僕も昔、データルームに上がっていた解読不能なデータ(おそらくPOSデータ)をみてため息をもらし、ストレスのあまりファミチキを爆食いした記憶がある。データの出し直しをお願いしたことがある人も多いはずだ。ここでのよいニュースは、自分でデータをデータベースから引っ張ってくることにより、(1) 何度も他の人にお願いしてデータを出...