python 非线性多项式拟合_第四十四讲 R-非线性回归

本文介绍了如何在R中处理非线性关系,包括多项式回归、样条回归和广义加性模型。通过波士顿房价数据集展示了模型构建过程,并通过RMSE和R²比较了不同模型的性能。
摘要由CSDN通过智能技术生成

95a9eaeffb840cc459e11e923a411bc5.png

在前面的讲解中,我们主要关注了线性回归,并对其进行了深入的解说。但是,我在真实世界里,事物间的关系并不都是线性的。当自变量(预测变量)与因变量(结果变量)的真实关系为非线性时,之前学过的线性回归模型将不再适用。

1. 非线性回归

当出现非线性关系的时候,有多种解决方案可扩展线性回归模型以捕获这些非线性效应,包括:

  • 多项式回归:这是建模非线性关系的简单方法。它将多项式项或二次项(预测变量的平方、立方等)添加到回归中。
  • 样条回归(Spline regression):用平滑曲线与一系列多项式线段拟合。限定样条线段的值称为“ 结(Knots)”
  • 广义加性模型(Generalized additive models,GAM):通过自动选择结来拟合样条线模型。

在非线性回归模型中,选择最适合拟合模型的精准度与线性模型一样(,使用均方根方差(root mean square deviation, RMSE)和R平方(R2)。

RMSE代表模型预测误差,即观察到的结果值与预测结果值的平均差。R2代表观察到的和预测的结果值之间的平方相关。最好的模型是具有最低RMSE和最高R2的模型。

2. 加载所需的R包

  • tidyverse 便于数据操作和可视化
  • caret 简化机器学习工作流程
library(tidyverse)
library(caret)
theme_set(theme_classic())

3. 准备数据

我们将使用MASS软件包中的数据集Boston,基于预测变量lstat(人口处于较低地位的百分比)来预测波士顿郊区的房价中位数mdev 。

我们将数据随机分为训练集(80%用于构建预测模型)和测试集(20%用于评估模型)。确保设置可重复性的种子(set.seed())。

# 载入数据
data("Boston", package = "MASS")
# 将数据分为训练集合测试集
set.seed(123)
training.samples <- Boston$medv %>%
  createDataPartition(p = 0.8, list = FALSE)
train.data  <- Boston[training.samples, ]
test.data <- Boston[-training.samples, ]

首先,绘制可视化medvvs lstat变量的散点图,如下所示:

ggplot(train.data, aes(lstat, medv) ) +
  geom_point() +
  stat_smooth()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值