Introduction
今日はロジスティック回帰の実装を行いました。初めに、僕のComputerはosはwindowsです。実装はPython3で行います。
最適化にはIRLSを用いています。
ロジスティック回帰の理論偏にロジスティック回帰の詳しい理論や説明を書いています。
ロジスティック回帰の理論編
概要
- 使うデータ集合について
- Pythonでのコードを紹介
- コマンドラインでの実行結果
Dataset
データセットはこちらを使います。dataset
このデータセットには住宅街のデータが入っています。
Python3のPandas.DataFrameでの表示を貼っておきます。

上から五行目までを貼っています。
もし、その家に住人がいるのであれば、Occupancyには1が入っています。
反対に、その家に住人がいるのであれば、Ouucpancyには0が入ります。
このデータセットは約8000個のサンプルが入ったトレーニング用データと、約2000個のサンプルが入ったテスト用のデータがあります。
しかし、今回はトレーニング用に100個、テスト用に100個のデータを使います。僕のcomputerがプログラミング用ではないためです。。。
すいません。。。
CODE
このコードはとても長いので、僕のGithubのページに乗せてあるものを見てください。。githubのページ
ロジスティック回帰(def file)
ロジスティック回帰(main file)
mainファイルには、以下のようなコードが入っているファイルです。コマンドラインで入力するファイルになります。
if __name__ == '__mian__'
defファイルには様々な関数が入っています。クラスも使われています。Pythonのクラスについてはまた、機会があれば書きたいと思います。いざ、実行!
w を推定します…
wが更新されるごとのクロスエントロピー誤差関数の様子をplotしておきます。

scatterplot でクロスエントロピー誤差関数をplotした画像です。

うまく減少しているのがわかります。
最適化は終わりました。
ではこのモデルのテストを行っていきましょう。


予測値と正しい値を比べてみます。
正答率は98パーセントと高い値を出しています。
ところで、ロジスティック回帰ではそれぞれのデータ点が\(C_1\)に属している確率を出してくれます。
Pの列を確認してみてください。
0.5に近い値のものがあまり、無いと思います。(見えてるところだけですが、、(笑))
コメント
コメントを投稿