まず、私はデータ サイエンスのバックグラウンドを持たないプログラマーなので、統計に関する実用的な知識はかなり限られています。
内部データセット全体でレコードを照合するためのエンティティ マッチング ツールを作成しています。これらのドキュメント*に記載されている確率的マッチング手法を使用したいと考えています。期待値の最大化 (EM) を使用した一致/不一致の重みの導出を除いて、この手法がどのように機能し、どのように適用するかについてよく理解しています。
double[][]
具体的には、レコードペアを必要な形式にエンコードする方法が不明です
私が利用できる EM 実装は、Apache Common Math MultivariateNormalMixtureExpectationMaximizationです。
具体的な例を次に示します。会社のレコードを照合します。
会社には と の 2 つのフィールドがname (string)
ありcountry (enum)
、EM を使用して m と u の確率的重みを生成したいと考えています。double[][]
EM にフィードする各フィールドのデータセットを作成するにはどうすればよいですか?
の場合name
、それは文字列なので、いくつかの文字列類似方法 (編集距離、音声インデックスなど、詳細はここでは関係ありません) を使用して、おおよその一致/不一致があります。
の場合country
、私のデータは正規化されているため、一致は完全に一致した場合にのみ発生します。ただし、特定の国は過小評価されています。したがって、過小評価されている国のレコードは、過大評価されている国のレコードよりも高い重みを持つ必要があります。
double[]
内側の平均/表現の値は正確には何ですか?- いくつのエントリ/列が必要ですか?
- レコードを にエンコードするにはどうすればよい
double[]
ですか?
* EM を使用した確率的マッチング手法を説明するドキュメント