Python: 機械学習からはじめるPython入門1, google colaborator ver. 3

I.何を学ぶ

 

興味があることは学んでいて楽しいです。AIに関心があるなら、機械学習や深層学習という言葉を聞いたことがあると思います。プログラムを基礎から学ぶと機械学習や深層学習はずっと後になります。

細かいことはいいから、機械学習や深層学習がどういうものかをわかりたい、これらがわかる程度にプログラムを理解したい、、、という方を対象にした、いきなり機械学習からはじめるPython入門です。

機械学習を学びたいが、PythonにするかRにするか迷っているという方もおられるかもしれません。PythonとRの違いについても説明しますので、迷っておられる肩にも参考になると思います。

インストール不要のGoogle Colaboratoryを用いますので、事前に必要となるのは次の2つだけです。

 

  1. インターネットがつながっているコンピュータがある。
  2. GoogleのIDを取得していてGoogle Colaboratoryを使用できる。

 

次の解説に基づいて学びます。初心者向けに大変わかりやすく書かれています。

 

Your First Machine Learning Project in Python Step-By-Step

 

II.人口知能、機械学習、深層学習について

 

機械学習(machine learning)とAI、深層学習(deep learning)の関係をごく簡単に図式化しました、AIが最も広い概念で、機械学習の中に深層学習があるという関係になります。今回学ぶのはシンプルな機械学習です。

 

 

 

ちなみに、上の図は随分前に描いたもので、Wordを使いました。Wordでも結構きれいに描けます、、、なつかしい。

 

III.Google ColaboratoryでJupyter notebookを開く

 

英語版を使っています。ネットで情報を調べるときに調べやすいからです。以前はトップページで言語を選択できましたが、現在はブラウザの言語設定に対応しているようで、英語にするにはブラウザの言語設定を英語にする必要があります。

Google Colaboratoryのオレンジのウィンドウ右下のNEW PYTHON3 NOTEBOOKをクリックすることです。もちろん、FILE > New Python 3 notebookでも開きます。

機械学習の処理をはやくするために、Runtime typeでGPUを選びます。

 

 

作成されたJupyter Notebookのページです。使い方はシンプルです。

 

 

IV.ライブラリは「道具」

 

Pythonで機械学習のプログラムを実行するには、それに対応するライブラリーが必要です。プログラムがはじめてという方はライブラリと言ってもわかりにくかもしれません。ライブラリは道具だと思ってください。例えば、家を建てるのにノコギリやカンナやクギやドリルなどいろいろな道具が必要です。それと同じように、機械学習を実行するために様々な道具、つまり、ライブラリが必要です。

まず、必要なライブラリをインストールします。そして使用するたびにインポートする必要があります。これも、道具を手に入れた(インストール)だけでは使えないので、家を建てる現場で道具箱を開けて(import)から使うようなものです。

ライブラリのインストールはターミナル(コマンドプロンプト)で行います。Pythonのコンソールからターミナルにアクセスするのは、コマンドの前に!を置くだけです。

解説で示されている5つのライブラリは、すでにGoogle Colabにインストールされているように思います?が、参考に、3つのライブラリをインストールするスクリプトを示しました。

3つのうちの1つは参考文書にはないseabornです。seabornにサンプルデータirisが含まれているのでインストールしました。

次に5つのライブラリをインポートします。次の解説と異なっていますので、2行に注意してください。

 

import pandas as pd
import seaborn as sns

 

as以下はなくてもよいですが、Pythonでは、ふつうライブラリの略式名をつけます。例えば、pandasのファンクションを使うスクリプトをpandas.???と書かずにpd.???と簡略化できるということです。何をつけるかも慣例的にきまっているので、そのとおりにしておけば、サンプルデータをそのまま使えるので便利です。

 

 

V.データのインストールと確認

 

seabornはグラフを作成するためのライブラリーですが、サンプルデータを含んでいます。ここで利用するirisも含まれています。呼び出すのは簡単です。

データ名.head()で初めの6行を示します。この式の意味は、datasetという名前のデータのはじめの6行を示すということです。( )の中に任意の数字をいれれば、その数字分の行数の一覧が表示されます。

 

 

VI.PythonとRのお話

 

この解説はPython入門ですが、PythonかRかどちらを学んだらよいか決めかねている方もおられるかもしれません。

一般的に言えば、統計解析ならどちらを学んでもよいと思いますが、ライブラリはRのほうが充実していると思います。しかし、機械学習や深層学習を中心に学ぶなら、Pythonのほうがネット上の情報もライブラリの数も多いです。さらに、Google Colaboratoryなら、GPU、TPUが使えるので、自宅のコンピュータより速く処理できるかもしれません。

私の体験では、両方使えると選択の幅が格段に広がりますので、両方をいっしょに学んで、両方使えるようになるのが一番だと思います。

ところで、上の説明では、seabornをインストールしてそれに含まれるirisを呼び出しましたが、Rはデフォルトでサンプルデータ含まれており、そのなかにirisもあります。

すから、Rを立ち上げてirisと書いて実行するだけで、次のようにデータが表示されます。

 

 

VのPythonのirisと同じデータですが、いくつか違う点があります。まず、Rでは列名の文字の区切りにドットが用いらています。通常ドットは特殊な機能を持っているので、区切り文字としては使わないのですが、Rでは使えます。ただし、ドットに抵抗がある場合は、アンダーバー_を用いることもできます。

次に、左端の行番号を見てください。Rではデータの1行目が1ですが、Pythonの場合は1行目は0です。たいしたことではないですが、行を指定するとき間違えてしまうことがあるので注意が必要です。

irisの基本的な統計量を取得してみましょう。Rではsummary()関数にアーギュメントirisを入れる、というふうに書きます。

ちなみに、最後の列は花の種類です。カテゴリカルなデータであることを自動的に判断して、他の列とは違って、それぞれの名前の出現回数を示しています。

 

 

Pythonでは、dataset.summarise()というように書きます。カテゴリカルな最後の列は欠けていますが、Rとほぼ同様の表を簡単に作成することができます。

 

 

Species列の花の種類ごとの出現回数を算出するの簡単です。

 

 

これらはごく初歩ですが、統計解析、普通のことはどちらでも問題なくできます。あることではRが便利、別のことではPythonが便利という感じです。ただし、特殊なこと、専門的なことをやりたいときは、Rの方が適合するライブラリを見つけやすいように思います。

 

VII.サンプルデータirisについて

 

irisは機械学習だけではなく、単純な集計、相関係数の算出など様々な学習場面で使われますので、同じデータばかりでつまらないという声も聞きます。確かにそのとおりなのですが、特に初心者に限っていうと、何事を習うにしても、新たなデータでの説明より、馴染みのデータでの説明のほうがずっとわかりやすいと思います。

ということで、ここで、irisの内容を確認しておきましょう。

 

 

先に示したPythonのdatasetを再度示します。

 

 

一番左の列が行番号で0−149の150行です。列番号はExcelと同じようにデータに含まれません。

一番右のspeciesの列は花の種類です。第5行までしか表示されていないのでsetosaしか見えませんが、3種類の花がそれぞれ50あります。

 

VIII.グラフの作成

 

スクリプトの勉強のためには、式を一つ一つ書いてグラフを作成するのがよいですが、それは解説にありますので、ここは、pandas-profileingを使って一気にグラフを作成しましょう。

「道具」はまずインストールして、次にインポートする必要がありましたね。importの場合はアンダーバーであることに注意してください。

 

!pip install pandas-profiling

import pandas_profaileing

 

上の1行で次のすべてが作成されます。中間部分は割愛しましたが、それ意義にもリンクのページもあります。

実は、Google Colaboratoryで実行すると、相関関係のヒートマップのうち順位相関を示すKendallのグラフが欠けています。しかし、Google Colaboratoryと同じくクラウドのMicrosoft Azure Notebooksならすべて表示されることを確認しています。

でも、まあ、一部かけても十分すぎる内容です。

 

 

 

中略

 

 

 

IV.機械学習

not complete

About shibatau

I was born and grown up in Kyoto. I studied western philosophy at the University and specialized in analytic philosophy, especially Ludwig Wittgenstein at the postgraduate school. I'm interested in new technology, especially machine learning and have been learning R language for two years and began to learn Python last summer. Listening toParamore, Sia, Amazarashi and MIyuki Nakajima. Favorite movies I've recently seen: "FREEHELD". Favorite actors and actresses: Anthony Hopkins, Denzel Washington, Ellen Page, Meryl Streep, Mia Wasikowska and Robert DeNiro. Favorite books: Fyodor Mikhailovich Dostoyevsky, "The Karamazov Brothers", Shinran, "Lamentations of Divergences". Favorite phrase: Salvation by Faith. Twitter: @shibatau

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.