[Raspberry pi]Pythonで機械学習備忘録(3)〜実装

  • 2020.10.02
  • IoT
[Raspberry pi]Pythonで機械学習備忘録(3)〜実装

前回の続きです.
今回でいよいよラスト(の予定)となります.
(当初の計画通りラズパイ上に表示させます.)

環境

・OS:
 Raspbian(Raspberry pi4 4GB)

・言語:
 Python 3.7

・使用ライブラリ
 matplotlib
 numpy
 pandas
 sklearn

・使用するデータセット:
 Boston house-prices (ボストン市の住宅価格)
  ボストン郊外地域の不動産物件に関する統計データが入っています.
  scikit-learnから呼び出せます.
 以下にその他呼び出せるデータセットがまとめられていました.
 scikit-learn に付属しているデータセット

実装(計算)

前回導出した式を参考に計算部分をまとめたクラスを作成しました.

また、確認用にscikit-learnライブラリを使って分析する関数も組み込んでいます.

呼び出しクラス(main.py)

上記ソースを呼び出すmainコードです.
使えるだけ全部呼び出してます.

動作画面

実行してみます.

numpy

以下はログです.

numpy_log

また、確認用に実装していたscikit-learnを使った分析結果も載せておきます.

sklearn

ログです.
回帰係数と直線の式、決定係数がnumpyで導出した場合とほぼ同じになっていますね.

sklearn_log

終わりに

今回、一から機械学習について勉強を行ったわけですが、理解に時間をかけたその分scikit-learnライブラリで2〜3行で単回帰分析ができることの驚きが大きく感じてしまいました..

コーディングの際も参考にさせて頂いた方々はもちろんいらっしゃいますが、pandasによる配列操作(データセット)やnumpyによる計算方法もシンプルに実現できたため、改めてPythonの凄み実感しています.
数学における途中計算部分を大幅にカットできるのは勉強する上で非常に心強かったです.

逆に、中身を理解する前にものが完成してしまうスピード感はしっかり意識した上で勉強に役立てていきたいとも思います.(達成感でやる気が落ちちゃうので…)

と、前回までで機械学習に関して思うところは吐き出し尽くしていることもありまして、本実装は意外とあっさりしていたため最後もこんな感じの感想しかありません.

基礎的なモデルに四苦八苦していたわけですが、せっかくなら重回帰からのロジスティック回帰…と理解を深めていきたいとも考えているので、次は勾配降下法についてこれから少しずつ勉強していこうかと思います.
ここまで読んで頂きありがとうございます.

参考:
Pythonで基礎から機械学習 「単回帰分析」
線形単回帰を Python で理解する