Qulacs-Osaka / scikit-qulacs

scikit-qulacs is a library for quantum neural network. This library is based on qulacs and named after scikit-learn.
https://qulacs-osaka.github.io/scikit-qulacs/index.html
MIT License
21 stars 6 forks source link

スケーリングの処理を class に切り出す #140

Closed ikanago closed 2 years ago

ikanago commented 2 years ago

スケーリングのコードが重複しているため,class(あるいは関数) として切り出したほうがいいと思います.

ikanago commented 2 years ago

スケーリングはこのライブラリの本質ではないので,scikit-learn にあるやつを使うのもよさそうです: https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html#sklearn.preprocessing.MinMaxScaler

kosukemtr commented 2 years ago

classifier 内部のスケーリングは関数名とは全く違う処理をしていそうなので、共通化というより classifier のスケーリング関数の名前変更が必要そうです

WATLE commented 2 years ago

関数名とは全く違う処理とはどういうことですか? do_x_scaleのパラメーターがtrueなら_min_max_scalingを適用するののどこが変ですか?

kosukemtr commented 2 years ago

do_x_scale はいいと思います。get_y_scale とか do_y_scale , あと rev_y_scale が変というだけです。 https://github.com/Qulacs-Osaka/scikit-qulacs/blob/478ac8218a0f7f3c3b38f1661b806ffa8778ca77/skqulacs/qnn/classifier.py#L194 https://github.com/Qulacs-Osaka/scikit-qulacs/blob/478ac8218a0f7f3c3b38f1661b806ffa8778ca77/skqulacs/qnn/classifier.py#L207 https://github.com/Qulacs-Osaka/scikit-qulacs/blob/478ac8218a0f7f3c3b38f1661b806ffa8778ca77/skqulacs/qnn/classifier.py#L219

WATLE commented 2 years ago

one-hotなどの内部表現にする動作はスケーリングではないということですか?確かにそうです..

ikanago commented 2 years ago

scikit_learn に one-hot 化と逆変換をやるやつがあるのでその辺の処理は自前でやらなくてよさそうです https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html

WATLE commented 2 years ago

これ実装しますs

WATLE commented 2 years ago

one-hotすごいな ほかにもこういうすごいのあるかも scikit_learnのPreprocessing に目を通します

WATLE commented 2 years ago

one-hotと逆変換はできても、softmaxと確率表示ができないのが気になります。 それと、入力形式が変わってくるから、微妙に破壊的変更になるのもポイントです (たとえば、元データで...?) 何やってるのかわかんなくなってきました

ikanago commented 2 years ago

149