📜  R 编程中的有监督和无监督学习(1)

📅  最后修改于: 2023-12-03 14:46:53.019000             🧑  作者: Mango

R 编程中的有监督和无监督学习

R 是一种非常流行的数据科学语言,它支持许多强大的机器学习算法。其中最常见的是有监督学习和无监督学习。

有监督学习

有监督学习是指从标记数据中学习到一个预测模型,其输入和输出都是已知的。输入的特征是用来预测输出的标签或值。

有监督学习用于分类和回归问题。在分类问题中,标签是离散的;而在回归问题中,标签是连续值。

示例

以下是一个分类问题的示例,使用 caret 库的 train() 函数来训练一个支持向量机(SVM)分类器:

library(caret)
data <- iris
set.seed(123)
trainIndex <- createDataPartition(data$Species, p = .8, list = FALSE)
training <- data[trainIndex,]
testing <- data[-trainIndex,]
model <- train(Species ~ ., data = training, method = "svmRadial")
predictions <- predict(model, testing)

训练一个回归模型的示例,使用 caret 库的 train() 函数训练一个岭回归模型:

library(caret)
data <- mtcars
set.seed(123)
trainIndex <- createDataPartition(data$mpg, p = .8, list = FALSE)
training <- data[trainIndex,]
testing <- data[-trainIndex,]
model <- train(mpg ~ ., data = training, method = "ridge")
predictions <- predict(model, testing)
无监督学习

无监督学习不使用标记数据,它仅仅是根据输入数据的特征进行建模。无监督学习通常用于聚类、降维和异常检测。

示例

以下是一个聚类问题的示例,使用 stats 库的 kmeans() 函数来对 iris 数据集进行聚类:

library(stats)
data <- iris[, 1:4]
set.seed(123)
clusters <- kmeans(data, centers = 3)

训练一个主成分分析模型的示例,使用 stats 库的 prcomp() 函数:

library(stats)
data <- mtcars[, 1:7]
pca.fit <- prcomp(data, center = TRUE, scale. = TRUE)
summary(pca.fit)
结论

有监督学习和无监督学习都是数据科学中非常重要的概念。您可以使用 R 语言中强大的机器学习算法来实现这两种模型。有监督学习可用于分类和回归问题,而无监督学习可用于聚类、降维和异常检测等方面。