医療職からデータサイエンティストへ医療職からデータサイエンティストへ統計学、機械学習に関する記事をまとめています。基本的なところを扱ってきました。www.medi-08-data-06.workwww.medi-08-data-06.work第3回となる今回は、今までの知識を使って統計、機械学習で最も基本的で、最も頻出の線形回帰と最小二乗法についてご紹介します。今回の目的は、以下になります。偏微分を使って、関数の値を最小にするパラメーターを見つけることができる。最小二乗法で、線形回帰モデルを作ることができる。誰が読んでも理解できることを目指していますので、分かりにくい、理解できない等ありましたら、お気軽にコメント頂けると幸いです。補足:最小二乗法のもう一つの考え方まとめ参考メールの数と売上の関係ある企業は、顧客にメールで広告を送っています。この企業が一人当たりに送ったメールの数と商品の売上について調べたデータがあるとしましょう。こんなデータになります。このデータを、横軸をメールの数、縦軸を売上として、グラフにしてます。メールの数が増えると売上が増えるという関係性にありそうですね。それでは、赤のラインである売上5万円を超えるためには、メールを何通送ればよいでしょうか?こんな線を引いてみます。(ベータ)と表わすことが多いので、今後はこちらで書いていきます。この直線は見方を変えると、メールの数を入力値とし、売上が出力される関数とみなすこともできますね。この関数のことを線形回帰モデルと呼びます。ここで、と表すことにします。yハットと呼び、多くの参考書でもでてくるので慣れておきましょう。線形回帰と最小二乗法さて、線形回帰モデルを作るためには、すべてのデータから、なるべく近いところに線を引きたいですよね。距離をすべて足し合わせ、その値が1番小さくなるところに線を引くことにします。(予測値)の距離が近く、当てはまりが良い線になっています。この実測値-予測値の値のことを残差とも呼びます。ここで、第一回目の記事で紹介した分散の考え方を使いましょう。求めることで、線形回帰モデルを作ることができます。この平方和を最小にする方法が、最小二乗法です。今までの知識を使って文字で表してみます。売上をy、メールの数をxとして、メールが1通の時の売上をy1と表わすことにします。すると平方和は、と表されます。値を求めれば、線形回帰モデルの完成です。このワード聞き覚えありませんか?そう!微分して傾きを0にするです!ちなみに上記のような、最小化を目指す関数を機械学習の世界では損失関数またはコスト関数とよぶこともあります。コスト関数を最小にすることは、予測値と実測値の差を最小にすることであると言い換えることもできます。偏微分で最小二乗法を解くここで、微分の便利な性質を紹介します。微分は、それぞれの項を微分してから足しても、足してから微分しても、答えは同じになります。この性質を利用すると、シグマの入った式でも微分を行うことができます。それでは、実際に微分をしていきまょう。はじめに今回の損失関数をと定義します。値を入力すると、残差の平方和出力する関数であることに注意しましょう。www.medi-08-data-06.work次にシグマをそれぞれの項に移動させ、yとxの実際の値を入れます。