multi line fitting

ufcpp2008-01-20


昨日、2ch で、「最小二乗法でフィッティングできるようなデータ列が2種類混ざっているような場合、その2つの回帰直線を求めるような方法がないか」ってような質問が出てて、「クラスタリングと最小二乗法を組み合わせれば多分」というようなレスが付いてるのを見かけたんで、試しにやってみた。クラスタリングC# コード、昔書いたことあるし。

要するに、
回帰直線をクラスタ重心と考えて、
1. 各点に対して一番近い回帰直線を探して帰属情報を更新
2. クラスタごとに最小二乗法で回帰直線を求めなおす
の2つの処理を反復。

で、やってみた結果が添付の画像。これはうまくいけてる例だけど、やっぱ収束性は悪いなぁ。クラスタ重心が点の場合と違って、局所解に落ち込みやすい。
まあ、なんか、それを解決するような研究報告があるっぽいけど↓。
http://ci.nii.ac.jp/naid/110003276090/

ソースファイル等は以下のURLに。
http://ufcpp.net/study/dotnet/sample.html#fitting