【问题标题】:Dividing each row in a dataframe by a vector in Python将数据框中的每一行除以 Python 中的向量
【发布时间】:2021-03-04 03:40:05
【问题描述】:

我在逻辑回归之前对我的数据进行特征缩放。

在我尝试将列除以 max_min 向量之前,一切都很完美。它似乎在每一列中都有效,但在年龄列中无效,但我似乎找不到原因。

我之前已经拆分数据进行测试和训练,下面我正在尝试扩展 X_train 数据。

# Working out the min value for each column and subtracting this from each row in the data
X_train_min = np.array(X_train0.min())
X_train0.sub(X_train_min.squeeze(), axis=1)

从上面的代码中,我得到一个表,其中每个值都减去了其列的最小值,这是正确的。 输出: output

# Working out the max value for each column and the difference between the max and min values
X_train_max = np.array(X_train0.max())
max_min = np.array(X_train0.max()) - np.array(X_train0.min())
print(max_min)

输出:

[   56     1     3     2     4     3 18174    56     7]

这是我遇到问题的地方:

# Dividing each row in the data by the difference between the max and min values of its column
X_train0.div(max_min, axis=1)

我已经获得了一个表格,其中每个值都除以向量,除了第一列“年龄”,其中数字不对应于除法。 输出: output

【问题讨论】:

    标签: python python-3.x dataframe vector feature-scaling


    【解决方案1】:

    min 已被减去时,您正在除以max - min。您只需要除以新的最大值即可:

    max_min = np.array(X_train0.max())
    

    【讨论】:

    • 我找到的特征缩放公式是 (x-min)/(max-min)
    • @RebeccaStephens 只有在应用公式之前同时取最大值和最小值时才成立。从您的代码中,看起来您在减去 min 后计算 max
    猜你喜欢
    • 2022-01-17
    • 2012-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 2021-06-28
    • 2019-03-26
    • 1970-01-01
    相关资源
    最近更新 更多