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

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

多重共線性があるときにL2正則化項を加えると解けるようになることのざっくりとした説明

動機 回帰モデル構築の際、特徴量とデータの関係によってはうまく機能しない(解けない)ことがあります。たとえば、考えているデータ数に対して特徴量の数が非常に多い場合や、特徴量間に強い相関(多重共線性)がある場合です。このような場合に、正則化項…

Ubuntu16.04LTSにSparkを入れる

そろそろSpark弱者を抜け出したい。 経緯 データ処理や分析の一つの手段として、Sparkをある程度できるようにしたい、と思ってはいるのですが、なんだかんだ腰を据えて…という感じになかなかならない日々が続いていました。おかげさまであんまり使いこなせて…

Ubuntu 16.04LTSにTexを入れる

ちょっとした自分用メモです。 経緯 最近、個人でGPU環境などを持っておきたいと思って、自宅のPCを新調しました。そのついでにデュアルブートでUbuntu 16.04 LTSを入れ、そこで諸々環境を構築しています。それとは独立に最近、個人的な事情でTeX環境も整備…

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

前回に続き、NN論文を肴に酒を飲む会で発表しました。tfug-tokyo.connpass.com今回の論文のテーマは、強化学習でした。DQN周りの発展を勉強するいい機会だと思い、炎上ラーニング戦法で発表を申し込みました。私が選んだ論文は、Google DeepMindが昨年の10月…

PytorchでDeep Learning : CPU onlyでインストールする際のメモ

Deep Learningのフレームワークの一つにPytorchがあります。Facebookを始めとして、様々な企業や大学が開発に携わっているようです。 PytorchはPython上でDeep Learningを行うためのフレームワークです。Preferred Networksが開発しているChainerからforkさ…

Pythonでデータ分析:Auto-sklearnについてのメモ

導入 最近、Meta Learningという考えに少し興味を持ちました。もともとは認知科学発祥の考えですが、機械学習の文脈だと ある決まったバイアス,すなわち仮説空間の中から,事例に応じて,適切な仮説を獲得する普通の学習器をベース学習器という.その上位で…

Pythonでデータ分析:imbalanced-learnで不均衡データのサンプリングを行う

導入 クラス分類、例えば0:負例と1:正例の二値分類を行う際に、データが不均衡である場合がたびたびあります。例えば、クレジットカードの取引データで、一つの取引に対して不正利用かどうか(不正利用なら1、それ以外は0)といった値が付与されているカラ…

Dynamic Routing Between Capsulesを読む

前提 この記事はDeepLearning論文紹介 Advent Calendar 2017 - Adventarの12月10日の記事です。Advent Calendarで記事を書くのは初めてですが、頑張ります。理解が足りなくて非常にわかりづらい記事になっていると思いますので、今後もちょくちょく修正が入…

Rでスパースモデリング:Elastic Net回帰についてまとめてみる

導入 回帰モデル構築の際、汎化性能を向上させるために正則化の手法がたびたび用いられます。これは、考えているデータ数に対して特徴量の数が非常に多い場合や、特徴量間に強い相関(多重共線性)がある場合に有効な方法となっています。このような場合に、…

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

導入 スパース推定の代表的な手法として、Lassoがあります。様々なシーンで活用されているLassoですが、Lassoは変数選択の一致性が保証されないという欠点があります。Adaptive Lassoは、その欠点を補う形で提唱されている手法となっています。こちらは、あ…

トポロジカルデータアナリシス:TDAパッケージを使ってみる

導入 とあることがきっかけで、とっても久しぶりにRでTDA(トポロジカルデータアナリシス)をしてみました。だいぶいろんなことを忘れていたので、単純な例を使ったメモを残しておきます。 トポロジカルデータアナリシスとは とてもざっくりいうと、位相幾何…

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)に関する紹介をします。今回は、図形の「穴」を数学的に表現するための準備をします。具体的に表現していくのは次回以降になります。 振り返り これまで、データから図形を見立てる方法を紹介してきました…