R 中的非线性回归

在本文中,您将发现4种R语言中的非线性回归方法。

有许多高级方法可用于非线性回归,而这些方法只是您可以使用的样本。

通过我的新书Machine Learning Mastery With R 来启动您的项目,其中包含分步教程以及所有示例的R源代码文件。

让我们开始吧。

non-linear regression

非线性回归
照片作者:Steve Jurvetson,部分权利保留

本文中的每个示例都使用了R自带的 datasets包 中提供的 longley 数据集。longley数据集描述了从1947年到1962年观察到的7个经济变量,用于预测每年的就业人数。

多变量自适应回归样条

多元自适应回归样条(MARS)是一种非参数回归方法,它使用铰链函数(具有折点的函数)来模拟数据中的多个非线性。

详细了解earth函数和earth包

支持向量机

支持向量机(SVM)是一类方法,最初是为分类开发的,它找到最佳分隔类的支撑点。用于回归的SVM称为支持向量回归(SVM)。

详细了解ksvm函数和kernlab包

需要更多关于R机器学习的帮助吗?

参加我为期14天的免费电子邮件课程,了解如何在您的项目中使用R(附带示例代码)。

点击注册,同时获得该课程的免费PDF电子书版本。

k-近邻

k-近邻(kNN)不创建模型,而是根据需要时在附近数据上即时创建预测。相似性度量(如欧氏距离)用于定位附近数据以进行预测。

详细了解knnreg函数和caret包

神经网络

神经网络(NN)是一个计算单元图,它接收输入并将结果传递为输出。这些单元按层排序,将输入向量的特征连接到输出向量的特征。通过训练,例如反向传播算法,可以设计和训练神经网络来模拟数据中的潜在关系。

详细了解nnet函数和nnet包

总结

在本文中,您发现了4种非线性回归方法,并提供了可用于您自己问题的复制粘贴代码。

有关更多信息,请参阅Kuhn和Johnson撰写的Applied Predictive Modeling的第7章,其中为初学者提供了R语言非线性回归的优秀入门。

在R中发现更快的机器学习!

Master Machine Learning With R

在几分钟内开发您自己的模型

...只需几行R代码

在我的新电子书中探索如何实现
精通 R 语言机器学习

涵盖自学教程端到端项目,例如
加载数据、可视化、构建模型、调优等等...

最终将机器学习应用到您自己的项目中

跳过学术理论。只看结果。

查看内容

18条回复关于R语言中的非线性回归

  1. Finn Gilling 2016年5月12日 下午7:13 #

    嗨 Jason
    刚加入了您看似很棒的R和机器学习课程。
    我想和同事一起练习,所以我想问您是否可以通过保存您的课程邮件在一两天内完成14门课程——还是我应该一次上一门课程,并在收到下一门课程之前完成它?
    此致
    Finn Gilling

    finn@gilling.com

  2. Akash 2016年10月4日 上午3:37 #

    我有两天的用电量数据。我想用这些数据训练一个SVR模型,并只预测下一天,但R软件预测两天而不是一天。基本上,我想使用更多数据来训练模型,但预测较少的值。

    • Jason Brownlee 2016年10月4日 上午7:26 #

      你好Akash,我认为这可能是你如何构建问题,而不是SVR。

      也许重新考虑一下你如何为问题构建数据结构?

  3. Ramy 2018年11月2日 上午3:50 #

    你好,
    我有一个关于MARS的问题,例如,我有50个观测值,包含5个传感器和5个信号,我尝试使用MARS进行回归。我发现模型消除了第5个传感器的读数,因为它非常接近。因此,模型是4个传感器变量的函数,不受第5个传感器影响,我使用这个模型进行预测。但是,如果突然由于任何原因,我得到一个观测值,其中第5个传感器的读数比以前的任何读数都高很多,那么模型将不会注意到这一点,然而这可能是故障的指示。那么,我现在该怎么办,至少让模型感觉到有问题或类似的东西?

    提前感谢,
    拉米

    • Jason Brownlee 2018年11月2日 上午5:56 #

      在拟合模型之前,也许尝试对数据进行缩放(标准化或归一化)?
      除了MARS之外,也许可以尝试一套方法?

      • Ramy 2018年11月2日 下午3:41 #

        感谢您的回复,但模型中仍有一些变量未包含。此外,我认为MARS处理训练数据中的数据,就像新观测值超出该区域一样,响应是相同的,并且没有变化。

  4. ghizlane 2019年5月16日 上午6:50 #

    谢谢你
    但是你为什么不为神经网络使用训练和测试或验证部分呢?构建神经网络不是必需的吗?

    • Jason Brownlee 2019年5月16日 下午2:21 #

      抱歉,我不明白。你能详细说明一下吗?

  5. ghizlane 2019年5月18日 上午6:59 #

    你好,
    我想知道为什么你没有将你的数据库分成两部分(例如,训练数据(70%)和测试数据(30%)),来验证回归模型,特别是对于神经网络。

  6. ghizlane 2019年5月20日 上午2:09 #

    谢谢你的回复

  7. obanah 2019年6月12日 下午9:18 #

    谢谢Jason,
    关于神经网络的一个问题

    线性输出 = TRUE?这是否用于回归?
    线性输出 = FALSE,这是否用于分类?

    要知道我正在使用神经网络进行回归的预测模型。

  8. tashkili 2019年6月13日 上午4:49 #

    干得好

    我想问一个关于neuralalnet包的问题,我只找到了训练和测试,函数中没有验证,如何验证模型,或者只在neuralnet包中使用训练和测试是否足够?

    在我的情况下,训练(92%),测试(83%)。

    谢谢你

  9. Efatathios Chatzikyriakidis 2020年4月20日 下午7:45 #

    另一个选择可以是Lixallyt加权回归!

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。