1) LIBSVM (C/C++) のトレーニング セットの 1 行は次のようになります (スパース データ形式と呼ばれます)。
ラベル 1:値 1 2:値 2 .....
(各行は '\n' 文字で終了します)
1 クラスの場合でもラベル列を提供する必要があります。任意の数になる可能性があるというだけです。LIBSVM は、トレーニング プロセス中にそれを無視します。これにより、読み取りエラーが解消されます。
2) おもちゃのデータの正確さについて、「nu」と「g」のパラメーターで相互検証を行いましたか? これらは、1 クラス SVM モデルのハイパーパラメーターです。カーネルタイプをいじることもできます。トレーニング セット、テスト セット、または検証セットの 50% でしたか?
3) 1 クラス SVM は本質的に高次元で密度推定を行うため、トレーニング セットのすべてのポイントは超球上または超球内に収まる必要があり、それらはすべて単一のクラスに属している必要があります。ここを参照することをお勧めします。モデルの精度を推定するには、外れ値のないトレーニング セットを構築し、外れ値をテスト ポイント (円の内側に属するいくつかのポイントを含む場合もあります) としてフィードする方法を見つける必要があります。これが不可能な場合は、クラスタリングなどの異常値検出の他の手段に頼る必要があります。幸いなことに、文献には強力なクラスタリング アルゴリズムがあります。
4) データセットは 2 次元であるため、最初にそれらをプロットして、データセットと外れ値について理解することは難しくありません。