Pythonと機械学習

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

2016-01-01から1年間の記事一覧

決定木アルゴリズムを実装してみる

目次 目次 はじめに 再帰呼び出し 決定木のチャート図 決定木で使われる乱数 特徴量の重要度 自作スクリプト テスト結果のスコア比較 特徴量の重要度比較 決定領域比較 自作版の決定領域 scikit-learn版の決定領域 決定木チャート図比較 自作版のチャート図 …

決定木アルゴリズム

目次 目次 はじめに ジニ不純度 情報エントロピー 情報利得 具体例 不純度指標にジニ不純度を使った場合 不純度指標に情報エントロピーを使った場合 参考 はじめに 今まで何も考えずに決定木を使っていましたが、どういうアルゴリズムなのか調べてみることに…

python-poloniexのバージョンアップ

ずっと使ってたpython-poloniexがバージョンアップしたようで、関数名が一新されてしまいました。 アップデートしたら、botが動かなくなってしまったので焦ってしまいました。 ラッパー中で使っている関数名をAPIのオリジナルコマンド名と合わせたみたいです…

自動トレードボット

目次 目次 はじめに 使い方 準備するもの ボット稼働方法 ボット内のルーチン 注意 おまけ はじめに ここまでで仮想通貨の自動トレードボット作成に必要な知識がそろったので、実際にボットを作ってみました。 一カ月ほど運用していますが、まあ結果は全然ダ…

APScheduler

目次 目次 はじめに Poloniexサーバー時間 使用例 Linuxでバックグラウンド実行 はじめに Poloniexからチャートデータを取ってきて明日のコイン価格を予想することができ、またAPIを使って成行トレードもできるようになったので、後はそれらをまとめて実行す…

カスタムPoloniex

目次 目次 はじめに サンプルスクリプト 基軸コイン バランスデータ取得 資産データをBTCとUSD換算 成行買い 成行買い(買えるだけ) 成行売り 成行売り(売れるだけ) はじめに Poloniex APIのpythonラッパーであるpython-poloniexは非常に便利なのですが、バラ…

PoloniexのAPIを使ってトレードしてみる

目次 目次 はじめに API KeyとSecretの取得 APIの使い方 バランスデータの取得 トレードしてみる はじめに 前回はPush APIを使ってPoloniexのサーバーが配信するデータを自動受信してみました。 今回は通常のAPIを使って仮想通貨のトレードをしてみたいと思…

PoloniexのPush APIを使ってみる

PoloniexのAPIを使ってデータを取得する際にPush APIというものがあるらしいです。 PoloniexのAPI解説ページに行くと、いきなりPush APIの説明が出てきてWAMP protocolで通信する必要があり、環境をセットアップしなければならない等ややこしいので挫折して…

サポートベクターマシンを実際に試してみる

2次計画法のスクリプトが出来たので、サポートベクターマシンに実装してみます。 サポートベクターマシンにおける最小化すべき目的関数は、 制約条件は、 になります。重みが設計変数になります。 これらを行列形式で表します。(トレーニングサンプル数は、…

2次計画法

ラグランジュ乗数の意味 サポートベクトルのマージンを最大化するために、ラグランジュの未定乗数法を等式制約から不等式制約がある場合に拡張する必要があります。 ラグランジュの未定乗数法を不等式制約がある場合に拡張した最適化アルゴリズムを2次計画法…

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

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

サポートベクターマシン

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

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

少し考えてみましたが、コスト関数である対数尤度は活性化関数の出力が教師データに近づくにつれ、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.…