2.ブログについて

2_2 ブログの原則(2018/12/17)

1)目的

本ブログは、データ分析をどの様に手順化して分析していけばよいのかを学ぶことを目的としています。
本ブログでは、システム開発に関する説明はしません。オブジェクト指向のシステム開発という視点もありません。システム開発とデータ分析は、目的が全く違います。システム開発を学ぼうと考えている方は、本ブログの対象ではありません。
また、Python自体の文法等を詳しく説明することはしません。Pythonの文法を知りたい方は、Pythonに関する書籍等を参照してください。しかし、データ分析に関係するPythonの記述については、実例を示しながら説明しますので、Pythonの文法を知らなくても本ブログで困ることはありません。
本ブログでは、Pythonの文法を知らなくても、データ分析ができるようになれば良いと考えています。例えば、外国語の修得をする時、文法を理解し、単語や熟語を理解してから、会話を学習するという方法もありますが、よく使う文例を覚えた後、その文例の応用方法を学習するという方法があります。本ブログでは、後者の方法に近いスタイルで説明を進めていきます。
本ブログでは、Pythonを理解するのが目的ではなく、Pythonはあくまで手段です。データ分析は、どんなもので、どの様にすべきか、どんなところに注意しなければならないかを説明していきます。また、統計手法等の数学に関する説明もなるべくしないで進めていきます。データをどの様に見るべきかを説明するのが本ブログの目的だと考えています。

2)使用環境

Pythonは、複数のディストリビュータによって様々な組合せで配布され、複数の環境で動作し、多くの使い方が可能ですが、本ブログでは、Anacondaから配布されたPythonパッケージ(バージョン3)をWindows10に導入し、IPython上でデータ分析することを中心にして説明します。また、名前の由来となっているPandasを活用して分析データを管理します。Pandasが扱えない処理の場合だけ、Pythonの拡張モジュールであるNumpyによる多次元配列でデータ管理します。
データ分析は、Cディスク上にPythonというフォルダを作成し、当該フォルダの下にプロジェクト毎のフォルダを作成するものとして説明します。
Pythonのプログラムは、予めテキストエディタで作成し、IPython上にコピペ(コピー&ペースト)することにより実行します。テキストエディタには、沢山の種類がありますが、本ブログでは、Sublime Text3を使用するものとして説明します。但し、テキストエディタは、プログラムやデータを編集するのに使用するだけで、テキストエディタの使用方法を説明する訳ではありません。
実際は、Windows10以外のOSでも良いですし、Sublime Text3以外のエディタを使用してPythonを実行しても何ら問題はありません。複数の環境による違いを説明するのは、説明が冗長になるだけで、本ブログの本質ではないと考えているということです。
但し、Anacondaから配布されたPython(バージョン3)を活用するということを前提としています。他の環境の場合は、操作が大きく変わってくることがあります。本ブログで、Pythonと記載されているものは、Anacondaから配布されたPython(バージョン3)を意味するものとします。

3)見える化、分かる化、できる化

データの活用を考える際には、「見える化」、「分かる化」、「できる化」の3段階で考えることが重要です。情報を多くの人に見えるようにすることは重要ですが、見える化した人が内容を分かっていても、見せる対象の人に分かってもらわなければ意味がありません。また、相手が分かったとしても、それから何も手を打たないのであれば、分からなかったのと同じです。つまり、データから何かしらの方針が導き出されて、それに対する行動を起こすことが狙いでなければなりません。
これは、データ分析を考えていく上で重要です。つまり、データ分析は、何のために行っているのかを理解していなければならないということです。また、データ分析結果が社会で活用されることを考えていなければなりません。
ノーベル賞を狙っている研究者であれば、データ分析の手段そのものが重要であるかもしれません。しかし、データ分析者にとっては、手段は問題ではなく、データ分析結果を望んでいる人が容易に状況を理解することができ、より良い戦略を導き出せるようになることが重要なのだということです。
例えば、一般の人がデータ分析結果を求めているのであれば、一般の人が理解できそうもない統計手法を用いても意味が無いかもしれません。逆に、深層学習によって、どうしてそういう結果が導き出されたのかが分からなくとも、確からしい結果が一般の人にも理解できる様になるのであれば、意味があることかもしれません。
使える結果であるということが重要だということです。但し、実際の社会では、100%という結果はほとんどありません。その確からしさを理解し、リスクを理解して結果を活用するということも大切です。

4)「できる」から始める

本ブログでは、見える化、分かる化、できる化を逆に進みます。「できる化」が最初のステップです。できるという体験を通して、できた内容を説明することで「分かる化」が実現し、分かる部分と分からない部分を「見える化」していくという手順で進めていきたいと考えています。
個人毎に分かる部分を増やしていくことが重要だと考えています。個人毎に理解しやすい部分が異なりますが、分からないことを理解していくためには、最初は分からないところは無視し、先ずは分かる部分を増やすことが重要です。分かる部分が増えれば、分からなかったところが分かるようになってくるものです。
「分からないところが分からない」と主張する人がいますが、そのままでは分かるようにはなりません。先ずは、自分の得意なところからわかるところを1つ作ってください。そして、分かる部分と分からない部分を明確にしてください。ここまでくれば、「分からないところが分からない」ということになりません。理解不能な理論等でなければ、分かる部分を増やしていくことで、分かるようになります。
情報システムを作成しようとしていると不具合が何度も発生します。システム開発でなくとも、データ分析でPython等のシステムを活用している場合も同様です。最初から一度の失敗もなく完成できるという様なことは奇跡としか言えません。
不具合が発生したら、その原因を突き止めようとしますが、多分これが問題であろうという推測ができない場合、どうしてできないのかを試行錯誤していても時間ばかりが過ぎていきます。
分からないことを分かろうとする手順は、不具合の解決でも同じです。先ずは、正しく動作する手順を確認し、1つずつ、不具合が発生する手順に近づけているという方法を採ります。これにより、何処で不具合が発生するのかを理解することができます。つまり、「できる」ということが、「分かる」ということにつながるということです。

5)できればよい

本ブログでは、統計学や数学というものをなるべく気にしないで進めます。学問といったものを取り入れて説明しようとするととっつき難いというのが最大の理由ですが、本ブログの原則「できる化」中心の考え方からすると、理論より分かるという結果を優先するということだからです。
データから知りたいことが掴めたのであれば、どうして掴めたのかという理論は重要ではないということです。もちろん、理論が分かった方が良いことに間違いはないですが、先ずは分かることを優先します。
例えば、自転車を理解するのであれば、自転車の理論から入るのではなく、先ず、自転車に乗ってみる。自転車に普通に乗れる様になったら、他の可能性も試してみれば良いと思います。もし理論の理解まで必要だったとしても、自転車に乗れるようになってから自転車の理論に入った方が理解が容易ではないかということです。
通常は、自転車の理論より、自転車に乗れる方が有効です。データ分析も同様で、データ分析の理論が分かるより、少しでも多くの人がデータ分析をできるようになることを目指したいと思います。Pythonが分からなくても、統計手法が分からなくても、深層学習が分からなくても、結果を理解し、その妥当性を理解した上で活用できるのであれば問題は無いということです。