data_science:Chapter3 記述統計と単回帰分析

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

ここから統計っぽくなってきました。

記述統計 推論統計 回帰とやっていきます。

ディレクトリの操作もJupyter notebook上でできますのでメモっています。

データの読み込み>pandas.DataFrame化

ヒストグラム 箱ひげ図 散布図

分散 標準偏差 変動係数 相関係数 共分散 相関

線形単回帰分析 決定係数(寄与率)

ローレンツ曲線 ジニ係数化

スクリプトメモ

data_scientist_chapter_3

data_science:Chapter1 Pythonの基礎

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

「東京大学のデータサイエンティスト育成講座」を参考に学習を進めています。

pythonで色々と実行していきますので、章ごとにスクリプトのメモを残していこうと思います。※ 我流でやっていますので本書の中身とは異なります。

第一章はpythonの基礎的な操作方法なので、なれている方にとっては読み飛ばして良いところです。

無名関数(ラムダ式)の復習くらいですかね。ああ、そんなのもあったな程度です。高階関数 イテレーター ジェネレータ デコレーターなどは出てきません。

基本、なくてもデータサイエンスでは困りません。

スクリプトメモ

data_scientist_chapter_1

 

 

Web Application: 第11回 HTMLにTensorFlowを連動させる

やっていきましょう (´・ω・`)これで一旦終わりにします。

views.py

form.py

model.py

result.html

実行してみる

 

 

conda activate djangoai

cd anaconda_projects

cd djangoai

cd myproject

pythin manage.py runserver

url:http://127.0.0.1:8000/carbike

おわり

いやー疲れました、djangoは難しい。小さなアプリでも多くのファイル間を連携させないと動いてくれないんですね。

今後は、マッチングアプリや遠隔監視カメラなんてものを作ってみたいと思います。

IOT:加速度センサMPU-6050をラズパイ pythonで動かしてみる(2)

前回は、数値の出力まででしたので、今回はリアルタイムプロットに挑戦します。

グラフ付きスクリプト

リアルタイムプロット

できました! 以上です。

IOT:加速度センサMPU-6050をラズパイ pythonで動かしてみる(1)

こんにちは、加速度センサーのMPU-6050を買ったので、試運転してみます。

下記webを参考にさせていただきました。

 

まずは配線しましょう。

使用するピンは 1 , 3 , 5 , 6 です。

MPU-6050の電源電圧は 3.3[V] ですが、GY-521に3.3[V]のレギュレータICが載っていて、I2Cバスのプルアップ抵抗が 3.3[V] へ繋がっているので、5[V]電源の Arduino に直接つないで使うことが出来ます。

という記述を見つけましたが、おとなしく+3.3Vに接続します。

ラズパイをネットワークにつないでVNC接続します。

ラズパイの設定でSSH,VNC,I2C,SPIとか全部 有効にします。

ターミナルで >ifconfigして アドレスを確認します。

192.168.10.xxx

ウィンドウズマシン上でVNC Viewerから新規コネクト作成で192.168.10.114します。

このとき、重要なのは ユーザーネームは自分で設定したIDではなくて pi です!!で、パスワードは自分で設定したやつです。

非常に紛らわしいですね。毎回詰まります。

GPIOでI2Cが有効になっているか確認

$ gpio readall

すると、GPIOの一覧が確認できます。

 

$ sudo i2cdetect -y 1

すると、I2Cが接続されているのが確認できます。

実行スクリプト

では、加速度を取得してみましょう。ベタ貼りしてみました。

 

結果

ちゃんと動いていますね。

次回

数値データをグラフ化して見ましょう。

動的にmatplotlibを利用する必要がありますので、ちょっと考えなくてはなりません。

Python: 無名関数 lambda 式

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

台風19号が接近し、レベル4の避難命令が出ましたので最寄りの小学校へ避難しております。ひまです。

無名関数 lambda 式

無名関数を使うときはlambda(ラムダ)と書きます。

(lambda a, b : a * b) (5, 8)

lambda a, b : の部分

def xxx(a, b): に相当します。

a*b の部分

通常の関数で言うところの return a*b に相当します。

(5, 8)  の部分

xxx関数を定義したとして、xxx(5,8) のように引数を2つ渡すことに相当します。

以上より、通常の関数では

 

のところを

一行で (lambda a,b : a*b)(5,8)

と書けるのです。

 

書いているうちに台風が去っていきました。お家に帰りましょう。(´・ω・)

 

 

 

 

Web Application: 第10回 HTMLで内容を作成する

前回までで carbikeのindex画面とpredict画面を生成しました。

今回はhtmlを記述していってwebサイトをかっこよくしていきます。

django-bootstrap4 をインストール

django-bootstrap4を使いますので、

> pip install django-bootstrap4をします。

django-bootstrap4-1.0.1 が入りました。

htmlファイルの作成

/myproject/car_motorbike/ の下に

  • /templates/carbike/base.html
  • /templates/carbike/index.html
  • /templates/carbike/predict.html

というファイルを3つ作成します。

まずはじめに各ページ共通の部分である雛形としてbase.htmlを作成します。

index.htmlとpredict.htmlには各ページ固有の内容を記述して、雛形であるbase.htmlに埋め込んでいくやり方を取ります。

base.html の作成

各ページ共通の部分である雛形です。

bootstrap4の記法は下記のようにDTL: Django Template Languageで

{% xxxxxxx %} と書きます。

1.タイトル

{% block title %}{% endblock %} の部分にindex.html,およびpredict.html各ページ固有のタイトルが代入されます。

2.内容

{% block content%}{% endblock %} の部分にindex.html,およびpredict.html各ページ固有の内容が代入されます。

cssファイルの作成

上記、base.htmlの中で、スタイルシートの宣言をしていますが、自分でディレクトリとファイルを作成する必要があります。

<link rel=’stylesheet’ type=”text/css” href=”{% static ‘carbike/css/style.css’ %}”>

staticディレクトリを myproject/car_motorbike/直下(templatesと同階層に作成して、その中に/carbike/css/style.css というcssファイルを作成しておきます。

あとで記述していきますので、現時点では空ファイルでOKです。

index.html の作成

indexベージを作成します。

1.埋め込み先の宣言

雛形ページであるbase.htmlに対してタイトルと拡張宣言をします。

{% extends ‘carbike/base.html’ %}

2.埋め込むタイトルを定義

{% block title %}xxxx{% endblock %}

3.埋め込む内容を定義

{% block content %}xxxx{% endblock %}

forms.py を作成する

myproject/car_motorbike/の下に forms.pyを新規作成します。

views.py へforms.pyを埋め込む

indexページの表示内容であるindex関数の部分を hello worldをreturnするだけの状態から、formを表示する内容に変更します。

やっていることは3つのみ

1.テンプレートオブジェクトを定義

template = loader.get_template(‘carbike/index.html’)

2.コンテキストオブジェクトを定義

context = {‘form’:PhotoForm()}

3.HttpResponseをreturnする

return HttpResponse(template.render(context, request))

apps.pyを確認する

現在このアプリケーションが認識されているアプリ名を確認します。

CarMotorbikeConfigクラスの中に name = ‘car_motorbike’ と定義されています。

これを 後述のsettings.pyのINSTALLED_APPSリストに追加します。

myproject/settings.py を編集する

# Application definition の部分を書き換えます。

リストINSTALLED_APPS にクラス名’car_mortorbike.apps.CarbikeConfig’と ‘bootstrap4’を追記します。

 

ではここまでをブラウズしてみます。

仮想環境へ conda activate djangoai

開発サーバーへ python manage.py  runserver

url                   http://127.0.0.1:8000/carbike

ここで、画像を選択肢画提出ボタンを押すと、ページが遷移します。

ここはまだ作り込んでいないので、これでOKです。

次回

以上、次回は第11回目です。

django 複雑ですねえ。これは習得するのに時間がかかる・・・。(´・ω・`)

 

Web Application: 第9回 Djangoでページのルーティング設定をする

前回、myproject管理フォルダ内のurls.pyを編集しましたが、今回は

car_motorbikeアプリケーションフォルダ直下に、同じくurls.pyを新規作成して、下記スクリプトを書きます。

car_motorbike/urls.py 新規作成

アプリケーションネームapp_nameとして 明示的にcarbikeと定義してあります。ここはなくてもいいかもしれませんし、car_motorbikeにするべきかもしれませんが、ひとまずこれでやってみます。

1.当該スクリプトで使用するモジュールであるviews.py は 当該urls.pyと同層になるので

from . import views

という不思議なインポート記述になります。

viewsモジュールはまだ作成していませんので実行すると当然エラーになりますが、あとで作成しますので心配いりません。

2.そして、画像を入力したときにvvc16_predct.pyを走らせて予測結果を返す画面である predict画面を定義します。

urlpatternsリストにリスト要素として

path(‘predict/’, views.predict, name=’predict’)

を追加します。これで urlのツリー構造として /carbike/predict が定義されたことになります。

views.predictメソドはこれから作成しなければなりませんので、現時点ではエラーが出ます。

3.なお、このcar_motorbike/urls.pyスクリプトは myproject/urls.py から呼び出されるものなので、これから myproject/urls.py の方を改良していきます。

ルーティングというやつです。

myproject/urls.py 編集

ではここから car_motorbike/urls.py へルートをつなげていきます。

1.include関数を新たにインポートして 、先程作成した car_mortorbike/urls.pyを参照するようリストurlpatternsにリスト要素としてpath(‘carbike/’, include(‘car_motorbike.urls’))を追加します。

2.これで、ブラウザ上のurl指定に/carbikeが追加されたとき、car_motorbike.urlsスクリプトを見に行くことになります。

car_motorbike/views.py の編集

先程、car_motorbike/urls.py 内で views.predictメソドを記述しましたが、それの実体をここで定義します。とりあえずルーティングが正しく行われて表示されるか確認したいので、実行内容としてはテキストを出力するだけの最低限にしてテストしてみましょう。

動作チェック

では python manage.py runserver して ブラウザで動作チェックをしましょう。

1.http://127.0.0.1:8000/ を入力すると

>[21/Sep/2019 15:53:08] “GET / HTTP/1.1” 404 2032

トップページは作っていませんから、404エラーで問題ありません。

2.http://127.0.0.1:8000/carbike を入力すると

>[21/Sep/2019 15:53:17] “GET /carbike/ HTTP/1.1” 200 11

200と出ていますのでちゃんと認識しています。

3.http://127.0.0.1:8000/carbike/predict

>[21/Sep/2019 15:53:30] “GET /carbike/predict/ HTTP/1.1” 200 21

と 200が帰ってくるのでこちらも正常に動作しています。

次回

Web Application: 第10回 HTMLでかっこよくする