私は、Rのgbmパッケージを使用していくつかの大きなデータセットを処理しています。予測子行列と応答ベクトルの両方がかなりスパースです(つまり、ほとんどのエントリがゼロです)。ここで行ったように、この疎性を利用するアルゴリズムを使用して決定木を構築したいと思っていました。その論文では、私の状況と同様に、ほとんどのアイテムは多くの可能な機能のほんの一部しか持っていないため、データで明示的に示されていない限り、アイテムに特定の機能がないと想定することで、多くの無駄な計算を回避できました。私の希望は、この種のアルゴリズムを使用して同様の高速化を実現できることです(そして、予測精度を向上させるために、ブースティングアルゴリズムをラップします)。
彼らは自分のコードを公開していないようだったので、この場合に最適化されたオープンソースのパッケージまたはライブラリ(任意の言語)があるかどうか疑問に思っていました。理想的には、RのMatrix
パッケージからスパース行列を直接取得できるものを望みますが、取得できるものは取得します。
私は周りを見回しました、そしてこの種のものはそこにあるはずです:
化学者はこの問題に頻繁に遭遇するようです(上でリンクした論文は、新しい薬物化合物を見つけることを学ぶことに関するものでした)。ただし、そのうちの1つを転用することもできます。
ドキュメント分類は、スパースフィーチャスペースからの学習が役立つ領域でもあるようです(ほとんどのドキュメントにはほとんどの単語が含まれていません)。たとえば、このペーパーでは、C4.5(CARTのようなアルゴリズム)のスパース実装への斜めの参照がありますが、コードはありません。
メーリングリストによると、WEKAはスパースデータを受け入れることができますが、上記でリンクした論文の方法とは異なり、WEKAはCPUサイクルの浪費を回避するという点で実際にそれを利用するように最適化されていません。
前もって感謝します!
glmnet
、e1071::svm
どちらもスパースMatrix
オブジェクトをサポートしています。 GAMboost
そしてGLMboost
(パッケージからGAMboost
)同様に可能性があります。