2017-02-09 4 views
2

KSVD algorithmで学習した辞書を使用して信号の疎なコーディングを得るにはsklearns OrthogonalMatchingPursuitを使用しています。しかし、フィットの間、私は次のランタイム警告を受け取ります:sklearnsの "辞書の線形依存"例外OMP

/usr/local/lib/python2.7/dist-packages/sklearn/linear_model/omp.py:391: RuntimeWarning: Orthogonal matching pursuit ended prematurely due to linear 
dependence in the dictionary. The requested precision might not have been met. 

    copy_X=copy_X, return_path=return_path) 

これらのケースでは、結果は実際満足できるものではありません。私はこの警告の要点を得ることはできません。なぜなら、あまりにも多くのコーディングでは、オーバーコンプリート辞書を持つことが一般的であるため、その中に線形の依存関係もあります。それはOMPの問題ではありません。実際には、辞書が正方行列の場合にも警告が発生します。

この警告は、アプリケーションの他の問題も指摘していますか?

答えて

1

問題は、それが非常に小さい大きさの数字が含まれてい

omp = OrthogonalMatchingPursuit(n_nonzero_coefs=target_sparsity) 
omp.fit(D, y) 

にデータベクトルyにありました。私がyと同様にDを正規化すると、フィットは予想される精度で機能します。

+0

データを正規化した方法を説明しますか?特定の範囲にスケールしましたか? – EdgeRover

+0

私は直進列正規化を適用した。すなわち、辞書「D」の各列ならびにデータベクトル「y」はL2ノルムが1である。 – obachtos

関連する問題