オブジェクト間の距離を特定のしきい値まで知っているマニホールド学習/非線形次元削減問題があり、それを超えると、距離が「遠い」ことがわかります。また、距離の一部が欠落している場合もあります。sklearn.manifold1次元表現を見つけるタスクを実行するために使用しようとしています。自然な表現は、「遠い」距離infを として、欠落した距離を として表すことnanです。
ただし、現在、 の多様体学習関数に与えられた距離行列のと の値scikit-learnはサポートされていないようです。naninfsklearn.manifoldValueError: Array contains NaN or infinity
これには概念的な理由がありますか?inf非メトリック MDS など、一部の方法は に特に適しているようです。また、他の言語でのこれらのメソッドの一部の実装では、欠損値/ inf 値を処理できることも知っています。
使用する代わりに、inf「遠い」値を非常に大きな数に設定することを検討しましたが、これが結果にどのように影響するかはわかりません.
アップデート:
のコードを掘り下げて、コードのsklearn.manifold.MDS._smacof_single()一部とそれを言っているコメントを見つけました"similarities with 0 are considered as missing values"。これは、欠損値を指定する文書化されていない方法ですか? これはすべてのマニホールド関数で機能しますか?