匿名のスケーリングされた数値予測子を使用してnumer.ai競争にアプローチする方法は?


9

Numer.aiはここしばらくの間存在しており、それに関するWebでの投稿やその他の議論はほとんどないようです。

システムは随時変更され、今日のセットアップは次のとおりです。

  1. トレーニング(N = 96K)およびテスト(N = 33K)で、[0,1]の連続値とバイナリターゲットを持つ21個のフィーチャ。
  2. データはクリーンで(欠損値なし)、2週間ごとに更新されます。(テストセットの)予測をアップロードして、ログの損失を確認できます。テストデータの一部はライブデータでもあり、適切な予測に対して報酬が支払われます。

私が議論したいこと:

機能は完全に匿名であるため、私たちができる機能エンジニアリングはそれほど多くはないと思います。だから私のアプローチは非常に機械的です:

  1. これに触発され、分類アルゴリズムを使用して、私のテストデータに最も適合するトレーニングデータを除外します。
  2. いくつかの素晴らしい前処理を理解する
  3. 素晴らしい分類アルゴリズムを訓練する
  4. それらのアンサンブルを構築します(スタッキングなど)。

具体的な質問:

ステップ1について:そのようなアプローチの経験はありますか?トレーニングサンプルがテストに属する確率(通常は0.5未満)を注文し、最大のK確率を取得するとします。どのようにKを選びますか?私は15Kで試しましたが、主にステップ3のトレーニングを高速化するために小さなトレーニングデータセットを用意しました。

ステップ2に関して:データはすでに0,1スケールです。(PCAのような)線形変換を適用すると、このスケールが壊れます。そのような数値データがあり、これが実際にそうであることがわからない場合、前処理で何を試みますか?

PS:numer.aiが給料を支払っているので、これについて議論している人々が私にお金を稼ぐのを助けることができることを私は知っています。しかし、これは公開されているので、これは誰かを助けるでしょう...

PPS:今日のリーダーボードには興味深いパターンがあります。ログ損失が0.64xxの上位2つ、次に0.66xxの3位、そしてほとんどの予測子は0.6888xに達しています。

したがって、非常に小さなトップフィールドと適度に成功した人(私を含む)がたくさんいるようです。

回答:


2

私はアプローチを見て、5k、10k、15kなどの範囲を試してKを選択し、最良の結果が入る範囲を調査します。たとえば、最良の結果が15kであるとすると、13、14 15、16、17など。

これまでのところ、前処理が有効であることはわかりません。

コメントに答える:

LogisticRegression、SVM、ニューラルネットワーク、RandomForests、多項式NB、エクストラツリーを使用してみました。sklearnの実装を使用するニューラルネットワークを除くすべて。NNのPyBrain。


もう少し詳細を追加できますか?はい、さまざまなサイズのトレーニングデータを試します。どの前処理を試しましたか?どの分類子?ありがとう!
リチャード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.