機械学習環境Google Colaboratory(学習メモ)
学んだプログラミング環境についてメモします。
機械学習を行う場合、変数やデータが多い場合は、PCで実行するのは時間がかかりすぎる。
機械学習やディープラーニングでは、GPU を使うことが前提になるが、個人でGPUをそろえるのは金額面で無理がある。
そんな場合に、Google Colaboratoryはおすすめ。
Google Colaboratory
無料でブラウザからPythonが実行できる環境。GPUが使える。共有が簡単。
colab.research.google.com
Google Colaboratory は、 Google Drive との連携できるため、解析対象のデータを Google Drive 上においておくと便利。
具体的にgoogle driveでデータを保存しておく場所。
Google Colaboratoryには、機械学習やディープラーニングを行うために必要なパッケージがそろっている。
例:NumPy、pandas、Matplotlib、TensorFlow、Keras...
使用上の制約が2つある。
・90分ルール
ブラウザと Google Colaboratory とのセッションが切れて90分後、ランタイムがシャットダウンする。
・12時間ルール
インスタンス起動後、12時間経過すると、ランタイムはシャットダウンする。
ランタイムがシャットダウンすると、実行中であったとしても、すべてリセットされる。
したがって、途中結果などについては、Google Drive などに保存する必要がある。
また、コマンドをつかってランタイムの確認ができる。
!cat /proc/uptime | awk '{print $1 / 60 " m, " $1 / 60 / 60 " h "}'
リソースの制約は、以下のとおり。
・ストレージ
・GPU利用 360GB
・GPUなし 40GB
・TPU利用 40GB
・メモリ 13GB
・GPUメモリ 12GB
リソースの使用状況は、画面の右上に表示される。
Google Colaboratory の使い方
Jupyter Notebook と基本的には同じ。コードを入力して、Shift+Enter で実行。
新規スクリプトファイルの作成
左上の「+ 新規」ツールアイコンをクリックして、
その他 > Google Colaboratory
を選択して、新しいスクリプトを開く。
Google DriveデータをColaboratoryで使う場合
Google Driveにあらかじめ解析したいデータを入れておくことで、Google Coraboratoryからデータにアクセスできる仕組みがある。その場合、事前に認証手続きをおこなう必要がある。
認証の手続きは次のとおり。
認証手続き用のリンクと、認証コード入力用のテキストフィールドのフォームが表示されたら、認証手続きにしたがって、認証コードを入手、フォームに入力してエンターキーを押す。
In[0]:
DATA_PATH = '/content/gdrive/My Drive/Colab Notebooks/data/' # Google Colabratory 使用時 try: from google.colab import drive drive.mount('/content/gdrive') except ModuleNotFoundError as e: DATA_PATH = './data/' # ローカル環境 使用時
Enter your authorization code:
··········
Mounted at /content/gdrive
しばらくすると認証が完了する。
変数 (例えば、「DATA_PATH」) に、データ・ファイルのパスが設定されるので、これに、実際に使うファイル名をつなげればデータをロードできる。
押していただけると励みになります!
Python基本ライブラリ(学習メモ)
学んだ基本ライブラリをメモします。
ライブラリとは?
よく使うコードがまとめられた場所。ライブラリからコードをコピーすれば楽にプログラミング開発できる。
ライブラリの使い方
「import ライブラリ名」:ライブラリを使えるようになるコード
「from モジュール名 import オブジェクト名」:ライブラリ内の特定のオブジェクトのみを使えるコード
※モジュール:便利な関数の塊を複数のプログラムから利用できるようにまとめたファイル
※オブジェクト:データと、データを扱う関数の塊
※ライブラリ、モジュール、オブジェクトのイメージ図
よくつかうライブラリ(機械学習編)
・NumPy : 数値計算や多次元配列などを効率的に処理するライブラリ
・pandas : 表計算のワークシートのイメージでデータを取り扱うライブラリ
・Matplotlib : データの可視化ができるライブラリ
・scikit-learn : 機械学習をする際によく使われるライブラリ
以下、それぞれのライブラリの詳細。
NumPy「ナムパイ」
数値計算や多次元配列などを効率的に処理するライブラリ。
NumPyを使うことで、配列の処理効率はPython本体に比べて飛躍的に向上する。
NumPyは、BSDライセンス。
※BSDライセンス:
ソフトウェアのライセンスの種類。著作権の表示と免責条項さえ書いておけばフリーで使える、ただし何かあっても補償はしない、というライセンス。
インポート方法は以下のとおり。
import numpy as np
pandas「パンダス」
表計算のワークシートのイメージでデータを取り扱うことができる。
ワークシートのイメージに対し、SQL に似た条件式の指定をして、データ選択もできる。
1次元配列のデータ構造を Series、 2次元配列(構造体配列)のデータ構造を DataFrame という。
BSDライセンス。
※SQL(シーケル):データやデータベースを制御するための言語
インポート方法は以下のとおり。
import pandas as pd
Matplotlib「マットプロットリブ」
データの可視化で使う。
データ分析を行う前に、データの代表値を確認したり、
ビジュアルにデータの状態も確認することで、解析の方向性を決める時に役立つ。
Matplotlibは、PSFライセンス
※PSF
ソフトウェアのライセンスの種類。BSDライセンスと同様に、 著作権の表示と免責条項さえ書いておけば、再利用も再配布も自由になるライセンス
以下、Matplotlibで描けるグラフ。
・折れ線グラフ
・棒グラフ
・ヒストグラム
・散布図
・散布図行列
・ヒートマップ
・クラスターマップ
・箱ひげ図
インポート方法は以下のとおり。
# ビジュアル化関係のパッケージ import matplotlib.pyplot as plt import seaborn as sns sns.set() # seaborn使用の設定
scikit-learn「サイキットラーン」
Pythonで機械学習をする際によく使われるライブラリ。
回帰分析、クラス分類、クラスタリングなどの機械学習ができる。
scikit-learn には、機械学習を試してみるためのデータセットがあらかじめ用意されている。
以下、scikit-learnで用意されているデータセット(これで練習できる)。
・ボストン市の住宅価格データ(Boston house prices dataset)
→ 回帰向き
・アヤメの品種データ(Iris plants dataset)
→ 分類向き
・糖尿病患者の診療データ(Diabetes dataset)
→ 回帰向き
・数字の手書き文字データ (Optical recognition of handwritten digits dataset)
→ 分類向き
・生理学的特徴と運動能力の関係についてのデータ(Linnerrud dataset)
→ 回帰向き
→ 目的変数が3つある
・ワインの品質データ(Wine recognition dataset)
→ 分類向き
・乳がんデータ(Breast cancer wisconsin (diagnostic) dataset)
→ 分類向き
一般的に、機械学習を行う際は、一番はじめに上記のライブラリをインポートする。
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns sns.set()
機械学習 基本フロー(学習メモ)
学んだ機械学習で使う基本フローをメモします。
scikit-learnで線形回帰分析を行う場合
線形回帰分析は、sklearn.linear_model を使う。
scikit-learnでクラス分類を行う場合
※クラス分類:教師あり学習でのクラス分類。
サポートベクターマシンによる分析は、scikit-learn ライブラリでは、sklearn.svm を使う。