R监督学习基础
监督学习是机器学习中最常见的学习类型之一。它的核心思想是通过已知的输入和输出数据训练模型,从而预测新的输入数据的输出。在R语言中,监督学习可以通过多种算法实现,例如线性回归、决策树、支持向量机等。本文将逐步介绍监督学习的基本概念、常用算法及其在R中的实现。
什么是监督学习?
监督学习是一种机器学习方法,其中模型从带有标签的训练数据中学习。标签是指每个输入数据对应的已知输出。模型的目标是学习输入与输出之间的关系,以便在给定新输入时能够预测输出。
备注
标签:在监督学习中,标签是已知的输出值,用于指导模型的学习过程。
例如,假设我们有一个数据集,其中包含房屋的面积(输入)和价格(输出)。我们可以使用监督学习算法来训练一个模型,预测给定房屋面积时的价格。
监督学习的类型
监督学习主要分为两类:
- 回归:当输出是连续值时,例如预测房价、温度等。
- 分类:当输出是离散类别时,例如判断邮件是否为垃圾邮件、图像分类等。
R中的监督学习算法
R语言提供了丰富的库和函数来实现监督学习。以下是一些常用的算法:
- 线性回归:用于回归问题,假设输入和输出之间存在线性关系。
- 逻辑回归:用于分类问题,特别是二分类问题。
- 决策树:可用于回归和分类问题,通过树状结构进行决策。
- 支持向量机(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) *
从输出中可以看出,决策树根据花瓣长度和宽度将鸢尾花分为三类。
实际应用场景
监督学习在现实生活中有广泛的应用,例如:
- 医疗诊断:通过患者的病史和检查结果预测疾病。
- 金融风控:通过客户的信用记录预测贷款违约风险。
- 推荐系统:通过用户的历史行为推荐商品或内容。
总结
监督学习是机器学习中的重要分支,通过已知的输入和输出数据训练模型,从而预测新数据的输出。R语言提供了丰富的工具和库来实现监督学习,例如线性回归、决策树等。通过本文的学习,您应该对R中的监督学习有了初步的了解。
附加资源与练习
-
资源:
- R for Data Science:一本关于R语言数据科学的经典书籍。
- Caret Package:R中用于机器学习的强大工具包。
-
练习:
- 使用
mtcars
数据集,尝试用线性回归预测汽车的重量(wt
)与每加仑英里数(mpg
)之间的关系。 - 使用
iris
数据集,尝试用支持向量机(SVM)分类鸢尾花的种类。
- 使用
提示
提示:在R中,可以使用e1071
包中的svm
函数来实现支持向量机。