Pythonと機械学習

Pythonも機械学習も初心者ですが、頑張ってこのブログで勉強してこうと思います。

ラグランジュの未定乗数法

最適化問題 世の中には非常に多くの最適化問題が存在します。ある条件の下で、この値を最適化したい等、良く耳にすることが多いです。 燃費低減の為自動車のエンジン軽くしたい。でもあまり軽すぎると強度が心配。強度を保ちつつどこまで軽くできるか?等、…

サポートベクターマシン

名前だけ聞くとなんか凄そうなマシンに聞こえますね。 サポートベクターとはベクトルの事です。トレーニングサンプルを特徴量空間の位置ベクトルとしてみています。 決定境界に一番近いトレーニングサンプルの事をサポートベクトルといいます。サポートベク…

ロジスティック回帰を実際に試してみる

少し考えてみましたが、コスト関数である対数尤度は活性化関数の出力が教師データに近づくにつれ、0に漸近していくようです。 計算機上ではにするとが-∞に発散してしまうので値を求めることができないですが、解析解としては0に漸近します。 したがって、の…

ロジスティック回帰

ロジスティック回帰はADALINEに確率的な解釈を与えたアルゴリズムです。 活性化関数とコスト関数に対し、ロジスティック関数と尤度を用いています。ADALINEとの違いは、この活性化関数とコスト関数だけです。 ここでは、ロジスティック関数と尤度の概念を学…

確率的勾配降下法

ADALINEでは、全てのトレーニングサンプルからコスト関数の勾配を求め、コスト関数が小さくなる方向に向かって重みを更新していました。その為エポック毎に重みが更新されることになります。 これに対し、1トレーニングサンプル毎にコスト関数の勾配を求め、…

ADALINEを実際に試してみる

パーセプトロンの時と同様に、アヤメのデータを使ってADALINEの挙動を見てみましょう。 numpyの行列表記を使ってやれば、前回のパーセプトロンのコードを少しいじるだけでいけそうです。 以下のスクリプトは、学習率と最大エポック数を変化させて4通りの結果…

ADALINEのコスト関数を行列で表記

ADALINEのコスト関数、またその勾配は、行列で表してやると非常にすっきりと書くことができます。 numpyでは行列演算が可能なので、コーディングの際もそのまま行列として扱うことができて便利です。 numpy内で行列演算が最適化されている(はず)なので、for…

ADALINE

ADALINEはパーセプトロンの改良版です。 ここで覚えておきたいことはコスト関数という概念です。 パーセプトロンでは活性化関数としてヘビサイド関数という変な関数で出力を1か-1の2値に無理やりしていましたが、ADALINEでは適当な係数をかけることで連続値…

パーセプトロンを実際に試してみる

前回まででパーセプトロンが具体的にどんなものかわかりました。 更に理解を深める為には、やはり実際に自分で作ってみるのがいいと思います。 テキストにスクリプト例が載っていましたが、どうも分かりずらいので自分でわかりやすい様にコーディングしてみ…

パーセプトロン

10年くらい前にニューラルネットワークに興味を持ち、本を買って勉強したことがありましたが、非常に難しくて挫折した覚えがあります。 その本にもパーセプトロンが一番最初のニューラルネットワークモデルとして紹介されていました。 トレーニングサンプル…

Pythonと機械学習のお勉強

私は理論よりも実践を重視しようと考えてますが、やはり知識は必要です。 これまでBitcoin投資にscikit-learnを使う環境を作ってきました。しかし決定木アルゴリズムだけではどうもうまく行かなそうなのでもっと知識をつけようと思います。 Kindle版で通常よ…

決定木アルゴリズムを使った自動取引EAを作成

scikit-learnを使って決定木アルゴリズムにより自動取引させるEAを作ってみました。 BTCUSDの日足チャートで、チャート更新時に明日のOpen価格の上昇・下降を予測します。 上昇シグナル時は買いを入れ、もし買いポジションを持っていた場合は、そのまま保持…

Metatrader4でPython実行環境を整える

Metatrader4はFXで使われているプラットフォームです。C言語に似たmqlというスクリプトで、トレード指標やシステムトレードのプログラムを自作することができます。 自作したプログラム(EAって呼ばれています)を使って、バックテストもできますし、EAパラメ…

明日のBTC価格予想をGメールで送信

明日のBTC価格を予測するスクリプトにバックテストとGメールの送信機能を付けてみました。 main関数中の下記でGメールアドレスとパスワードを記述します。 バックテスト結果と明日のBTC価格予想を自分自身に送付します。 #--メール送信パラメータ sendMailFl…

学習パラメータの最適化

バックテストの実施期間により、学習パラメータであるトレーニングデータ数と、トレーニングデータと教師データのセット数を最適化してやる必要がありそうです。バックテストの学習パラメータを最適化するスクリプトを作ってみました。 最適化といっても学習…

バックテストの実施

決定木アルゴリズムを使って、取りあえず明日のBitcoin価格を予想することはできますが、本当にそれで利益を出すことができるのでしょうか?過去のBTC価格データで検証してみました。 以下がバックテストを実施するコードです。 初期資金として$1000ある状態…

決定木アルゴリズムで明日のBitcoin価格を予想

下記のブログ記事に影響を受けて、私なりに調べてみました。 サイト名にも惹かれました。非常にナイスなネーミングだと思います。 機械学習(scikit-learn)を使ってビットコインの価格を予想する 決定木アルゴリズムは機械学習のアルゴリズムの一種ですが、正…

PoloniexのAPIを使ってBitcoin価格データの取得

Poloniexは仮想通貨の取引所です。かなり規模が大きく色々な仮想通貨を取り扱っています。 Python用のAPIを公開しているので、Python上からPoloniexにアクセスしていろいろな事ができるみたいです。 PoloniexのサイトでAPIの使い方を調べてみましたがよくわ…

PyCharmのインストール

Pythonのコードを書くのにそのままエディターで書いてもいいですが、やはりやりずらいのでIDE環境を整えたほうがいいです。 いろいろ試してみましたが、PyCharmがよさそうなのでこいつを使うことにしました。こちらのサイトを参考にさせてもらいました。 PyC…

Python環境を整える

Pythonのインストール WindowsにPythonをインストールして機械学習ができる環境を作った時のメモです。"Python インストール"で検索するとPythonのサイトが出てくるのでそこからインストーラをダウンロードします。私はバージョン2.7.12の32bit版python-2.7.…

ことはじめ

そもそものきっかけは、明日のBitcoin価格を機械学習で予想するという記事をネットで見つけたことでした。 機械学習やディープラーニングを投資に使えないだろうかと前々から思っていて、たまに調べた事があったのですが、中々の難しさでいつも挫折していま…