行列の所与、非負行列因子分解(NMF)は、2つの非負行列発見及び(すなわち、すべての要素と)として分解行列を表します。
NMFで数値を推定する一般的な方法はありますか?たとえば、そのためにクロス検証をどのように使用できますか?
行列の所与、非負行列因子分解(NMF)は、2つの非負行列発見及び(すなわち、すべての要素と)として分解行列を表します。
NMFで数値を推定する一般的な方法はありますか?たとえば、そのためにクロス検証をどのように使用できますか?
回答:
非負行列因子分解で最適な潜在因子数を選択するには、交差検定を使用します。
あなたが書いたように、NMFの目的は、低次元見つけることであると再構成誤差最小化し、すべての非負の要素を持つ。 1つの要素、たとえばを除外し、1つの欠損セルで結果の行列のNMFを実行するとします。これは、すべての非欠損セルで再構成エラーを最小化するおよび見つけることを意味します
これが完了すると、[ W H ] a bを計算することにより、除外された要素を予測し、予測誤差e a b = (V a b − [ W H ] a b)2を計算できます。この手順を繰り返して、すべての要素V a bを一度に1つずつ除外し、すべてのにわたって予測誤差を合計できます
NMFは各除外値に対して繰り返す必要があるため、計算コストが高くなる可能性があり、プログラムするのも難しい場合があることに注意してください(欠損値でNMFを実行するのがいかに簡単かによって異なります)。PCAでは、行全体を除外することでこれを回避できます(これにより、計算が大幅に加速されます)。主成分の数を決定するためにPCAの相互検証を実行する方法の応答を参照してください。、しかし、これはここでは不可能です。
もちろん、ここでは交差検証のすべての通常の原則が適用されるため、一度に多くのセルを除外することができます(単一のセルではなく)、および/またはすべてのセルをループする代わりにランダムなセルのみに対して手順を繰り返すことができます。どちらのアプローチもプロセスの加速に役立ちます。
編集(2019年3月):@AlexWilliamsによるこの非常に素晴らしいイラスト付きの記事を参照してください:http://alexhwilliams.info/itsneuronalblog/2018/02/26/crossval。Alexは、欠損値のあるNMFに対してhttps://github.com/kimjingu/nonnegfac-pythonを使用します。
私の知る限り、2つの良い基準があります:1)共表現相関係数、2)ランクのセットのランダム化されたデータに対する残差平方和の比較(名前があるかもしれませんが、覚えていない)
コフェネティック相関係数: ランクごとにNMFを数回繰り返し、結果がどの程度似ているかを計算します。言い換えれば、初期シードがランダムであると仮定すると、識別されたクラスターはどの程度安定しています。共係数が低下する前に最高のKを選択します。
ランダム化されたデータに対するRSS 次元削減アプローチでは、元のデータ(RSSで推定)と比較して、常に情報が失われます。次に、Kを増やすためにNMFを実行し、元のデータセットとランダム化されたデータセットの両方でRSSを計算します。Kの関数でRSSを比較すると、元のデータセットのKが増加するとRSSは減少しますが、これはランダム化されたデータセットの場合は少なくなります。両方の勾配を比較すると、交差する場所にKが存在するはずです。言い換えれば、ノイズにさらされる前にどれだけの情報を失うことができるか(=最高のK)。
私が十分に明確であったことを願っています。
編集:それらの記事を見つけました。
1.ジャン-P。ブルネット、パブロタマヨ、トッドR.ゴラブ、ジルP.メシロフ。マトリックス分解を使用したメタ遺伝子と分子パターンの発見。米国科学アカデミー論文集、101(12):4164-4169、2004年。
2.Attila FrigyesiとMattias Hoglund。複雑な遺伝子発現データの分析のための非負行列因子分解:臨床的に関連する腫瘍サブタイプの識別。Cancer Informatics、6:275-292、2008。