今日も窓辺でプログラム

外資系企業勤めのエンジニアが勉強した内容をまとめておくブログ

Python

ビットコインの約定履歴を取得してローソク足チャートを描いてみる

はじめに ここ最近、ビットコインを筆頭とした仮想通貨が世間を騒がせているようです。私は完全に乗り遅れてしまいました。仮想通貨の取引所はAPI等も多く公開しているようなので、遅れながらも何もやらないよりはと思い、公開APIを読んでビットコイン取引の…

PyTorchでMNISTをやってみる

はじめに PytorchでMNISTをやってみたいと思います。 chainerに似てるという話をよく見かけますが、私はchainerを触ったことがないので、公式のCIFAR10のチュートリアルをマネする形でMNISTに挑戦してみました。Training a classifier — PyTorch Tutorials 0…

Wikipediaでword2vecの学習してEmbedding Projectorで可視化してみる

はじめに 前回の記事で、Wikipediaの全行に対してループを回せるような環境を用意しました。 www.madopro.netそのコードを利用して、今回はWikipediaの全記事をもとに gensimを使ってword2vecモデルを学習して、 その結果をEmbedding Projectorを使って可視化…

Wikipediaの日本語記事を全行を、分かち書きしてforループで回す

はじめに 機械学習の勉強をするにあたって、日本語Wikipedia全文を学習データにできるとよさそう、ということでデータのダウンロードから、分かち書きされた文章をPythonのfor文で回す段階にもっていく方法をまとめました。 はじめに 環境 コード Wikipedia…

scikit-learnのtrain_test_splitで訓練データとテストデータを分割する

はじめに scikit-learnのtrain_test_splitという関数を使うと、データセットを訓練データをテストデータに簡単に分割できます。 同じくscikit-learnに付属している数字手書き文字のデータセットを使用した例を紹介します。

ニューラルネットワークを実装する [Part 4 バックプロパゲーションのベクトル化]

はじめに 前回に引き続き、Peters' NoteのPart 4 Vectorizationを見ていきます。今回の記事では2クラス分類問題に対して、 バックプロパゲーションをベクトルで扱う方法 Gradient Checking モーメンタム法 を順に実装していきます。 目次 はじめに 目次 今回…

ニューラルネットワークを実装する [Part 3 隠れ層とバックプロパゲーション(誤差逆伝播法)編]

はじめに 前回の記事の続きです。Peters's NoteのPart 3を追っていきます。 非常にシンプルなモデルを使って、隠れ層が果たす役割や、バックプロパゲーション(誤差逆伝播法)の考え方を見つつ、実装していきます。 目次 はじめに 目次 今回扱うニューラルネッ…

ニューラルネットワークを実装する [Part 2 ロジスティック回帰編]

はじめに Notes on machine learning のニューラルネットワークに関するメモのPart 2の部分を追っていきます。 前回は線形回帰でしたが、今回はロジスティック回帰です。前回の記事: www.madopro.net 目次 はじめに 目次 ロジスティック回帰 重みの学習に使…

ニューラルネットワークを実装する [Part 1 線形回帰]

はじめに 最近機械学習の勉強ができてなかったのですが、知人にとあるチュートリアルをおすすめされたので、自分の学習も兼ねて紹介記事を書いていきます。Notes on machine learning というメモの How to implement a neural networkというシリーズです。 …

Python (Flask) を使って簡単なLINEのBotを作ってみる

はじめに ここ最近新しいチームに参加し、仕事がバタバタしていて更新が滞ってしまっていました。 以前のチームとはかなり毛色や作業内容が異なるので、今回は新しいチームでの勉強も兼ねて記事を書いてみます。今回は、LINEが提供しているMessaging APIを使…

初めてはてなブックマークのホットエントリーに掲載されたので、アクセスログを解析してみた

ホットエントリーに掲載されました 先日、当ブログのこの記事がはてなブックマークのホットエントリーに掲載されました。 www.madopro.netこの記事を書いている時点で500個以上のブックマークをいただいています。私が観測していた限り、このブログの記事が…

RNN/LSTMを使った言語モデルをTensorFlowで実装してみる

はじめに 以前、TensorFlowのBasicRNNCellを使用して文字レベルの言語モデルを実装しました シンプルなRNNで文字レベルの言語モデルをTensorFlowで実装してみる - 今日も窓辺でプログラム今回は、前回のコードを少しだけいじって、単語レベルの言語モデルを…

Pythonの標準出力でのUnicodeEncodeErrorの原因となる文字を置換する方法

目次 標準出力でのUnicodeEncodeError 標準出力はio.TextIOWrapperで管理されている 解決方法 参考記事 標準出力でのUnicodeEncodeError Pythonで日本語の処理をしていると、UnicodeEncodeErrorに出くわすことがあるかと思います。例えば私が今回遭遇したの…

TensorBoardのEmbedding Visualizationで単語ベクトルたちを可視化してみる

はじめに TensorFlowの0.12から、Embedding Visualizationという機能が追加されました。 単語や画像などを表現しているベクトルを可視化するためのツールです。公式サイトの説明ページを開いてみてください。Embeddingが3次元空間にきれいに可視化されていて…

日経平均のテクニカル指標を計算してヒストグラムや散布図を書いてみる

はじめに 以前、日経平均が日中にどの程度動くかの予想にチャレンジしていました。 www.madopro.netS&P500、ハンセン、DAXなど、世界各国の指標をもとにして予想するというアプローチだったのですが、以前のアプローチだと日中の値動きを予測するのにはあま…

Pythonでローソク足と出来高を1つのチャートに簡単に描く方法

今回やること Pythonを使ってYahoo!ファイナンスの株価時系列データを読み込み、ロウソク足と出来高のチャートをひとつの図に描く方法を紹介します。 データの読み込みにpandas、描画にはmatplotlibを使用します。

金融データのPythonでの扱い方

はじめに Udacityというネット上のビデオを視聴する形で受講できる講義を提供しているサイトがあります。 Learn the Latest Tech Skills; Advance Your Career | Udacityサイトや講義は英語なのですが、その中で Machine Learning for Tradingという講義を見…

TensorFlowでword2vecを使って単語ベクトルを学習する

今回やること 前回の記事で、RNNを使って文字レベルの言語モデルを実装しました。 シンプルなRNNで文字レベルの言語モデルをTensorFlowで実装してみる - 今日も窓辺でプログラム英語を対象にしたので入出力の次元は26文字+スペースの27次元で済んだのですが…

Pythonでunzipってどうやるの?

Pythonのリストを結合するzip関数の逆の挙動を実現する方法について、今日初めて知ったので記事として残しておきます。 そもそもzip関数とは zip関数は次の例のように、複数のイテラブル(下の例の場合はリスト)のi番目の要素をまとめた新しいイテレータを…

シンプルなRNNで文字レベルの言語モデルをTensorFlowで実装してみる

はじめに GoogleやMicrosoftなどがディープラーニングを使用した機械翻訳をリリースして各所で話題になっています。こんな感じで記事にもなっています。 Google翻訳、深層学習による新システムで人に迫る自然で正確な翻訳を実現 | マイナビニュース Google翻…

日経平均の日中の値動きと高い相関のある他国の指数は存在するのか?

この記事について 以前までの記事で、「日経平均株価の終値が、その日の始値に比べて上がる(UP)のか、下がる(DOWN)のか、ほぼ変わらない(SAME)のか」をTensorFlowを使って予測しようとするシリーズを投稿していました。 日経平均が日中どのくらい変動するか…

pandasで使われるデータ構造 ~1次元、2次元、3次元のデータの扱い方~

この記事について 今までなんとなくで使用していたpandasですが、なんとなくで実装していたコード(日経平均予想のやつです)が汚くメンテナンスが難しくなってきたので、一度ちゃんとpandasでのデータの扱い方をまとめておこうと思って書いたものです。pand…

日経平均が日中どのくらい変動するかをTensorFlowで予測する (今までのまとめ)

この記事について 少し時間が空いてしましましたが、日経平均予測シリーズの続編です。 ニューラルネットワークを用いて、ある日の日経平均の終値が当日の始値と比べて「上がる」か「下がる」か「ほぼ変わらない」かを予測します。今まで数回の記事で日経平…

モデルの評価とバックテスト ~株価予測(6)~

この記事について 前回、は日経平均の終値が始値より「上がる」か「下がる」か「ほぼ変わらない」かを予測するモデルをTensorFlowで構築しました。 今回の記事では、そのモデルの性能について詳しく評価していきます。

PythonとJupyter Notebookを使ってデータと遊ぶ方法

この記事について Pythonを使って、CSVなどのデータを分析・可視化する方法を紹介します。 今回は、インタラクティブにデータの分析ができるJupyter Notebookというツールの使用方法をインストール段階から解説していきます。

日経平均の終値が始値より上がるか下がるかを予測する ~株価予測(5)~

今回やること 日経平均の終値が、その日の始値に比べて「上がる」か「下がる」か「ほぼ変わらない」かを、TensorFlowを使用して予測してみたいと思います。前回までの記事では、日経平均の終値が前日の終値と比べて上がるか下がるかを予測するモデルを作成し…

隠れ層の数を調整してみる ~株価予測(4)~

今回やること 前回 はTensorBoardでグラフや損失関数、精度の変化を可視化する環境を整えました。 今回は隠れ層の層数や、各層のノードの個数を変えてみて、精度がどのように変化するのかを可視化したグラフを見ながら確認してみたいと思います。前回記事: …

TensorBoardで学習の過程を可視化する ~株価予測(3)~

今回やること 前回までに用意したデータ・ニューラルネットでは、日経平均の終値が前日より上がるか下がるかを60%後半台の精度で予測できていました。 今回は、ネットワークが最適化されていく過程をTensorBoardを使って可視化して確認してみたいと思います。

日経平均の終値が前日より上がるか下がるかをTensorFlowで予測する(2.5)

今回やること 前回まで使用していたプログラムがYahoo!Financeの仕様変更で使えなくなっていたので、書き直します。 前回までの記事はこちら: 日経平均の終値が前日より上がるか下がるかをTensorFlowで予測する(1) - 今日も窓辺でプログラム 日経平均の…

日経平均の終値が前日より上がるか下がるかをTensorFlowで予測する(2)

この記事について 前回記事の続きです。 日経平均の終値が前日より上がるか下がるかをTensorFlowで予測する(1) - 今日も窓辺でプログラムこのシリーズでは、以下の記事で解説されていることを、日経平均に置き換えて実行しています。 datalab/FinancialTi…