权重不确定的概率线性回归

本文探讨了确定性线性回归无法捕捉数据的任意和认知不确定性,提出了使用概率线性回归来解决这一问题。通过TensorFlow和TensorFlow概率库,建立了考虑不确定性的概率线性回归模型,并解释了负对数似然作为损失函数的原因。文中还展示了如何训练和预测模型,以展示概率线性回归如何提供更全面的预测结果,包括权重或斜率的不确定性。
摘要由CSDN通过智能技术生成

作者|Ruben Winastwan 编译|VK 来源|Towards Data Science

当你学习数据科学和机器学习时,线性回归可能是你遇到的第一个统计方法。我猜这不是你们第一次使用线性回归了。因此,在本文中,我想讨论概率线性回归,而不是典型的/确定性线性回归。

但在此之前,让我们简要讨论一下确定性线性回归的概念,以便快速了解本文的主要讨论要点。

线性回归是一种基本的统计方法,用来建立一个或多个输入变量(或自变量)与一个或多个输出变量(或因变量)之间的线性关系。

上式中,a为截距,b为斜率。x是自变量,y是因变量,也就是我们要预测的值。

a和b的值需要用梯度下降算法进行优化。然后,我们得到了一条自变量和因变量之间最合适的回归直线。通过回归线,我们可以预测任意输入x的y的值。这些是如何建立典型的或确定性的线性回归算法的步骤。

然而,这种确定性的线性回归算法并不能真正描述数据。这是为什么呢?

实际上,当我们进行线性回归分析时,会出现两种不确定性:

  • 任意不确定性,即由数据产生的不确定性。
  • 认知的不确定性,这是从回归模型中产生的不确定性。

我将在文章中详细阐述这些不确定性。考虑到这些不确定性,应采用概率线性回归代替确定性线性回归。

在本文中,我们将讨论概率线性回归以及它与确定性线性回归的区别。我们将首先看到确定性线性回归是如何在TensorFlow中构建的,然后我们将继续构建一个包含TensorFlow概率的概率线性回归模型。

首先,让我们从加载本文将使用的数据集开始。

加载和预处理数据

本文将使用的数据集是car的MPG数据集。像往常一样,我们可以用pandas加载数据。

import pandas as pd

auto_data = pd.read_csv('auto-mpg.csv')
auto_data.head()

以下是数据的统计汇总。

接下来,我们可以使用下面的代码查看数据集中变量之间的相关性。

import matplotlib.pyplot as plt
import seaborn as sns

corr_df = auto_data.corr()

sns.heatmap(corr_df, cmap="YlGnBu", annot = True)
plt.show()

现在如果我们看一下相关性,汽车的每加仑英里数(MPG)和汽车的重量有很强的负相关性。

在本文中,为了可视化的目的,我将做一个简单的线性回归分析。自变量是车的重量,因变量是车的MPG。

现在,让我们用Scikit-learn将数据分解为训练数据和测试数据。拆分数据后,我们现在可以缩放因变量和自变量。这是为了确保两个变量在相同的范围内这也将提高线性回归模型的收敛速度。

from sklearn import preprocessing
from sklearn.model_selection import train_test_split

x = auto_data['weight']
y = auto_data['mpg']

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state=5)

min_max_scaler = preprocessing.MinMaxScaler()

x_train_minmax = min_max_scaler.fit_transform(x_train.values.reshape(len(x_train),1))
y_train_minmax = min_max_scaler
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值