0

csv 形式の大きな (150000) データセットがあります。データセットには、一部のフィールドにノイズとエラーがあります。このファイルを読み込んで、svm(with libsvm) で分類したいです。クリーンで使用可能なデータのサブセットを読み取る必要があります。クリーンでノイズの多いフィールドがない 10000 個のランダム レコードを選択します。ノイズのあるフィールドの値は 0 または NA です。matlabでこれを行うにはどうすればよいですか?

4

1 に答える 1

0

適切な MATLAB ソリューションが必要な場合は、カスタム ファイルリーダーを作成する必要があります。しかし、それはおそらく努力する価値はありません。

grep私が考えることができる最速の解決策は、ファイルを MATLAB にロードする前に、別のツール ( など) を使用してすべてのエラー行を除外することcsvreadです。がある場合はgrep、「NA」を使用して行を削除できます。

cat file | grep --invert-match NA > file.filtered

csvreadMATLAB の関数で file.filtered を問題なく読み取ることができます。MATLAB 内から簡単に 0 の行を取り除くことができます。

于 2013-05-06T08:24:35.727 に答える