gpt4 book ai didi

python - 多元线性回归成本太高

转载 作者:行者123 更新时间:2023-11-30 09:59:32 24 4
gpt4 key购买 nike

我正在使用 this 中提供的数据集进行价格预测。链接,imports-85.data

使用马力整备重量发动机尺寸高速公路MPG,我尝试标准化(由于成本高)并通过实现以下内容来运行梯度下降算法:

初始化

data = df[attrs]
m = len(data) # m-training examples
f = len(attrs) # n-features
X = np.hstack((np.ones(shape=(m,1)),np.array(data)))
T = np.zeros(f + 1) # Coefficients of x(0),x(1),...x(n)
norm_price = df.price / 1000
Y = np.array(norm_price)

# Normalization
data['curb-weight'] = (data['curb-weight'] * 0.453592) / 1000 # To kg (e-1000)
data['highway-mpg'] = data['highway-mpg'] * 0.425144 # To km per litre (kml)
data['engine-size'] = data['engine-size'] / 100 # To e-100
data['horsepower'] = data['horsepower'] / 100 # To e-100

col_rename = {
'curb-weight':'curb-weight-kg(e-1000)',
'highway-mpg':'highway-kml',
'engine-size':'engine-size(e-100)',
'horsepower':'horsepower(e-100)'
}
data.rename(columns=col_rename,inplace=True)

成本计算

def calculateCost():
global m,T,X
hypot = (X.dot(T) - Y).transpose().dot(X.dot(T) - Y)
return hypot / (2 * m)

梯度下降

def gradDescent(threshold,iter = 10000,alpha = 3e-8):
global T,X,Y,m
i = 0
cost = calculateCost()
cost_hist = [cost]
while i < iter:
T = T - (alpha / m) * X.transpose().dot(X.dot(T) - Y)
cost = calculateCost()
cost_hist.append(cost)
i += 1
if cost <= threshold:
return cost_hist

我用这个实现运行了梯度下降: Batch Gradient Descent

如果没有标准化,成本将为118634960.460199。通过标准化,成本将为 118.634960460199

因此,我有几个问题:

  1. 我的标准化技术正确吗?
  2. 标准化后,成本会有所不同。标准化后如何设置成本阈值?

最佳答案

我认为您可能误解了机器学习背景下的“标准化”。根据我对代码的解释,您的“标准化”部分正在进行单位转换。在梯度下降之前,通常应用最大-最小缩放或标准缩放,请参阅 scikit learn user guide 。这些技术创建具有一致尺度范围的特征,因此单个特征的变化不会完全主导损失函数。 This questionthis blog post进行更长时间的讨论。

关于python - 多元线性回归成本太高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59553951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com