仕事で使うデータ分析を勉強するには適任の本
以前の記事で日立製作所のLumada データサイエンスチームが書いたデータサイエンスの本「実践 データ分析の教科書」(リックテレコム社)を紹介しました。
データサイエンスをどのように業務に活用するかが分かりやすく書かれていて、しかも第4章ではPython を使ったサンプルコード、第5章ではシステム化のコツもあって良い本だと思いました。

画像処理のサンプルコードはエラーが出るので注意
サンプルコードはリックテレコムの公式サイトから「データダウンロード」→「コンピュータ、通信」をクリックして、「実践 データ分析の教科書」の「ソースコード」のハイパーリンクをクリックします。

直リンクはこちらです。ダウンロード時には、書籍に書いてあるユーザー名とパスワードが必要になるので注意してください。
ただ、画像処理(4.5節)のサンプルコードを試したところ、そのまま実行するとエラーで動かなかったので要注意です。
不要ファイルは削除する
私の環境はWindows だったのですが、このサンプルコードをダウンロードしてZip ファイルを解凍すると、中には中間ファイルと思われるファイルが含まれていました。「._」で始まるファイルが含まれているとコード実行時にエラーが出るので削除します。


test フォルダにはOK とNG のサブフォルダを作る
続いてtest フォルダにサブフォルダを作ります。Zip ファイルをダウンロードして解凍すると、test フォルダにはフラットにJPG 画像が置かれていますが、この状態だとサンプルコードを実行したときにload_images を実行する際にディレクトリ名が無効というエラーが出てしまいました。
NotADirectoryError: [WinError 267] ディレクトリ名が無効です。: ‘test\\001_OK.jpg’
これはカスタム関数で定義されているload_images でサブフォルダを想定した書き方になっているためです。train フォルダと同じように、test フォルダに「NG」と「OK」のサブフォルダを作り、それぞれJPG ファイルのファイル名を見て「OK」が付いていれば「OK」フォルダに、「NG」が付いているファイル名なら「NG」フォルダに移動させます。

SciPy のインストールが必要
この4.5 の画像処理のサンプルでは、依存関係としてはTensorflow、numPy、matplotlib が書いてあったので
pip install tensorflow numpy matplotlib
でパッケージを事前にインストールしておきましたが、それでも実行時に内部処理のアフィン変換 (affine_transformations.py:281)のところで
ImportError: Image transformations require SciPy. Install SciPy.
Code language: Python (python)
のエラーが出てしまいます。
pip install scipy
を実行してSciPy もインストールしておく必要があります。Python コードでの「import scipy」は不要です。
以上で問題なく4.5 のサンプルのJupyter Notebook (ipynb ファイル)が実行できました。

ちなみに書籍で指定のあったライブラリのバージョンは守らず、Python 3.9 で実行して、tensorflow、matplotlib、scipy、もバージョン指定せずに最新のバージョンをPIPでインストールして実行できました。Visual Studio Code でJupyter Notebook の拡張機能も入れて、ローカルのJupyter Notebook サーバーで試しました。
2 Responses
電機メーカのエンジニアです。
仕事に使えそうな内容がいろいろ入っており
データ分析の教科書を気に入っています。
ただ、初心者なので些細なところで躓くのですが
おかげさまで4.5節をクリアできました!
ありがとうございました。
コメントありがとうございます。
この本は業務で使えそうな内容に絞って様々なデータサイエンスの実践例が書いてあるので、素晴らしいと思います。
他のデータサイエンス本にもあるのですが、サンプルを動かすのにデータが無かったり、不要なファイルがあったり、環境構築の前提が書かれていなかったりするので、そういうところは気付き次第記事にまとめていこうと思います。