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

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

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は柔軟な可視化ができる反面、匠の技が要…

アソシエーション分析のちょい復習

動機 最近こんな本を購入しました。 www.shoeisha.co.jp 第I部の「データアナリティクスの基礎」は、データ分析のプロジェクトの全体像に触れていて、データ分析のプロジェクトをどう進めていくかについて整理するのには良いのかな、と思いました*1。後半部…

FastBDTの計算時間が速いかを確認してみる

はじめに 最近、ブースティング系のアルゴリズムでXGboostより速いものが実装されているようです。 github.com 論文は以下になります。 [1609.06119] FastBDT: A speed-optimized and cache-friendly implementation of stochastic gradient-boosted decisio…

Pythonでデータ分析:XGboost

導入 前回、アンサンブル学習の方法の一つであるランダムフォレストについて紹介しました。 tekenuko.hatenablog.com 今回は、XGboostと呼ばれる、別の方法がベースになっているモデルを紹介します。 XGboostとは XGboostは、アンサンブル学習がベースになっ…

Pythonでデータ分析:ランダムフォレスト

導入 前回、非線形的な効果を表現することの一例として、決定木回帰を紹介しました。 tekenuko.hatenablog.com決定木は、ざっくりとしたデータの特徴を捉えるのに優れています*1。しかしながら、条件がデータに依存しがちなため、過学習しやすいという欠点も…

Pythonでデータ分析:決定木

導入 前回、線形回帰からの拡張の一つとして、非線形項をモデルに加えることを紹介しました。 tekenuko.hatenablog.com 非線形性を表現する方法は他にも幾つかあり、その一つに、決定木という手法があります。今回は、回帰に決定木を用いた方法を紹介します…

Pythonでデータ分析:非線形効果を導入

導入 前回、ボストン近郊の住宅情報のデータを用いて線形回帰モデルを作りました。 tekenuko.hatenablog.com今回は、モデルの性能を上げる可能性の一つとして、多項式や指数・対数などの非線形効果をモデルに投入した場合の振る舞いを見ようと思います。 参…

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

導入 データ分析にて、最も基本的な回帰分析から始めていきます*1。回帰分析とは、説明したい変数(目的変数)とそれを説明するための変数(説明変数)の間の関係を求める手法です。機械学習の手法の区分としては、教師あり学習(解答に相当する教師データを…

Pythonでデータ分析:導入

背景 最近、業務でPythonを使っているのですが、不慣れな部分もありRレベルで自在に使いこなせていないと感じています*1。そのため、基本的な部分からおさらいをしていこうと考えました。 目標 試してみたいデータがあった場合に、簡単な分析に関してはとっ…

Rで粒子フィルタ:RcppSMCのテスト

経緯 Rで粒子フィルタ(逐次モンテカルロ)ってできるんだっけ、とふと思ったので少し調べてみました。すると、Rのパッケージでは、例えば https://cran.r-project.org/web/packages/SMC/SMC.pdf : {SMC} https://cran.r-project.org/web/packages/RcppSMC/R…

Rでスパースモデリング:Group Lasso

はじめに スパース推定の代表例として、Lasso(Least Absolute Shrinkage and Selection Operator)があります。 これは、正則化項としてノルムを加えるようなパラメータ推定法です。 このような正則化項を導入すると、大部分のパラメータは0に潰れてスパー…

RでTopological Data Analysis : パッケージ(順次更新予定)

今回は、RでTopological Data Analysis(TDA)を行うためのパッケージとその概要を紹介します。TDAのパッケージは、Rでもいくつか開発されています。 代表的なものは{TDA}、他にも{TDAmapper}、{phom}などあるようです。 本ブログでは、{TDA}を代表例として…

Topological Data Analysis : 導入

ブログを作ったまま1年以上放置していました(笑)。 最近、アウトプットをしていこうという機運が高まっていているため、 ブログを積極的に活用していきたいと思います。 近年、Topological Data Analysisという、 位相幾何学をベースにしたデータ分析の手…

ブログを始めてみた

はじめまして、tekenukoと申します。 今年の3月に素粒子理論で博士号を取得しました。 4月から民間企業でデータサイエンティスト(仮)として働きます。 大学院時代は主に超対称性を持つ素粒子模型の現象論を研究していました。 しかし、素粒子業界の現状を鑑…