多元线性回归成本过高

我在使用这个链接提供的数据集进行价格预测工作,数据集为imports-85.data

使用horsepower(马力)、curb-weight(整备质量)、engine-size(发动机尺寸)和highway-mpg(高速公路燃油效率)这些特征,我尝试进行了归一化处理(由于成本过高),并通过实现以下内容运行了梯度下降算法:

初始化

data = df[attrs]m = len(data) # m-training examplesf = len(attrs) # n-featuresX = 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 / 1000Y = np.array(norm_price)# Normalizationdata['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-100data['horsepower'] = data['horsepower'] / 100   # To e-100col_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

我使用这个实现运行了梯度下降:批量梯度下降

在未进行归一化的情况下,成本将是118634960.460199。在进行了归一化处理后,成本将是118.634960460199

因此,我有几个问题:

  1. 我的归一化技术是否正确?
  2. 归一化后成本会有所不同。我应该如何设定归一化后的成本阈值?

回答:

我认为你可能误解了机器学习背景下的“归一化”。根据我对你代码的解读,你的“归一化”部分实际上是在进行单位转换。在梯度下降之前,通常会应用最大-最小缩放或标准缩放,参见scikit-learn用户指南。这些技术可以创建具有一致缩放范围的特征,这样单个特征的变化就不会完全主导损失函数。这个问题这篇博客文章有更详细的讨论。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注