R中的线性分类

在本贴中,您将发现 R 中 3 种线性分类算法的实现方法。

本帖中的所有实现都使用了 R 随附的 鸢尾花数据集,该数据集包含在 datasets 包中。该数据集描述了鸢尾花的测量值,并需要将每个观测值分类到三个鸢尾花物种之一。

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

让我们开始吧。

binary classification

红与蓝
图片由 Robert Couse-Baker 拍摄,部分权利保留

逻辑回归

逻辑回归是一种分类方法,用于建模一个观测值属于两个类别之一的概率。因此,通常逻辑回归会用二元分类问题(2 个类别)来演示。在本例中,逻辑回归也可用于具有两个以上类别(多项式)的问题。

此实现演示了在鸢尾花数据集上使用多项逻辑回归方法。

VGAM 包中详细了解 vglm 函数。

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

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

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

线性判别分析

LDA 是一种分类方法,它找到数据属性的最佳线性组合来区分数据到不同的类别。

此实现演示了在鸢尾花数据集上使用 LDA 方法。

MASS 包中详细了解 lda 函数。

偏最小二乘判别分析

偏最小二乘判别分析(PLSDA)是将 LDA 应用于输入数据的降维投影(偏最小二乘)。

此实现演示了在鸢尾花数据集上使用 PLSDA 方法。

caret 包中详细了解 plsda 函数。

总结

在本帖中,您发现了 3 种可以复制粘贴到您自己的项目中使用的线性分类算法的实现。

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

Master Machine Learning With R

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

...只需几行R代码

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

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

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

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

查看内容

12 条回复:R 中的线性分类

  1. Anne-Marie 2014年8月8日 下午3:51 #

    嗨 Jason

    我对这个研究领域还很陌生,您激励了我开始写关于我学习内容的博客帖子。快速问一下,您是如何在帖子中显示代码块的?

    谢谢
    Anne-Marie

    • jasonb 2014年8月8日 下午6:37 #

      这是一个很棒的赞美,谢谢 Anne-Marie。

      我使用 Crayon Syntax Highlighter WordPress 插件在我的博客上提供代码片段。

      祝您博客一切顺利,我很想看看您会写出什么!

      • Andrew 2022年5月11日 上午5:40 #

        您的网站还在使用 WordPress 吗?

        • James Carmichael 2022年5月13日 上午12:42 #

          Andrew 你好……是的,还在用。

  2. Taylor Nelson 2014年10月10日 上午7:22 #

    嗨,Jason,

    我现在正在学习 R 中的朴素贝叶斯分类,但我之前也多次使用过逻辑回归。这两种方法似乎都将概率应用于分类——有什么理由说明哪一种更好,或者一种方法在特定情况下会更好吗?

    谢谢!

    • jasonb 2014年10月10日 上午7:27 #

      Taylor,你说得很对。这很难提前判断。最好的建议是尝试并抽查每种算法,以了解哪种算法最能把握问题的结构。
      即使了解了这些方法的假设,在实践中也帮助不大——朴素贝叶斯(NaiveBayes)及其严格的独立性假设,即使在某些具有紧密耦合属性的情况下也能做得很好。

  3. Ugi 2015年8月2日 下午4:57 #

    嗨 Jasson 😀
    谢谢分享 . . . 😀

  4. Neg 2016年3月13日 上午7:04 #

    你好
    如果我的问题太简单,请原谅。您在代码中使用了“Species~.”,我不确定它的意思。我的理解是您正在使用物种作为预测的特征。您能否详细解释一下代码,好吗?

    感谢您的教程。

    • Mary Li 2016年3月29日 上午6:35 #

      Neg,“Species~.”的意思是“Species”是结果,而数据集中所有其他变量是输入协变量。

      谢谢 Jason 的分享!

  5. Kamchatang 2016年4月5日 上午5:13 #

    这是什么解释?

    ‘There were 20 warnings (use warnings() to see them)

    In checkwz(wz, M = M, trace = trace, wzepsilon = control$wzepsilon)
    2 elements replaced by 1.819e-12’

    我可以忽略这些警告吗?

  6. Haoliang Han 2016年5月7日 上午9:43 #

    我尝试了逻辑回归,但为什么输出有两个不同的值,例如 Length1、Length2、Width1、Width2?哪个是准确的?它是什么意思?

发表回复

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