furukawa-laboratory / somf

Python codes of SOM-family launched by Furukawa-laboratory, Kyushu institute of technology
5 stars 2 forks source link

sklearnのBaseEstimator的なBaseManifoldModelingクラスの作成 #142

Open ae14watanabe opened 4 years ago

ae14watanabe commented 4 years ago

target code 対象となるコード 明確に分かっているならば書く

Is your feature request related to a problem? Please describe. この機能追加リクエストは何かの問題に関連していますか? SOMやUKRで動作が共通するメソッドがあるはずなのに、現状だとUKRもSOMもそれぞれ独立して作りこむ必要がある

Describe the solution you'd like 望む解決策の説明 sklearnのBaseEstimator的な、これを継承しておけば共通の機能の利用やそのクラスごとの修正が出来る、というクラスの作成。名称としてはBaseManifoldModelingBaseUnsupervisedRegression?

TetraMiyazaki commented 4 years ago

おおおおお.これは....エンジニアっぽい! 勉強になりそうですねー!

ae14watanabe commented 4 years ago

ほんとはこれに animation_learning_processとかもメソッドとして追加すべきなんですよね。

TetraMiyazaki commented 4 years ago

あーscipyとかはそうなってるんですか?

とりあえず,描画のほうもこういうのを継承したほうがいいんでしょうねー

ae14watanabe commented 4 years ago

scikit-learnはBaseEstimatorっていう「うちのライブラリに準拠したモデル作りたいならこれを継承してもらいますからね!」みたいなクラスがあるんですよ。この場合だと回帰も分類も含むめちゃ抽象化されたクラスなので具体的なメソッドとかは作り込んでないですけど、共通する機能についてはある程度作ってあるって感じ。get_paramsとか。こういうやつの多様体モデリング版があれば良いなと思って。 https://qiita.com/roronya/items/fdf35d4f69ea62e1dd91

ae14watanabe commented 4 years ago

SOMもUKRも、果ては現在研究室で開発中の手法も問題設定は同じ(=同じ描画をしたくなる)訳で、モデルごとに個別に作りこむのだるいよネェという。 まぁ描画のモジュールを別に作ればいいんやけど、それは #117 で言ってるような理由からやりたくないなぁという。

ae14watanabe commented 4 years ago

DataSpaceとかLatentSpaceみたいなクラスを別に作って、ManifoldModelingではそのインスタンスをメンバーとして持ってる、みたいな構造にした方が描画する時の使い回しとかはできる気がする。

ae14watanabe commented 4 years ago

構造体みたいにしないと描画作り込む時にややこしすぎて…