sklearn.preprocessing.MinMaxScaler
直的一組
std = (每數- 最小) / (最大- 最小)
scale = std * (最大-最小) + 最小
fit 完 可讀取的陣列資料
Attribute:
min_ data_min_/data_range_
scale_ (feature_range_max-feature_range_min)/(max-min)
data_min_ 資料最小值
data_max_ 資料最大值
data_range_ 資料最大值-資料最小值
code:
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
data = [[1,2,3]
,[9,5,4]
,[7,6,8]
,[12,8,9]]
# 直的一組
# min_ data_min_/data_range_
# scale_ (feature_range_max-feature_range_min)/(max-min)
# data_min_ 資料最小值
# data_max_ 資料最大值
# data_range_ 資料最大值-資料最小值
# X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
# X_scaled = X_std * (max - min) + min
minmaxscaler = MinMaxScaler(feature_range=(0, 1))
minmaxscaler.fit(data)
print("MinMaxScaler min_: \n", minmaxscaler.min_)
print("MinMaxScaler scale_: \n", minmaxscaler.scale_)
print("MinMaxScaler data_min_: \n", minmaxscaler.data_min_)
print("MinMaxScaler data_max_: \n", minmaxscaler.data_max_)
print("MinMaxScaler data_range_: \n", minmaxscaler.data_range_)
print("MinMaxScaler: \n",minmaxscaler.fit_transform(data))
output:
MinMaxScaler min_:
[-0.09090909 -0.33333333 -0.5 ]
MinMaxScaler scale_:
[0.09090909 0.16666667 0.16666667]
MinMaxScaler data_min_:
[1. 2. 3.]
MinMaxScaler data_max_:
[12. 8. 9.]
MinMaxScaler data_range_:
[11. 6. 6.]
MinMaxScaler:
[[0. 0. 0. ]
[0.72727273 0.5 0.16666667]
[0.54545455 0.66666667 0.83333333]
[1. 1. 1. ]]
以第一行的 7 為例
(7-1) / (12-1) = 0.545454
source code
沒有留言:
張貼留言