Web Application: 第5回 npyデータからCNN

こんにちは Keita_Nakamori(´・ω・`)です。

前回はTensor Flowにインプットするnpyデータを作成しました。

今回はTensorflowとKerasで畳み込みニューラルネットワークを構築して、訓練・評価してみます。

keras公式ページのSequential-model-guideを参考にします。

スクリプト:cnn_test.py

VGG-likeなconvnet を参考に動作を確認していきます。

実行

では Anacondaプロンプトから $ conda info -e で仮想環境リストを確認して

djangoaiが存在することを確認したら、$ conda activate djangoai して仮想環境に入ります。

カレントディレクトリをcnn_test.pyがある場所まで移動して、実行します。

結果

エポック数30回やった結果、精度はacc: 0.99まで向上しましたが、検証データではTest accuracy:0.81までしか出ていません。おそらく過学習になっていると思われます。まだまだ改善の余地ありです。

オプティマイザーを変更

SGDからAdamに切り替えてみました。大きく悪化しました。(笑)

可視化にチャレンジ

djangoai仮想環境内で$pip install matplotlib します。

matplotlib-3.1.1 が入りました。

下記コードを最後に追加しました。オプティマイザーはSGDに戻しました。
横軸にエポック数 縦軸に損失です。 きれいな右肩下がりです。

次回

Web Application: 第6回 はじめてのwebアプリ

Web Application: 第4回 画像データをnpyデータに変換

こんにちはKeita_Nakamori(´・ω・`)です。

前回flickrから取得した画像データをTensor Flowが読めるように数値データに変換していきます。

必要なモジュールをインストール

  • pip install Pillow :
  • pip install scikit-learn :

Pillow-6.1.0とscikit-learn-0.21.3が入りました

スクリプト:generate_inputdata.py

実行しましょう

(djangoai) C:\Users\keita\anaconda_projects\djangoai>python generate_inputdata.py

フォルダを見ると新しく「image_files.npy」  609,516,317 (609MB?)のデータが生成されました。

次回

Web Application: 第5回 はじめてのwebアプリ

 

 

Web Application: 第3回 flickr(フリッカー)で画像収集

こんにちはKeita_Nakamori(´・ω・`)。

flickrのサイトから画像を引っ張ってきてTensorFlowに流すサンプルデータにしようと思います。

登録とAPIキーの取得

トップページの一番下のDeveloperをおしてAPIキーのリスエストを行います。まずはメルアドの登録などをやってサインアップします。

そうすると APIキーのリスエストができるようになりますので、APIキーを取得します。

flickrapiのインストール

flickrのapiにアクセスするためのモジュールflickrapiをインストールします。

VSコードのコマンドプロンプト内で、

PS C:\Users\keita\anaconda_projects\djangoai> pip install flickrapi

とすると、flickrapi-2.4.0 が入りました。が、これは使えません。

Anaconda プロンプトでconda activate djangoで仮想環境にはいり(djangoai) C:\Users\keita>pip install flickrapi します。

flickrapi-2.4.0が入りました。

Imageをdownloadするスクリプト

ではflickrapiを使ってimageを取得していきましょう。djangoaiフォルダ内へ新たにdownload_images.pyを作成します。

Imageを保存するフォルダを作成

車とバイクの画像をいれるフォルダを作っておきます。

  • (djangoai) C:\Users\keita\anaconda_projects\djangoai>mkdir car
  • (djangoai) C:\Users\keita\anaconda_projects\djangoai>mkdir motorbike

スクリプトを実行する。

仮想環境(conda activate djangoai)に入って、まずはモーターバイクの画像を収集しましょう。

(djangoai) C:\Users\keita\anaconda_projects\djangoai>python download_images.py motorbike

じゃんじゃん入ってきました。

次回

Web Application: 第4回 はじめてのwebアプリ

 

Web Application: 第2回 VS codeのインストールとセッティング

こんにちは Keita_Nakamori(´・ω・`) です。

前回はTensor Flowの試運転に成功しました。

今後アプリ開発をやっていく上でVSコードを使っていこうと思います。PyCharmよさようなら・・・。

VSコードのインストール

https://code.visualstudio.com/でWindows版を選択してインストーラーをダウンロードした後、実行します。

Pathは通しておきましょう。再起動後、画面左側にあるExtentionsボタンをおして、検索窓でpythonと入力して、pythonをインストールしましょう。

データ収集プログラムを作ってみる

では、左上のエクスプローラーボタンを押して、第1回目に作成した keita>Anaconda_projects>djangoaiフォルダを選択しましょう。

Jupyter Notebookで作成した tensorflow_test.ipynbが入っています。

練習のためHello World をやってみましょう

djangoaiフォルダの右側にNew Fileボタンを押してhello_world.pyを作ります。

右側のウィンドウにスクリプトが書けるように成りますのでテキトーにhello worldをプリント出力しましょう。

実行方法

どのPythonバージョンを使用するかの選択

メニュー>View>Command Pallet>Select interpriterで

第1回目で作成した仮想環境であるdjangoai:condaのPython3.7.4 64-bitを選択します。

画面の下に青い帯で変更されたことが確認できます。

ついでにpylintが入っていませんようと警告がでますのでInstallしましょう。condaかpipか聞かれますのでcondaにしてみました。

実行

スクリプト窓内で右クリックをしてrun python file in terminal します。

するとコマンドプロンプト窓内で実行されます。

次回

Web Application: 第3回 はじめてのwebアプリ

 

 

Python : graphvizのインストール方法

意外と面倒なgraphvizのインストール方法をメモっておきます。

graphvizのインストール

最初に行っておきますけど。

$ pip install graphviz じゃだめでしたよ!!

警告

InvocationException: GraphViz’s executable “C:\Program Files (x86)\graphviz-2.38\release\bin\dot.exe” is not a file or doesn’t exist

 

どうやらdot.exe にパスを通しなさいと警告がでるのですが、そもそもpip install された 先がわかりませんでした。作戦変更です。

graphviz 公式サイトからのインストール

graphvizの公式webサイト

https://graphviz.gitlab.io/_pages/Download/Download_windows.html

からgraphvizのインストール graphviz-2.38.zip をダウンロードして展開するとreleaseというフォルダが作成されます。

C:\\Program Files (x86)\\ の下に 新規でgraphviz-2.38フォルダを作成して、そのさらに下にreleaseフォルダを移動します。

結果、dot.exeが

C:\\Program Files (x86)\\graphviz-2.38\\release\\bin\\dot.exe

の位置になります。(インストーラーがなさそうなので、フォルダ移動だけです。)

システム環境変数の追加

ではパスを通しましょう。

windowsボタンをおして検索に「システム環境変数」と入れます。システムのプロパティが開くので、環境変数ボタンを押して、システム環境変数のpathを編集します。

新規ボタンを押して、さっきのdot.exeのパスである

C:\\Program Files (x86)\\graphviz-2.38\\release\\bin\\dot.exe

をコピペします。

 

これでgraphvizが使えるようになったと思います。

以上、これで幸せになりました。

Python: sklearn プリ処理

Sklearnのプリ処理の部分をメモっておきます。

スクリプト

 

Python:matplotlib

可視化の基本 matplotlibです。

貼っておきます。

matplotlib_taxt_for_data_science.html

matplotlib_taxt_for_data_science.ipynb

スクリプト

 

Python : pandas

どーも Keita_Nakamori(´・ω・`)です。pandas の基本操作を一通りやりましたので、置いておきます。

pandas_for_text_of _data_science.html

pandas_for_text_of _data_science.ipynb

べた貼りです。上記のhtmlのほうが見やすいです。

 

Python : numpy

どーもこんにちは、Keita_Nakamoriです(´・ω・`)

Pythonを色々やってきた中で、何かしらマイルストーン的なものがほしいと思い

Python 3 エンジニア認定データ分析試験

なるものを受けてみようと思っております。

データ分析というからには、numpy , pandas, matplotlib, scikit-learn くらいは出るんだろうなあと漠然と考えていますが、今日はnumpyを学習したので、備忘録に貼っておきます。

numpy_text_for_data_analisys_with_Python.html

numpy_text_for_data_analisys_with_Python.zip

機械学習:sklearnで30日間の株価予測をやってみる

前回、pandas_datareaderで株価を取得してpandasで統計処理してmatplotlibで可視化するということをやりました。

今回は機械学習をやっていきましょう。

理屈:

ある1日の株価データのうち、High Low Open Close Volume AdjClose の6データと、さらにOpen Close から算出されるエンジニアリングデータ change を含めて、計7つのデータを入力データとします。(ここまでは前回の話)

その正解データとして、30日後の終値Closeを定義します。

数学モデルは線形回帰モデルを使います。複数の入力データがあるので重回帰分析と呼ばれています。

  • y : 正解データ
  • x1~x7:入力データ
  • a1~a7:回帰パラメータ 偏回帰係数とも呼ばれます
  • error:入力データと正解データの差(誤差) 数学モデル上では切片に相当します

y = (a1*x1) + (a2*x2) + (a3*x3) + (a4*x4) + (a5*x5) + (a6*x6) + (a7*x7) + ierror

たくさんの入力データ(1日1データ)をこのモデルに入力して、正解データと入力データの Σ(ai*xi) の部分との差 errorがトータルでできるだけ小さくなるように、最小二乗法を使って ai を決めていきます。

その結果、予測モデルが確定しますので、30日前から現在までの入力データを代入すれば、それぞれの日に対して30日後の終値が予測されます。

 

# 終値を30日間前にずらしたcolumnを作成します。

ずらされた部分はNaNという値なしの状態で埋められます。

# 入力データを作成します

# 正解データを定義します

# データを訓練用と検証用に分割して、学習モデルを選択して、学習させて、検証します

精度:92% って出ています。(´・ω・`)

# 過去30日間の入力データ predict_data から、それぞれ30日後の未来終値データ predicted_dataを予測します。

# 可視化:予測結果

後ろの黄色いやつが未来の30日間の株価予想です。

Linear Regression でも まあまあそれっぽい答えは帰ってきますね。