具有单一特征的梯度下降中的特征缩放

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有单一特征的梯度下降中的特征缩放相关的知识,希望对你有一定的参考价值。

我正在为线性回归编写代码,其中我的模型将根据区域预测房屋价格。所以,我只有一个功能是房子的区域,我的输出是价格。我输入的是1000 - 9000范围内的房屋,房屋价格在280000 - 800000之间。那么我应该如何执行功能扩展以及如何使用输出进行管理。我的意思是,如果我将房屋面积在0 - 1范围内,房价也在0 - 1范围内,并找出theta1和theta2的值(因为我应用线性回归方程,如输出= theta1 + theta2 *输入)或我应该将房价缩小到1000 - 9000的范围。

我正在应用特征缩放,其中我将值输入和输出都介于0 - 1之间我的模型没有给出正确的答案。我可以弄清楚它中的错误,但我无法纠正它。请告诉我该怎么办?

答案
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import normalize
import numpy as np
X=np.random.randint(1000,9000,(10,))
Y=np.random.randint(100,200,(10,))+100*X
reg = LinearRegression().fit(X.reshape(-1,1), Y)
print(reg.score(X.reshape(-1,1),Y))
print(reg.coef_)
0.9999999822251018
[100.00518473]

X1=normalize(X.reshape(-1,1),axis=0)
Y1=normalize(Y.reshape(-1,1),axis=0)
reg = LinearRegression().fit(X1.reshape(-1,1), Y1)
print(reg.score(X1.reshape(-1,1),Y1))
print(reg.coef_)

0.9999999822251019
[[0.99982554]]

这只是使用非标准化和标准化数据的普通线性回归。这些案件没有区别。只有你问题的标题包括“渐变下降”所以如果你使用梯度下降法,权重将自动调整。

正常的SGD是:w = w-alpha * delta

其中alpha是学习率,权重将随着时间的推移自动调整。所以这两者之间没有区别。只有标准化的那个必须处理小于1的数字,因此计算将更容易。

以上是关于具有单一特征的梯度下降中的特征缩放的主要内容,如果未能解决你的问题,请参考以下文章

梯度下降在实践I -特征缩放

机器学习特征工程之特征缩放+无量纲化:最小最大缩放(MinMaxScaler)

机器学习特征工程之特征缩放+无量纲化:最大绝对值缩放(MaxAbsScaler)

机器学习特征工程之特征缩放+无量纲化:非线性缩放(例如,sigmoidtanharctan等)

机器学习特征工程之特征缩放+无量纲化:数据标准化(StandardScaler)

机器学习中的特征缩放(feature scaling)