今まで線形モデルの Perceptron[link] と Linear Regression[link] に関して勉強してきました。今回は、新しい線形モデルである Logistic Regression に関して勉強したので、Python で実装しました。
今まで線形モデルの Perceptron[link] と Linear Regression[link] に関して勉強してきました。今回は、新しい線形モデルである Logistic Regression に関して勉強したので、Python で実装しました。
Linear Regression は機械学習の中でも、歴史があり広く使われているアルゴリズムです。Perceptron アルゴリズムのようにアウトプットが +1 か -1 のような決定的なものではなく、実際の数字を取ることができます。クレジットカード審査の例で言えば、カード発行の許可・不許可という結果だけでなく、許可された場合にカードの限度額までアウトプットできます。しかし、Linear という名前が暗示しているように、基本的にデータは Perceptron と同じように直線で分類されることができなければなりません。
Perceptron は Supervised Learning における最もシンプルな線形分類アルゴリズムの一つです。あるインプットを取り、アウトプットとして +1 か -1 といったバイナリの結果を返します。この記事は、Perceptron の軽い解説と実装に関して挑戦してみます。言語は、科学計算や図表描写のライブラリが豊富にある Python を使用します。(Python とか洒落たやつだなって嫌煙していたんですが、機会学習の勉強を初めてどうしても避ける事ができませんでした。)
最近、機械学習に関心があります。機械学習を利用したツイッタークライアントとか作ってみたいな。機械学習の有名な本、”Learning From Data” の著者の授業が Youtube で受けることが出来ます。また、Caltech のサイトには、パワポ資料等もあります。その授業の中で機械学習の概要が解説されていたので、本格的に勉強を初めて見る前に、個人的にまとめてみました。ほとんど Wikipedia からの転載です。ちょっとずつ追記あり。
ナイーブベイジアンフィルタとは、Naive Bayes というアルゴリズムを使用して、カテゴリやスパムメールの振り分けを行うとてもシンプルなフィルタです。強い独立性を仮定して処理するので、”ナイーブ”と言われます。*1 事前にコンピューターに手動で学習させておく(訓練フェーズ)ので、Supervied Leaning と呼ばれる機械学習の手法の一つ。