データサイエンティスト(仮)

元素粒子論博士。今はデータサイエンティスト(仮)。

Pythonでデータ分析:Prophetを使ってビットコインの予測(笑)をやってみる

導入 直近、これといって緊急の業務がなく、「自分の時間だ何勉強しようかなー」とPyStanとかをいじっていた矢先、「暇なら技術調査やってよ、Deep Learning的な何かとか」というお達しがきました。あいにく私は天邪鬼なので、2つ返事をして気になっていた…

Pythonでデータ分析:主成分分析(PCA)による異常検知

導入 データ分析の種類の一つとして、教師なし学習による異常検知というものがあります。ほとんどが正常なデータでまれに異常なデータが混じっている、その異常発生のパターンや異常と他の要因との紐付きがいまいちつかみきれていないというような場合、教師…

Memo:Gluonの解説やコード紹介(海外)

導入 2017年10月12日(現地時間)に、MicrosoftとAWSがGluonというDeep Learningのライブラリを公開しました。www.itmedia.co.jp日本語の解説記事があまり見当たらなかったので、簡単なところは自分で試してみるなどし、いくつか記事にもしました。色々調べ…

GluonでDeep Learning:CNNを組んでみる

導入 前回、MicrosoftとAWSが公開したライブラリであるGluonの紹介をしました。 tekenuko.hatenablog.com前回紹介したのは、Tutorialの多層パーセプトロン(MLP)でしたが、Gluonは他のネットワークもサポートしています。今回は、畳み込みニューラルネット…

GluonでDeep Learning:Tutorialを眺めてみる

導入 2017年10月12日(現地時間)に、MicrosoftとAWSがGluonというDeep Learningのライブラリを公開しました。 www.itmedia.co.jpGluonとは、自然界の基本的な相互作用の一つ「強い相互作用」を伝える素粒子のことです。glue(のり)にちなんでのりのように…

Pythonでデータ分析:PyStanで線形回帰モデル

導入 ベイズ推定を行うための道具として、マルコフ連鎖モンテカルロ(MCMC)があります。その派生系であるハミルトニアンモンテカルロ(HMC)をベースにしたソフトウェアとして、Stanというものがよく知られています。 Stan - Stan StanはC++ベースのソフト…

Pythonでデータ分析:Catboost

導入 2017年7月に、ロシアのGoogleと言われている(らしい)Yandex社から、Catboostと呼ばれるGradient Boostingの機械学習ライブラリが公開されています。catboost.yandexここ何ヶ月か調整さんになっていて分析から遠ざかりがちになりやすくなっていたので…

Memo:MacOS SierraでXGboostをpipで入れる

XGboostを自宅のMacに入れようとしても入らなかったので、調べてみたことを備忘録として残しておきます。 以前との差分を考えてみたら、MacOSをSierraにアップデートしてたことに気が付き、調べると以下の記事がヒットしました。qiita.com上の記事では、clan…

NN論文の読み会で発表した

はじめて外部勉強会なるもので発表をしました。 tfug-tokyo.connpass.com今回の論文のテーマはDeep Learning + 自然言語処理系で、私は全然キャッチアップしてなかったところだったので、勉強(炎上ラーニング)を兼ねて申し込んでみました。私が選んだ論文…

社内でKDD2017論文を紹介した

社内の有志でKDD2017の論文紹介をしました。 紹介した内容はスパース推定に関するアルゴリズムの話です。 発表資料をslideshareに公開したので、そのリンクをこちらにもはっておきます。 Qualityがよくないかもしれませんので、ご質問やご意見がありましたら…

KerasでDeep Learning:LSTMで日経平均株価を予測してみる

導入 前回までで、画像データに関してDeep Learningを試してきました。画像データは、各データが独立と期待されるようなタイプのデータです。しかしながら、Deep Learningはこのような各データが独立であるような場合だけでしかできないというわけではありま…

KerasでDeep Learning:CNNを組んでみる

導入 前回はMNISTデータに対してネットワークを構築して、精度を見ました。 tekenuko.hatenablog.com 今回は、より画像処理に特化したネットワークを構築してみて、その精度検証をします。 参考 KerasのGithubにあるexampleのほぼ丸パクリです。 github.com …

ヒアリチェッカーを作ってみた:とにかく出してみる

(注)中身はまだ非公開 導入 最近、日本に危機が迫っています。 そう、ヒアリです。ヒアリは在来種と違った繁殖方法を持ち、毒性もあるので、あれよあれよという間に我々の周りに広がっていく可能性もあります。その場合、ヒアリをきちんと見分けられないと…

KerasでDeep Learning:KerasでMNISTデータを扱ってみる

導入 前回は人工データを用いたネットワーク構築について紹介しました。 tekenuko.hatenablog.com 今回は、異なるデータ(MNIST)に対してモデルを作成してみます。 MNIST MNISTとは、「Mixed National Institute of Standards and Technology database」の…

KerasでDeep Learning:とりあえずネットワークを組んでみる

導入 前回はKerasを導入しました。 tekenuko.hatenablog.com今回は、実際にネットワークを組んで学習をさせてみようと思います。簡単すぎるような気がしますが一歩ずつ…。 データセット 人工的に乱数を振って作成したものを用います。 import numpy as np # …

KerasでDeep Learning:導入

導入 年齢を重ねるにつれて、能力が落ちてきて危機感を感じています。こまめに努力しようと思います。最近、Deep Learningを使うふりをしていて、申し訳程度にChainerを使っています。Chainerも書きやすいのですが、日本人ユーザがメインなので、Tensorflow…

Memo:BoostのVersionを確認

BoostのVersionを確認したいときに実行するコード 会社のサーバでとあるソフトウェアをPythonとbindingさせようとしたときに、BoostのVersionが知りたくなったので調べてみました。 以下のようなコードを作成して実行するとVersionがわかるようです。 #inclu…

トポロジカルデータアナリシス:単体の境界

導入 不定期でトポロジカルデータアナリシス(TDA)に関する紹介をします。今回は単体の境界を数学的にどう表現するかを紹介します。 振り返り 前回、図形の穴は「境界」に着目することで特徴づけができそうだということを紹介しました。tekenuko.hatenablog…

トポロジカルデータアナリシス:ホモロジー群の紹介のための準備

導入 不定期でトポロジカルデータアナリシス(TDA)に関する紹介をします。今回は、図形の「穴」を数学的に表現するための準備をします。具体的に表現していくのは次回以降になります。 振り返り これまで、データから図形を見立てる方法を紹介してきました…

時系列データでお絵かきする

はじめに 最近、趣味の時間があまり取れなかったので更新が滞ってました(汗)。周期性をもつ(だろう)時系列データをお遊びで可視化してみました。やってみるとなかなか面白かったので、備忘録として残しておくことにしました。 どうやって可視化するのか …

トポロジカルデータアナリシス:ノイズのあるデータへ応用する

導入 不定期でトポロジカルデータアナリシス(TDA)に関する紹介をします。今回は、ノイズをもったデータへのTDAの応用方法を紹介します。 振り返り データが与えられたとき、それを高次元空間の点の集まりとみなし、それらから図形を見立てる方法を紹介しまし…

R Notebookを使えるようにしてみる

動機 最近、R Notebookが少し話題になっていました。自分はまだ使ったことがなかったので、この機会にR Notebookを導入してみようと思いました。 R Notebookとは RStudio上でインタラクティブに作成できるNotebookです。RMarkdownで書くJupyter notebookとい…

久々にC++を触ってみたら自明なクラスしか書けない

C++

動機 自明な言葉を発する営みを若干抽象化したい。 tekenuko.hatenablog.com 自明なクラス作成 抽象化 = オブジェクト化。 外部からの入力が自明かどうかを判定します。 // trivialclass.cpp # include <iostream> # include <string> using namespace std; // クラス class tr</string></iostream>…

久々にC++を触ってみたら自明なファイルしか読めない

C++

動機 自明な言葉を発する営みを若干非自明にしたい。 tekenuko.hatenablog.com 自明なファイルを読むコード 非自明にする方法の一つとして、あらかじめ自明な言葉を保存したファイルを用意して、それを読み込む、というものがありえます。C++でファイルを開…

久々にC++を触ってみたら自明な入力しかできないのはくやしい

C++

自明な振り返り 自明な出力しかできませんでした。 tekenuko.hatenablog.com 動機 くやしいので非自明なことを言いたい。 自明(?)なコード 自明なことを入力すると自明だと言われます。 // trivial.cpp # include <iostream> # include <string> using namespace std; int ma</string></iostream>…

久々にC++を触ってみたら自明なことしかできない

C++

自明な背景 3年ぶりくらいにC++触ってみたら自明なことしかできなかったので、自明なことをしたメモをします。 自明なコード 実行すると自明な言葉を発します。 // helloworld.cpp #include <iostream> using namespace std; int main(){ cout << "Hello world!" << en</iostream>…

Pythonでデータ分析:機械学習の自動化

導入 何か問題を解決するにあたって機械学習を活用する場合、膨大なアルゴリズム、そのアルゴリズムに付随する多くのハイパーパラメータが存在します。分析の要件が「とにかく精度、中身は問わない」だった場合、何とかして効率的にモデルとパラメータを知り…

トポロジカルデータアナリシス:データと図形を結びつける

導入 不定期でトポロジカルデータアナリシス(TDA)に関する紹介をします。今回の内容は、データから図形を見立てる方法と、TDAにて登場する単体的複体の紹介をします。 データを図形に読み替える 以下の図の左側のような点の集まりを、データの集まりだとしま…

トポロジカルデータアナリシス : 単体的複体

導入 不定期でトポロジカルデータアナリシス(TDA)に関する紹介をします。今回は、私たちが普段から何気なく慣れ親しんできた図形に関する話題です。ここでは、単体的複体をいう対象を考えます。 参考 このブログでは、数式を交えた説明は基本的にしません。…

複数の棒グラフを表示させるのはpandasが便利

経緯 ある対象に対して、複数のアプローチの結果を可視化したいとき、棒グラフで並べて比較する方法があります。これをmatplotlib.pyplot.bar()で描いていましたが、棒の太さやら目盛の調整が大変でした。matplotlibは柔軟な可視化ができる反面、匠の技が要…