0

私はデータ マイニングの分野に比較的慣れていないので、Weka を使って実験しています。

私は、顧客と顧客が購入したアイテムに関連するほぼ 8000 のレコードで構成されるデータセットを持っています。このデータ セットの 58% には、「性別」属性の値がありません。

私が持っている他のデータに基づいて、欠落している性別の値を見つけたいです。

私は最初、トレーニング セットを使用してモデルを構築する Weka の分類アルゴリズムを使用して、これを行うことができると考えました。オンラインで見た例に基づいて、欠損値のないデータの 60 ~ 80% で構成されるトレーニング セットを使用して、Weka で利用可能なほぼすべてのアルゴリズムでこれを試しました。これにより、希望よりも低い精度率が得られました (使用するアルゴリズムに応じて 80 ~ 86%)。

私はこれを正しく行いましたか?この精度を向上させる方法はありますか?さまざまな属性、データのさまざまな前処理などを使用して実験しました。

また、完全なデータセットで ReplaceMissingValues フィルターを使用して、欠損値がどのように処理されるかを確認してみました。ただし、すべての欠損値を「女性」に変更しただけで、明らかにそうではありません。そのため、自分の状況でこのフィルターを使用する必要があるかどうかも疑問に思っています。

4

1 に答える 1

2

あなたは正しい方法でそれについて行ったように聞こえます。ReplaceMissingValuesフィルターは、欠落している値を、私が考える最も頻繁な非欠落値に置き換えるため、この場合は必要ありません。

性別予測子の真の精度を把握するためのより良い方法は、トレーニング/テスト分割の代わりに相互検証を使用することです (Weka には別のオプションがあります)。80 ~ 86% は低いように見えるかもしれませんが、ランダムな推測では約 50% しか得られないことに注意してください。パフォーマンスを向上させるには、パフォーマンスの高い分類器を選択し、パフォーマンスが向上するまでそのパラメーターを試します。これは非常に労力がかかる可能性があります (もちろん、チューニングに自動化された方法を使用することもできます。たとえばAuto-WEKAを参照してください) が、パフォーマンスを向上させる唯一の方法です。

選択したアルゴリズムを別の機能選択ステップと組み合わせることもできます (Weka には、このための特別なメタ分類子があります)。これによりパフォーマンスが向上する可能性がありますが、ここでも実験して、自分に適した特定の構成を見つける必要があります。

于 2013-04-12T18:25:09.210 に答える