verilog書く人

自称ASIC設計者です。どなたかkaggle一緒に出ましょう。

【機械学習】スタッキングのキホンを勉強したのでそのメモ

そもそもスタッキングとは

 機械学習において、単一の学習器をそのまま使うのではなく、複数の学習器を組み合わせることで、予測エラーを小さくする手法をアンサンブル学習といいます。

アンサンブル(混合学習手法の)には複数の学習器の平均や多数決を取るvoting、構成済の学習器の誤りを反映して次段の弱学習器を形成するboosting、そして初段の学習器の出力結果を次段の入力結果とするstacking(以下スタッキング)とよばれるものがあり、Kaggleなどのデータ分析コンペでは良く使われます。

今回はスタッキングについて勉強したので、それをまとめてみました。

おもにKaggle Ensembling Guide | MLWaveを参照しています。

 

続きを読む

Windows 7 32bitにXGBOOSTをインストール

 

環境:Windows 7 32bit

Visual Studio 2010 Express

Python 2.7

 

いろいろとショボい環境にてKaggle界のロトの剣ことXGboostを漸くインストールできましたのでメモ。


64bitの方がらくだと思います。

また、XGBOOSTはWindows 32bit環境では正式サポートはされていません。Linuxに移る、OSを64bitにする、といったより賢明な選択肢もあります。今ならWindows 10にすれば無料で64bitに移れます。その点をご理解の上で以下はお読みください。

続きを読む

SOINNで手書き数字MNISTをクラスタリングしてみた

最近ちょいちょいニュースで見かけるようになったSOINN株式会社の機械学習アルゴリズムSOINNを試しました。

 

コードはこちらのtrain_mnist.pyです

 

 

SOINNとはSelf-Organizing Incremental Neural Network(自己増殖型ニューラルネットワーク)の略で、クラスタリング(データ群の中から、近しいもののグルーピングを行う)などに使われる機械学習アルゴリズムです。

 

続きを読む

雑記chainerエンジョイ勢のためのトラブルシューティング

chainerで遊んでいてつまづいたところのメモ。

インストール編、動作速度編、ランタイムエラー編、動作するけど学習結果がうまくいかないよ編の四つです。

続きを読む

chainerで気軽にスケールできる事前学習器付きニューラルネット生成

のためのコードを書きました。

 

やりたいこと

1.スケーラブル/コンフィギュラブルなニューラルネット生成

ニューラルネットでは難しい問題を解かせるためには中間層の数を増やす必要があります、

 

chainerでは普通は↓こんな風にハードコーディングして層を増やしていきますが、

import chainer.functions as F
h1 = F.dropout(F.relu(self.model.l1(x)), train=train) h2 = F.dropout(F.relu(self.model.l2(h1)), train=train) h3 = F.dropout(F.relu(self.model.l3(h2)), train=train) FunctionSet(l1=F.Linear(784, 100), l2=F.Linear(100, 100), l3=F.Linear(100, 10),


そうではなく、[784,100,100,10]と配列を食わせるだけで、
784次元の入力層、100次元の第一中間層、100次元の第二中間層、10次元の出力層という風にネットを生成し気軽に層数、次元数を変えながら解析が進められるようにします。

続きを読む