渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

NN Playgroundに出てくる「渦巻きサンプルの二値分類」を学習器を変えながら試してみる(追記あり)

A Neural Network PlaygroundというDeep Learningのパラメータを変えながらその挙動を見て学べる(楽しめる)サイトがTensorFlowプロジェクトからの提供であるんですが、そのサンプルデータセットの4番目に「渦巻きサンプル」(別名「スイスロール」)があります。以下の画像の右下のやつです。

f:id:TJO:20170826161104p:plain

これってDeep NNでやろうとすると意外としちめんどくさいんですが、確か杉山先生のイラスト機械学習本だとガウシアンカーネルSVMでサクッと分類できるみたいに書かれていた気がいたしまして。

ということで、ちょうど今ネタ切れなのもあるのでちょっとした余興としてこのデータの二値分類をやってみようと思います。なおスペースの都合上試行錯誤した部分自体は割愛して、どんなパラメータにしたらどんな風にダメだったかを簡単にコメントするに留めておきますので、悪しからずご了承ください。。。

続きを読む

不均衡データをundersampling + baggingで補正すると汎化性能も確保できて良さそう

弊社のランチゲストにお招きしたことのある[twitter:@tmaehara]さんが、こんなことをツイートしておられました。

不均衡(imbalanced)データのクラス分類における補正方法については、代表的な手法であるclass weight(損失関数に対して負例のコストを負例と正例の割合に応じて割り引くもの)のやり方を以前このブログでも取り上げたことがあります。

ということで、ほんの触り程度ですがやってみようと思います。ちなみに計算負荷とか自分の手間とか色々考えて、基本的にはrandomForest {randomForest}でしかやりません。他の分類器については皆さんご自身でお試しくださいm(_ _)m

続きを読む

トレンド・季節調整付き時系列データの回帰モデルを交差検証してみる

これは実は既に元ネタのあるテーマです。

個人的にはトレンド・季節調整付き時系列データの回帰モデルをやる場合はほぼ例外なくベイジアンモデリングで回すんですが、一般にベイズ系のモデルは例えばWAICやWBICのような情報量基準でモデルの汎化性能を推定することでモデル選択することができます。ところが、トレンド・季節調整付き時系列データのように回帰部分の尤度だけでは表せない、強い自己相関のある部分が大きいデータの場合は、モデル全体のWAICやWBICを算出する方法が(まだ?)ありません。


ということで交差検証(CV: cross validation)大好き人間の僕としては、普段は適当に「学習データ:古い方から80% / 検証データ:新しい側の残り20%」みたいなholdout CVしかやっていないんですが、当然ながらこれだけではholdoutの取り方によって差がつくため、どうしても恣意性が残ってしまいます。


そんな疑問を持っている時に、人から紹介されたのが上記のリンク先記事。こちらでは"sliding window"を用いたCV方法を提案しているということなので、これを実際に自分でクソコード書きながらやってみようかと思います。

続きを読む