こんにちは!競馬分析塾管理人のモンブランです
この記事では
- データ分析始めたいけど何から始めればよいの?
- PYTHONって聞いたことあるけど、どんなことが出来るの?
という人のために、PYTHON の魅力含めて解説します
私も最初1人で何をどう学習していけばよいのか?
モチベーション続けて学習継続できるのか? 少し不安で心がフワフワした状態でした
そんなプログラミング経験ゼロだった私でも今もPYTHONの勉強を続けられているので
この記事を読んで PYTHON を勉強してみようと思って頂ければ幸いです
☑データ分析における PYTHON の必要性がわかる
☑PYTHON でどんなことができるのかがわかる
PYTHON の勉強法(独学)について知りたい方はこちらをどうぞ!
PYTHON(パイソン)とは?
PYTHONって、そもそも何なの?
PYTHONはプログラミング言語の中の1つの言語です
プログラミング言語というのもピンとこないなぁ
プログラミング言語についても解説しましょう!
プログラミング言語とは
プログラミング言語とは、主に人間がコンピューターに処理して欲しい内容を指示するための人工言語です
たとえば、「1+1」を計算処理させたい時に
- その計算を行う指示
- 計算結果を画面表示させる指示
をプログラミング言語を使って記述します
またプログラミング言語は基本英語で表記します。とはいえ、中学生レベルの英単語を知っておけば
何となくでも理解できるので英語苦手な方でも始めは気にしなくても大丈夫です
人間の話す言語も国によって異なるように、プログラミング言語もコンピューターに処理して欲しい内容に応じて様々な種類の言語が存在します
今回はその中でもデータ分析の用途に強いPYTHONについて解説します
PYTHONとは?
プログラミング言語は人工言語であると述べたように PYTHONは1991年にオランダ人のグイド・ヴァンロッサムによって開発されたプログラミング言語です
英語で「ニシキヘビ」という意味で、上のPYTHONのロゴはヘビをイメージした形になっています
データ分析ならPYTHON 1択!
先に伝えておきます
競馬のデータ分析を行う上で使用するプログラミング言語は
PYTHON 1択 です!
ここでは PYTHON 1択だと思う理由を説明します
競馬データ分析ではザックリ下記のようなプロセスで分析をします
- 競馬データ情報の取得
- 取得した情報を分析しやすいようにデータの整理をおこなう
- データを分析する
- 分析結果を表示させる
- 1~4の一連の流れをアプリ等のGUI(グラフィカルユーザーインターフェイス)で操作を行う
PYTHONを使用すると、この5つのプロセス全て自動化することが可能となります
■各分析プロセスに対するデータ処理手法
- 競馬データ情報の取得 ➡ スクレイピング
- 取得した情報を分析しやすいようにデータの整理をおこなう ➡ データの前処理
- データを分析する ➡ データマイニング、機械学習など
- 分析結果を表示させる ➡ グラフ化
- アプリ等のGUIで操作 ➡ Webアプリ、デスクトップアプリなどの作成
実は、どのプログラミング言語でもある程度のデータ処理は出来るのですが、ここでは一般的に使用するプログラミング言語と上記データ処理手法の関係を定量的に比較するために、楽天ブックスの検索欄に「上記データ処理手法」を入力して、上位30件の本のタイトルに含まれる各プログラミング言語の頻度を調査しました
各データ処理手法の上位30件の本のタイトルに含まれるプログラミング言語頻度の比較表
プログラミング言語 | スクレイピング | データの前処理 | 機械学習 | Webアプリ | デスクトップアプリ |
---|---|---|---|---|---|
PYTHON | 19件 | 7件 | 10件 | 7件 | 1件 |
C# | 0件 | 1件 | 0件 | 0件 | 9件 |
PHP | 1件 | 0件 | 0件 | 4件 | 0件 |
R | 2件 | 3件 | 0件 | 1件 | 0件 |
Ruby | 0件 | 0件 | 0件 | 3件 | 0件 |
表を見ても明らかなようにデスクトップアプリ以外では、全て PYTHON の頻度が最も多く、データ分析における分野では PYTHON が一般的に使用されている言語であることが分かります
PYTHONのメリット・デメリット
そんなPYTHONについて、メリット・デメリットを纏めてみました
- 汎用性が高い
- 書籍・ネット上の情報が豊富
- ライブラリが豊富
- AI開発の実績をもっている
- 実行速度が遅い
- インデントが必要
メリット1:汎用性が高い
上述した通り、PYTHON は
機械学習、スクレイピング、Webアプリなど様々なものが開発できる汎用性の高い 言語です
PYTHON を習得する事でこれら全てを開発することが出来るメリットはとても大きいと思います
メリット2:書籍・ネット上の情報が豊富
こちらも上述の通り、PYTHON は書籍やネット上での情報が豊富です
本屋に行くとどれを選んでよいか分からないくらい PYTHON の書籍がズラッとならんでいます
特に独学で学ぶ方にとっては、色々な書籍の中から自分の知識レベルや興味ある内容に合ったものを選択できること、また独学でエラー等が発生してつまづいてしまった時でもネット上でその解決方法を簡単に検索する事ができるので比較的挫折するリスクが少ないメリットがあります
メリット3:ライブラリが豊富
PYTHON は実用的で機能的なライブラリが豊富に揃っているというメリットがあります
ライブラリとは、特殊な関数やモデルを構築するためのプログラムをまとめたものでライブラリを活用することで実際に記述するコードは少なくシンプルにすることができます
例えば、matplotlib というライブラリを使用することでプログラミングのコードをゼロから記述しなくても非常に簡単なコードでグラフの作成・表示をすることができます
上述した各データ処理手法においても、スクレイピングでは BeautifulSoup, Selenium 、機会学習ではscikit-learn、Webアプリ開発では Django, Flask といったライブラリがあり、非常にスムーズな開発が可能となります
メリット4:AI開発の実績をもっている
PYTHON はAI開発で豊富な実績を持っている言語です
ライブラリもAI開発に活用できるものが用意されており、AI開発が行いやすく、YouTubeなどの有名なWebサービスが PYTHONで構築されているといった実績もあります
デメリット1:実行速度が遅い
プログラミングの実行形式は主にインタプリタ言語とコンパイラ言語があります
インタプリタ言語は、プログラムのコードを1行ずつ機械語に変換して処理をしていくのに対しコンパイラ言語は、全てのコードを纏めて機械語に変換して処理を行います
そのため、インタプリタ言語はコンパイラ言語に対し実行速度が遅くなってしまいます
PYTHON はそのインタプリタ言語なので、コンパイラ言語に比べて実行速度が遅いです
但し、個人でデータ分析する範囲においてはよほど膨大なデータ量や複雑なアルゴリズムを扱うことが無ければ実際にそこまでデメリットを感じる機会は少ないと思います
デメリット2:インデントが必要
以下のコードの行頭に空白を入れている部分が インデント となります
PYTHON ではインデントを揃っているコードを1つのブロックとして認識しているため、インデントなしで記述したり、インデントの空白分がずれたりするとエラーが発生してしまいます
PYTHON におけるインデントは非常に重要なので注意しましょう
個人的にはインデントがあることで、ブロックの階層が見やすく可読性の高いコードになるので最初にルールを覚えさえすればその後はデメリットを感じることは少ないと思います
まとめ
今回はデータ分析に使うプログラミング言語:PYTHONについて解説しました
PYTHON の概要について理解することはできましたか?
何となくは理解できたけど…
今回は大枠を説明しただけなので
データ分析では PYTHON を使えば大丈夫ということが分かれば大丈夫です
分かりました
PYTHONは、競馬以外の分析、また分析以外の幅広い用途で使用することができます
熱中できる趣味、また人材価値を高める意味でも勉強して損はないと思います
当記事をきっかけに1人でもPYTHON、データ分析を始める方がいれば嬉しいです!
これからなるべく分かりやすく競馬データ分析の記事も追加していくので一緒に独学を楽しみましょう!
コメント