妊婦がプログラマーになるまで

プログラミング未経験ワーママが産休からPythonで機械学習を学ぶ記録を記します。

機械学習環境Google Colaboratory(学習メモ)

学んだプログラミング環境についてメモします。
f:id:damion_n:20210905070009p:plain



機械学習を行う場合、変数やデータが多い場合は、PCで実行するのは時間がかかりすぎる。
機械学習ディープラーニングでは、GPU を使うことが前提になるが、個人でGPUをそろえるのは金額面で無理がある。
そんな場合に、Google Colaboratoryはおすすめ。


Google Colaboratory

無料でブラウザからPythonが実行できる環境。GPUが使える。共有が簡単。
colab.research.google.com

f:id:damion_n:20210905070949p:plain


Google Colaboratory は、 Google Drive との連携できるため、解析対象のデータを Google Drive 上においておくと便利。
f:id:damion_n:20210905071027p:plain


具体的にgoogle driveでデータを保存しておく場所。
f:id:damion_n:20210905071158p:plain


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
を選択して、新しいスクリプトを開く。

f:id:damion_n:20210912195244p:plain


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/' # ローカル環境 使用時

Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.read only

Enter your authorization code:
··········
Mounted at /content/gdrive


しばらくすると認証が完了する。
変数 (例えば、「DATA_PATH」) に、データ・ファイルのパスが設定されるので、これに、実際に使うファイル名をつなげればデータをロードできる。






押していただけると励みになります!

にほんブログ村 資格ブログ スキルアップへ
にほんブログ村

Python基本ライブラリ(学習メモ)

学んだ基本ライブラリをメモします。
f:id:damion_n:20210905064518p:plain



ライブラリとは?

よく使うコードがまとめられた場所。ライブラリからコードをコピーすれば楽にプログラミング開発できる。

ライブラリの使い方

「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()

**

機械学習につかう基本的・最小限のライブラリ情報でした。




押していただけると励みになります!

にほんブログ村 資格ブログ スキルアップへ
にほんブログ村

機械学習 基本フロー(学習メモ)

学んだ機械学習で使う基本フローをメモします。
f:id:damion_n:20210905064848p:plain


構築フロー

機械学習モデルは、次の手順にしたがって行う。

1. データを加工
2. データを学習用と検証用に分ける
3. 学習データを使ってモデルを構築(学習)
4. 検証データを使ってモデルの検証

f:id:damion_n:20210905062301p:plain




代表的な機械学習モデル

f:id:damion_n:20210905063902p:plain






例えば、解析をおこなう場合は以下のようなフローとなる。
※NumPy, pandas, Matplotlib, Seaborn については、何も言わなくてもインポートする。


scikit-learnで線形回帰分析を行う場合

線形回帰分析は、sklearn.linear_model を使う。
f:id:damion_n:20210905062850p:plain



scikit-learnでクラス分類を行う場合

※クラス分類:教師あり学習でのクラス分類。
サポートベクターマシンによる分析は、scikit-learn ライブラリでは、sklearn.svm を使う。
f:id:damion_n:20210905063229p:plain



scikit-learnでクラスタリングを行う場合

クラスタリング:教師無し学習でのクラス分類。

scikit-learn ライブラリでは、sklearn.svm を使う。
f:id:damion_n:20210905063940p:plain



**

基本的な機械学習のフローをまとめてみました。



押していただけると励みになります!

にほんブログ村 資格ブログ スキルアップへ
にほんブログ村

妊婦がプログラマーになるまで

妊婦ワーママです。現在妊娠9か月。

 

産休・育休中はPythonの基本と機械学習のスキルを身に着けたいと考えています。

 

その記録として、こちらのブログを更新していけたらと思います。

 

現在会社員をしております。2歳の子供が1人いるワーママです。

 

プログラミングは未経験で、業務上も必要のないスキルですが、プログラミングを習得することで仕事の生産性が上がるし、将来の働き方の選択肢が増えることを期待して、頑張ってみたいと思います。

 

産休・育休という特殊な時間の中で、どれだけ自分の時間を捻出できるかも、工夫してやっていきたいです。

 

お付き合いいただければ幸いです。

 

にほんブログ村 資格ブログ スキルアップへ
にほんブログ村