私は過去数時間これを理解しようとしていましたが、私は非常に多くの問題を抱えています。sklearnのMinMaxScalerを使いたいです。
式は次のようなものです
Xnorm = X-Xmin / Xmax-Xmin
その式をいくつかの配列位置に適用したいのですが、次のような逆式も適用する方法がわかりません。
Xnorm = Xmax-X / Xmax-Xmin
私の試み:配列の1番目と3番目の値、および配列の2番目の値の標準化を実行したい上記の式から逆標準化を取得したい
X = np.array([[-0.23685953, 0.04296864, 0.94160742],
[-0.23685953, 1.05043547, 0.67673782],
[0.12831355, 0.16017461, 0.27031023]])
from sklearn import preprocessing
minmax_scale = preprocessing.MinMaxScaler().fit(X)
X_std = minmax_scale.transform(X.iloc[:,np.r_[1,3])
数式を使用して特定の列のXnormを計算するタスク:-
Xnorm = Xmax-X / Xmax-Xmin
その特定の列の値の符号を逆にして、その列の基本的な標準化を適用すると、解決できます。
列の最大値がA、最小値がBの場合、すべての値に-1を掛けると、新しい最小要素の絶対値は| A |になります。
(したがって、分子は{-1 * X --- -1 * A} == {A --X}として計算されます)、
分母の相対的な違いは同じままです。
テストケースにロジックを実装する:-
import numpy as np
X = np.array([[-0.23685953, 0.04296864, 0.94160742],
[-0.23685953, 1.05043547, 0.67673782],
[0.12831355, 0.16017461, 0.27031023]])
from sklearn import preprocessing
X[:, 1] = -1*X[:, 1]
minmax_scale = preprocessing.MinMaxScaler().fit(X)
X_std = minmax_scale.transform(X)
X_stdを印刷すると、次のようになります:-
array([[0. , 1. , 1. ],
[0. , 0. , 0.60543616],
[1. , 0.8836627 , 0. ]])
これは、列2の値が目的の値、つまり提案された逆標準化式を使用して計算された値であることを示しています。
これがお役に立てば幸いです。
尋ね続け、成長し続けます:)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加