sklearn中的MinMax Scaler不会将列的值标准化为0到1之间的值

时间:2016-11-26 01:59:10

标签: python scikit-learn knn sklearn-pandas

我正在使用python中的KNN算法,并尝试使用MinMaxScaler对我的数据帧进行规范化,以将数据转换为0到1之间的范围。

然而,当我返回输出时,我观察到一些列min / max输出超过1.我错误地使用了它吗?

以下是我返回的最小值/最大值的片段: enter image description here

使用的代码是:

kdd_data_10percent = pandas.read_csv("data/kdd_10pc", header=None, names = col_names)
features = kdd_data_10percent[num_features].astype(float)#num_features contain the specific column labels i wish to extract    
features.apply(lambda x: MinMaxScaler().fit_transform(x))

功能包含包含列的数据框(例如wrong_fragment,urgent ...)。

如果我理解正确,在执行MinMaxScaler之后,返回的结果将确保每个列值将被标准化为仅0 -1的范围。我是对的吗?

1 个答案:

答案 0 :(得分:0)

你是对的,MinMaxScaler会将你的数据从0扩展到1. 0将是你的列的最小值,1是最大值。

Apply函数实际上不会转换您的功能,它只返回带有转换列的数据帧。 因此,您需要影响对功能的转换:

features = features.apply(lambda x: MinMaxScaler().fit_transform(x))