python - Max-Min 归一化范围相关的混淆
问题描述
我正在使用 UCI 机器学习银行数据集进行数据预处理。URL我使用 Max-Min Normalization 方法来规范化数据。
据我所知,此方法将数据范围重新调整为 [0,1]。
原始数据看起来像
应用数据标准化后
df.duration = df.duration.apply(lambda v:((v df.duration.min())/df.duration.max()-df.duration.min()))
现在数据看起来像
在对持续时间列进行标准化后,所有数据都变为负数。但是根据 Max-Min 归一化数据应该在 (0,1) 之间。因此,哪种归一化在这里提供更好的性能?
我很困惑,因为我看了这个视频来获取知识。根据 0,1 之间的视频时长列。然而,当我在我的机器上运行相同的代码时,我得到了一些不同的东西。
解决方案
我认为您需要更改diff = df['balance'].max() - df['duration'].min()
. diff = df['balance'].max() - df['balane'].min()
您正在diff
从不同的变量进行计算。
还要审查实施。根据sklearn,正确的实现是:
X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min
放在一起:
# Compute min and max just once
MIN = df['duration'].min()
MAX = df['duration'].max()
# Max Min Scaler function
def MinMaxScaler(X):
return (X - MIN) / (MAX - MIN)
# Scale the duration variable
df['duration'] = df['duration'].apply(MinMaxScaler)
推荐阅读
- c++ - 将文本文件中的 3x3 数组读入格式正确的 2d 矢量
- api - 使用来自 ansible playbook 的查询过滤 Splunk 响应
- javascript - 我如何将所有代码包装在 imageBackground
- swiftui - 在 SwiftUI 中使用 Toggle 禁用 Slider 会导致样式问题
- python - 巨大的 Numpy 列表 - 如何获得 n 位?
- angular - 在模板中获取异步结果并用作普通变量?
- javascript - Javascript不会显示消息
- python - 如何在熊猫数据框中指定没有任何标题的列名的数据类型?
- ios - LazyVGrid 中的 SwiftUI NavigationLink 选择随机索引
- react-native - React Native 调用异步函数并在另一个异步函数中使用 return