PCAアルゴリズムを使用した特徴選択にWekaを使用しようとしています。
私の元の機能スペースには、2700のサンプルで最大9000の属性が含まれています。
次のコードを使用して、データの次元を削減しようとしました。
AttributeSelection selector = new AttributeSelection();
PrincipalComponents pca = new PrincipalComponents();
Ranker ranker = new Ranker();
selector.setEvaluator(pca);
selector.setSearch(ranker);
Instances instances = SamplesManager.asWekaInstances(trainSet);
try {
selector.SelectAttributes(instances);
return SamplesManager.asSamplesList(selector.reduceDimensionality(instances));
} catch (Exception e ) {
...
}
しかし、12時間以内に実行を終了しませんでした。メソッドにとどまっていselector.SelectAttributes(instances);
ます。
私の質問は次のとおり です。wekaのPCAには非常に長い計算時間が予想されますか?または、PCAを誤って使用していますか?
長い実行時間が予想される場合: PCAアルゴリズムを調整して、
はるかに高速
に実行するにはどうすればよいですか?代替案を提案できますか?(+サンプルコードの使用方法)?
そうでない場合:
私は何を間違っているのですか?wekaを使用してPCAを呼び出し、次元を削減するにはどうすればよいですか?
更新:コメントは、予想よりもはるかに時間がかかっているという私の疑いを裏付けています。
知りたいのですが、JavaでPCAを取得するにはどうすればよいですか?wekaまたは代替ライブラリを使用します。
これに報奨金を追加しました。