跳到主要内容

R监督学习基础

监督学习是机器学习中最常见的学习类型之一。它的核心思想是通过已知的输入和输出数据训练模型,从而预测新的输入数据的输出。在R语言中,监督学习可以通过多种算法实现,例如线性回归、决策树、支持向量机等。本文将逐步介绍监督学习的基本概念、常用算法及其在R中的实现。

什么是监督学习?

监督学习是一种机器学习方法,其中模型从带有标签的训练数据中学习。标签是指每个输入数据对应的已知输出。模型的目标是学习输入与输出之间的关系,以便在给定新输入时能够预测输出。

备注

标签:在监督学习中,标签是已知的输出值,用于指导模型的学习过程。

例如,假设我们有一个数据集,其中包含房屋的面积(输入)和价格(输出)。我们可以使用监督学习算法来训练一个模型,预测给定房屋面积时的价格。

监督学习的类型

监督学习主要分为两类:

  1. 回归:当输出是连续值时,例如预测房价、温度等。
  2. 分类:当输出是离散类别时,例如判断邮件是否为垃圾邮件、图像分类等。

R中的监督学习算法

R语言提供了丰富的库和函数来实现监督学习。以下是一些常用的算法:

  1. 线性回归:用于回归问题,假设输入和输出之间存在线性关系。
  2. 逻辑回归:用于分类问题,特别是二分类问题。
  3. 决策树:可用于回归和分类问题,通过树状结构进行决策。
  4. 支持向量机(SVM):可用于分类和回归问题,通过寻找最优超平面来分隔数据。

线性回归示例

以下是一个简单的线性回归示例,使用R内置的mtcars数据集来预测汽车的每加仑英里数(mpg)与马力(hp)之间的关系。

r
# 加载数据集
data(mtcars)

# 拟合线性回归模型
model <- lm(mpg ~ hp, data = mtcars)

# 查看模型摘要
summary(model)

输出

Call:
lm(formula = mpg ~ hp, data = mtcars)

Residuals:
Min 1Q Median 3Q Max
-5.7121 -2.1122 -0.8854 1.5819 8.2360

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.09886 1.63392 18.421 < 2e-16 ***
hp -0.06823 0.01012 -6.742 1.79e-07 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.863 on 30 degrees of freedom
Multiple R-squared: 0.6024, Adjusted R-squared: 0.5892
F-statistic: 45.46 on 1 and 30 DF, p-value: 1.788e-07

从输出中可以看出,hp(马力)与mpg(每加仑英里数)之间存在显著的负相关关系。

决策树示例

以下是一个使用rpart包实现决策树的示例,用于分类鸢尾花(iris数据集)的种类。

r
# 加载rpart包
library(rpart)

# 加载iris数据集
data(iris)

# 拟合决策树模型
tree_model <- rpart(Species ~ ., data = iris, method = "class")

# 查看模型
print(tree_model)

输出

n= 150 

node), split, n, loss, yval, (yprob)
* denotes terminal node

1) root 150 100 setosa (0.33333333 0.33333333 0.33333333)
2) Petal.Length< 2.45 50 0 setosa (1.00000000 0.00000000 0.00000000) *
3) Petal.Length>=2.45 100 50 versicolor (0.00000000 0.50000000 0.50000000)
6) Petal.Width< 1.75 54 5 versicolor (0.00000000 0.90740741 0.09259259) *
7) Petal.Width>=1.75 46 1 virginica (0.00000000 0.02173913 0.97826087) *

从输出中可以看出,决策树根据花瓣长度和宽度将鸢尾花分为三类。

实际应用场景

监督学习在现实生活中有广泛的应用,例如:

  1. 医疗诊断:通过患者的病史和检查结果预测疾病。
  2. 金融风控:通过客户的信用记录预测贷款违约风险。
  3. 推荐系统:通过用户的历史行为推荐商品或内容。

总结

监督学习是机器学习中的重要分支,通过已知的输入和输出数据训练模型,从而预测新数据的输出。R语言提供了丰富的工具和库来实现监督学习,例如线性回归、决策树等。通过本文的学习,您应该对R中的监督学习有了初步的了解。

附加资源与练习

  • 资源

  • 练习

    1. 使用mtcars数据集,尝试用线性回归预测汽车的重量(wt)与每加仑英里数(mpg)之间的关系。
    2. 使用iris数据集,尝试用支持向量机(SVM)分类鸢尾花的种类。
提示

提示:在R中,可以使用e1071包中的svm函数来实现支持向量机。