R_机器学习——常用函数方法汇总
1.rep()
rep()
是R语言中的一个函数,用于创建重复的向量或矩阵。
rep(x, times, each, length.out)
x
:要重复的向量或矩阵。这可以是一个数字、字符、列表、因子等。times
:重复的次数,可以是一个整数或向量。如果是一个整数,则整个输入x
会被重复这个整数次。如果是一个向量,且长度与x
(经过each
参数复制后)相同,则x
中的每个元素会根据times
向量中对应位置的值进行重复。each
:每个元素重复的次数,可以是一个整数或向量。如果指定,则x
中的每个元素会首先根据这个参数进行重复,然后再根据times
或length.out
参数进行整体复制或长度调整。length.out
:最终输出的长度。这是一个非负整数。当times
或each
与length.out
同时指定时,length.out
会优先满足。如果length.out
指定的长度小于实际复制后的长度,则结果会被截断;如果大于,则会根据复制规则进行填充。
例
- 复制整个向量
rep(1:4, times=2) | |
# 输出: [1] 1 2 3 4 1 2 3 4 |
- 复制每个元素
rep(1:4, each=2) | |
# 输出: [1] 1 1 2 2 3 3 4 4 |
- 结合使用times和each
rep(1:4, each=2, times=3) | |
# 输出: [1] 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 |
- 指定输出长度
rep(1:4, each=2, length.out=6) | |
# 输出: [1] 1 1 2 2 3 3 | |
# 注意:由于length.out=6,最后一个元素4只重复了一次。 |
但其实最常用的还是直接构建一个0向量,相当于C语言中的数组来使用。
如:
x <- rep(0, ncol(df)) #创建和df列数相同的向量
2.confusionMatrix()
confusionMatrix
函数是 R 语言中caret
包提供的一个非常有用的函数,用于计算并展示分类模型的混淆矩阵以及一系列相关的统计指标。
这个函数对于评估分类模型的性能非常有帮助,特别是在监督学习领域。
(confusion_matrix <- confusionMatrix(prediction, factor(test$y)))
prediction
是一个包含模型预测结果的向量。factor(test$y)
是测试集的实际标签,这里使用factor
函数确保标签被处理为分类变量。
3.createDataPartition()
createDataPartition()
是caret
包中的一个非常有用的函数,它主要用于将数据集分割为训练集和测试集。优点在于使二者具有相同分布,模型训练更加合理。
通过分割数据,我们可以在一个独立的测试集上评估模型的性能,从而获得对模型泛化能力的更准确估计。
例
library(caret) | |
set.seed(123) # 设置随机种子以确保结果可重复 | |
trainIndex <- createDataPartition(y, p = 0.8, list = FALSE) | |
trainData <- data[trainIndex,] | |
testData <- data[-trainIndex,] |
在这个例子中:
y
是数据集中的目标变量(或称为标签、响应变量),它可以是分类的(如因子类型)或连续的(如数值类型)。p
是训练集所占的比例,这里设置为0.8,意味着80%的数据将用于训练,剩下的20%将用于测试。list
参数设置为FALSE
表示返回一个索引向量,而不是一个列表。这样,我们可以直接使用这个索引向量来从原数据集中提取训练数据和测试数据。set.seed()
函数用于设置随机种子,以确保每次运行代码时都能得到相同的分割结果。
to be continued!!!