Search

最小二乗法を多面的に理解、Pythonで3通りの実装を試してみよう - ITpro

全4580文字

機械学習の最も基礎的な手法が最小二乗法だ。この特集では、Pythonで最小二乗法のプログラムを実装することで、その仕組みを学んでいく。

 Pythonを使って、最小二乗法のプログラムを実装してみましょう。プログラミングの環境としては、「Anaconda Distribution」に付属するWebブラウザベースの「Jupyter Notebook」を使います。Anaconda Distributionのインストーラーは次のURLから無償でダウンロードできます。

[画像のクリックで拡大表示]

 まずは、最も基本的な、回帰式が「y = ax + b」の単回帰分析を最小二乗法で行ってみます。

 話を簡単にするために、データは次の3個だけにしましょう。

[画像のクリックで拡大表示]

 最小二乗法の実装方法はいくつかありますが、ここでは次の3通りの方法を紹介します。

[画像のクリックで拡大表示]

 これらの3通りの方法で実装することで、最小二乗法を多面的に理解できるようになると思います。

(1)3重のforループを使う(総当たりの力業)

 初めに断っておくと、この方法は非実用的です。ですが、直感的に理解しやすいので紹介したいと思います。

 この方法は、3重のforループを使って、総当たりの力業で「y = ax + b」の傾きaと切片bの値を求める、というものです。

 では、Jupyter Notebookを起動し、表示されるセルに、次のプログラムを記述して実行してください(図7)。

[画像のクリックで拡大表示]

図7 ●Jupyter Notebookを起動し、セルにプログラムを記述して、「Run」ボタンを押して実行する

図7 ●Jupyter Notebookを起動し、セルにプログラムを記述して、「Run」ボタンを押して実行する

[画像のクリックで拡大表示]

 これは、先ほど示した3個のデータです。

 次に、3重のforループを用意して、傾きaと切片bの値を少しずつ変えながら、第1回の図4の式の値(各データからの距離の二乗和)が最小になるaとbの値を見つけます。このプログラムは日本語で表現すると次のようになります。

[画像のクリックで拡大表示]

 これで3重のforループが終わると、各データからの距離の二乗和が最小になるaとbの値が求まります。

Adblock test (Why?)



from "プログラム" - Google ニュース https://ift.tt/7Xz4poC
via IFTTT

Bagikan Berita Ini

0 Response to "最小二乗法を多面的に理解、Pythonで3通りの実装を試してみよう - ITpro"

Post a Comment

Powered by Blogger.