R常用数据挖掘函数(2)

2019-04-01 21:37

n.iter =)

其中,x为待研究的数据集或相关系数矩阵,fa为主成分分析(fa= “pc”)或者因子分析(fa = “fa”),n.iter指定随机数据模拟的平行分析的次数。

4、利用MASS包中的函数lm.ridge()来实现岭回归

利用ridge包中的linearRidge()函数进行自动选择岭回归参数

通过effects包中的effect()函数,可以用图形展示交互项的结果 利用ridge包中的linearRidge()函数进行自动选择岭回归参数

5、lars包提供了lasso()函数(lasso:套锁算法,用于解决多重共线性):Lasso算法则是一种能够实现指标集合精简的估计方法。并利用AIC准则和BIC准则给统计模型的变量做一个截断,进而达到降维的目的。因此,我们通过研究Lasso可以将其更好的应用到变量选择中去。 lars包提供的lars()函数:这些是套索所有的变种,并提供系数和适合整个序列,从零开始,以最小二乘法拟合。 lars包的cv.lars()函数:计算交叉验证误差曲线的Lars。cva <- cv.lars(x2, y, K = 10, plot.it = TRUE) #10折叠交叉验证,并绘制cv(交叉验证)的变化图。 lars包中的coef.lars()函数或者predict.lars()函数:从拟合的lars模型预测或提取系数;当lars()生产解决方案的整个路径,predict.lars允许提取沿着路径在特定的点预测。coef <- coef.lars(laa, mode = “fraction”, s = best) #获取使得CV最小时的系数(请参考多重共线性中的lasso算法) S 一个值,或一个向量值,索引路径。它的值取决于mode= argument。默认情况下(mode= “step”),应该采取p和0之间的值

Mode Mode=”step”是指S =参数指标的Lars的步数,系数将返回相应的值对应于step s。如果mode=”fraction”,然后应该是0和1之间的数,它指的是系数向量范数比,相对为了规范在全最小二乘解。Mode=”norm”指的是指L1范数的系数向量。Mode=”lambda”用套索正则化参数的;其他型号是最大相关(不让Lars /逐步模型)。允许缩写。 共glmnet包实现lasso套锁算法,用cv.glmnet()函数来实现cv(交叉验证):做为glmnet K-fold交叉验证,产生了一个图,并返回一个值λ。

gla <- cv.glmnet(x2, y, nfolds = 10) #cv做交叉验证来确定模型,nfolds=10其实是默认值 折叠数-默认为10。虽然折叠数可以当样本容量大(留一CV),这是不推荐用于大型数据集。最小值是允许nfolds = 3 二、主成分分析

1、psych包的实例请参照主成分分析2:psych包 psych包中的常用函数:

principal()含多种可选的方差放置方法的主成分分析

fa()可用主轴、最小残差、加权最小平方或最大似然法估计的因子分析 fa.parallel()含平等分析的碎石图

factor.plot()绘制因子分析或主成分分析的结果

fa.diagram()绘制因子分析或主成分分析的载荷矩阵 scree()因子分析和主成分分析的碎石图

psych包中的fa.parallel(x, n.obs, fa, n.iter, show.legend)函数:数据的碎石图,可以判断主成分的个数。x为数据框或矩阵;n.obs为0表示数据框或矩阵,否则表示多少种情况用来寻找相关性;fa为pc表示主成分分析,为fa表示因子分析,为both表示主成分分析和因子分析;n.iter指定随机数据模拟的平行分析的次数;show.legend表示是否显示图例,为T显示,为F不显示。

psych包中的principal(r, nfactors)函数:主成分分析,可以根据原始数据或相关系数矩阵做主成分分析。r是原始数据或相关系数矩阵;nfactors指定主成分个数,即设定提取的因子数;

rotate指定旋转的方法(“none”或“varimax”),scores为是否需要计算主成分得分(“T”或”F”) principal与princomp函数返回结果不同,princomp函数返回的是主成分的线性组合系数,而principal函数返回原始变量与主成分之间的相关系数,这样就和因子分析的结果意义相一致。

psych包中的fa(r,nfactors=,n.obs=,rotate=,scores=,fm=)函数:提取相应的因子,可用主轴、最小残差、加权最小平方或最大似然法估计的因子分析。r为相关系数矩阵或者原始数据矩阵;nfactors为提取的因子数(默认为1);rotate为设定旋转的方法(默认互变异数最小法);fm为设定因子化方法(默认极小残差法)。 r是相关系数矩阵或者原始数据矩阵; nfactors设定提取的因子数(默认为1);

n.obs是观测数(输入相关系数矩阵时需要填写); rotate设定旋转的方法(默认互变异数最小法); scores设定是否计算因子得分(默认不计算); fm设定因子化方法(默认极小残差法)。

与PCA不同,提取公共因子的方法很多,包括最大似然法(ml)、主轴迭代法(pa)、加权最小二乘法(wls)、广义加权最小二乘法(gls)和最小残差法(minres)未旋转的主轴迭代因子法

psych包中的factor.plot(fa, labels)函数:绘制因子分析或主成分分析的结果。fa为一个因子分析或距离分析的输出;labels如果存在将被添加到图中。 三、贝叶斯

1、e1071包的naiveBayes函数提供了naive bayes的具体实现,其用法如下: S3 method for class ‘formula’

naiveBayes(formula, data, laplace = 0, …, subset, na.action = na.pass) Default S3 method:

naiveBayes(x, y, laplace = 0, …) x:表示数字矩阵或数字变量的数据框;y:表示类向量; laplace 默认为0表示禁用拉普拉斯平滑,正数表示启用拉普拉斯平滑 object:“NaiveBayes”类的对象

predict(object, newdata, type) object:naveBayes模型;newdata:测试数据;type:预测类型,type如果为class代表是分类,如果是raw则代表概率的计算 predict函数分类需要指定type=”class”

klaR包中的NaiveBayes()函数:因为该函数比e1071包的naiveBayes()函数增加了两个功能,一个是可以输入先验概率,另一个是在正态分布基础上增加了核平滑密度函数。 predict()预测函数需要指定type=”class”来分类 2、tm包通常用于文本的分析:

tm包中的函数Corpus()(或VCorpus):导入数据。函数的用法如下:Corpus(x,readerControl = list(reader = x$DefaultReader, language = “en”),…) 对于这些资料来源(x),tm 包提供了一些相关的函数,比如:DirSource(处理目录)、 VectorSource(由文档构成的向量)、 DataframeSource(数据框)等。

tm 包中的tm_map()函数:可以通过maps 方式将转化函数实施到每一个单上。m_map()的主要用法如下:tm_map(x, FUN, …, useMeta = FALSE, lazy = FALSE) 再介绍字符串的处理,分割函数:strsplit。使用格式为: strsplit(x, split, fixed = FALSE, perl = FALSE, useBytes = FALSE) 主要参数说明:

X:字串向量,每个元素都将单独进行拆分。

Split:为拆分位置的字串向量,默认为正则表达式匹配(fixed=FALSE)fixed=TRUE,表示使用普通文本匹配或正则表达式的精确匹配。

Perl:表示可以选择是否兼容Perl的正则表达式的表述方式。

findFreqTerms(x, lowfreq, highfreq)函数:在文档术语或术语文档矩阵中查找频繁项。x为一个术语文档矩阵;lowfreq为一个数字,表示较低的频繁项;highfreq为一个数字,表示较高的频繁项

3、caret包的函数:(有K近邻算法的函数knn3)

createdatapartition(y, times, p=0.5, list)函数:创建一系列的测试/训练的分区。y为真实分类数据,一个输出的向量,如果是createtimeslices,这些应该是按时间的顺序;times为创建的分区的数目,除非重复实验,否则需要一个就行;p训练集占数据集的比重;list为F是不将结果列在列表中。

createresample()函数:创建一个或多个Bootstrap样本; Createfolds()函数:将数据分为K组;

createtimeslices()函数:创建交叉验证样本信息可用于时间序列数据。

caret包中的knn3(formula, data, subset, k)函数:K近邻分类算法。formula为模型公式;data为数据集;subset为自数据集;k为选择的近邻个数

caret包中的predict.knn3(object, newdata, type)函数也可以写成predict():K近邻算法的预测函数。object为knn3类对象(K近邻算法模型);newdata为要观测数据的数据框;typetype如果为class代表是分类,如果是prop则代表概率的计算

4、gmodels包的CrossTable(x, y, prop.chisq, prop.t, dnn)函数:独立试验因素的交叉制表。 x为向量或矩阵,如果y指定,必须是一个向量;y为一个矩阵或数据框的向量;prop.chisq为T时,每个单元的卡方贡献将被包括;prop.t为T时,t分布的分布率将被包括;dnn在结果的尺寸中被给予的名称。 四、K近邻(KNN)算法

1、class包的knn(train, test, cl, k=1)函数:tarin为训练集数据矩阵或数据框;test为测试集数据矩阵或数据框;cl为训练集的真实分类数据,应是因子类型的;k为选择的近邻个数 class包中的knn1(train, test, cl)函数:即 knn 中选择 k = 1 的情况,因此 knn1 是 knn 的一个退化情况。

class包中的knn.cv(train, cl, k, prob):K最近邻交叉验证函数。train为训练集数据;cl为训练集的真实分类因子;k为选择的近邻个数;prob为T时,投票获胜类将以概率返回。

其使用的方法是 leave-one-out cross validation。即所有的样本点都算到训练集中去,不设置测试集。对每个训练集中的样本点,都使用剩余的样本点中的 k 个最近邻来进行投票,从而决定该样本点的分类。

2、 R语言里的kknn包也可以实现最邻近算法——使用kknn函数

kknn(formula = formula(train),train, test, na.action = na.omit(), k= 7, distance = 2, kernel = “optimal”, ykernel = NULL, scale=TRUE, contrasts= c(‘unordered’ = “contr.dummy”, ordered =”contr.ordinal”)):为K最近邻算法。其中,formula表示训练集的表达式对象;train为训练集的数据框或矩阵;test为测试集的数据库或矩阵;distance默认为明科夫斯基距离,等于2时为欧氏距离;na.action 缺失值处理,默认为去掉缺失值;kernel内核使用,可能的选择是“rectangular”(这是标准的加权KNN),”triangular”, “epanechnikov”(或β(2,2)),”biweight”(或β(3,3)),“triweight”(或β(4,4)),”cos”, “inv”, “gaussian”, “rank” and “optimal”;k为考虑的邻近数量

sample(x, size, replace=F, prob=NULL):采样函数。x表示要取样的源数据集,为一个向量;size非负整数,要采样的大小;replace表示是否为有返回采用,为F表示不返回采样;prob用

于获取被采样的向量的元素的概率权重向量 fitted():提取模型拟合值。

assign(x, value)赋值函数。x为变量名;value要赋值给x的值。assign(“x”, c(10.4, 5.6, 3.1, 6.4, 21.7)) 与x <- c(10.4,5.6, 3.1, 6.4, 21.7)等价注意:assign()函数赋值的变量需要用get()函数来读取,例如get(data[1]) list.files(path, ignore.case):列出文件夹或目录中的文件。path表示文件夹或路径;ignore.case为T表示忽略大小写。 read.fwf(file, widths):读取固定格式宽度的文件到一个数据框中。file为要读取的文件;widths给出宽度。 3、MASS包中的lda(x, grouping)函数:线性判别分析。x为包含解释性变量的矩阵或数据框;grouping为一个指定了观测类因子

lad(formula, data, na.action)函数:formula为分类公式;data为需要分类的数据;na.action是否忽略NA值 4、caret包的函数:(有K近邻算法的函数knn3)

createdatapartition(y, times, p=0.5, list)函数:创建一系列的测试/训练的分区。y为真实分类数据,一个输出的向量,如果是createtimeslices,这些应该是按时间的顺序;times为创建的分区的数目,除非重复实验,否则需要一个就行;p训练集占数据集的比重;list为F是不将结果列在列表中。

createresample()函数:创建一个或多个Bootstrap样本; Createfolds()函数:将数据分为K组;

createtimeslices()函数:创建交叉验证样本信息可用于时间序列数据。

caret包中的knn3(formula, data, subset, k)函数:K近邻分类算法。formula为模型公式;data为数据集;subset为子数据集;k为选择的近邻个数

caret包中的predict.knn3(object, newdata, type)函数也可以写成predict():K近邻算法的预测函数。object为knn3类对象(K近邻算法模型);newdata为要观测数据的数据框;typetype如果为class代表是分类,如果是prop则代表概率的计算 五、决策树:

决策树与随机森林包总结:

party包中的ctree()函数:不能很好的处理缺失值,含有缺失值的实例有时会被划分到左子树中,有时会被划分到右子树中,由替代规则决定。predict()函数:测试集与训练集的分类变量水平不同(因子水平不同时),对测试集的预测会失败。

rpart包中的rpart()函数:构建决策树,允许选择具有最小预测误差的决策树,然后在使用predict函数进行预测。

randomForst包中的randomForest()函数:不能处理带有缺失值的数据;分类水平划分数量最大为32(即因子水平为32)

party包中的cforest()函数:没有限定分类属性的水平划分数(即因子水平数)

1、rpart包的rpart(formula, data, method, control, parms)函数:拟合rpart模型。formula为拟合公式;data为数据集;method:树的末端数据类型选择相应的变量分割方法:连续性method=“anova”,离散型method=“class”,计数型method=“poisson”,生存分析型method=“exp”;parms用来设置三个参数:先验概率、损失矩阵、分类纯度的度量方法(gini和information);control:为rpart算法的控制细节选项;cost我觉得是损失矩阵,在剪枝的时候,叶子节点的加权误差与父节点的误差进行比较,考虑损失矩阵的时候,从将“减少-误差”调整为“减少-损失”

rpart函数用来实现CART(分类回归树)

rpart包的rpart.control(minsplit, minbucket, maxdepth, cp, xval=10)函数:对树进行一些设置。 minsplit是最小分支节点数,这里指大于等于20,那么该节点会继续分划下去,否则停止;minbucket:叶子节点最小样本数;maxdepth:树的深度;cp全称为complexity parameter,指某个点的复杂度,对每一步拆分,模型的拟合优度必须提高的程度,将要被修剪的rpart复杂性参数;xval是10折交叉验证。

rpart.plot包的rpart.plot(x, type, extra, branch)函数:画出rpart(决策树)模型。x为rpart模型;extra在节点上显示额外的信息,不同的数字代表不同的类型(请参考帮助);branch控制分支线的形状,指定一个值在0(V形分支)和1(方形分支),默认情况下(fallen.leaves)为1否则为2;type为画图的类型,分为5种:

0默认。画一个分裂的标签,在叶子的每一个分裂标签和一个节点标签。 1标签所有节点,不只是树叶。

2像1,但绘制的标签下面的节点标签。 3为左、右方向画单独的拆分标签。

4像3,但标签的所有节点,不只是叶子节点,类似于文本。

rpart包的printcp(model)函数:显示优化剪枝后的复杂参数表格。x表示拟合的模型对象。 rpart包的prune(model, cp)函数:选择具有最小xerror的cp(复杂性参数)函数。tree为拟合的模型对象;cp全称为complexity parameter,指某个点的复杂度,对每一步拆分,模型的拟合优度必须提高的程度,将要被修剪的rpart复杂性参数。

2、C50包中的C5.0(x, y, trials=1, costs)函数:x要预测的数据框或矩阵;y为因子类型的预测分类;trials一个整数时为指定的迭代次数,一个值表示一个单一的模型;costs表示与可能出现的错误相关的成本矩阵。该矩阵应具有碳列和行,其中,C是类级别的数 predict()预测函数需要指定type=”class”来分类

3、在R中我们使用rpart包中的rpart()函数实现树回归(CART) 使用tree包中的tree()函数实现CART算法

4、party包中的ctree(formula, data, controls)函数:决策树。formula为模型拟合公式;data为训练数据集;controls为树的控制条件,为ctree_control类。

party包中的ctree_control(minsplit, minbucket, maxsurrogate, maxdepth)函数:party包中决策树的控制条件。minsplit控制一个最小权重和的节点以便进行分割;minbusket设置了一个最小权重和的叶子节点;maxsurrogate表示替代分裂点的数量以便用于评估;maxdepth控制决策树的深度。其中,minsplit/minbusket可以设置为训练集的1/100,这些参数的值可以根据商业问题、领域专家的经验、数据、执行算法需要的合理时间以及决策树的期望规模来设置。

六、随机森林

1、R语言中有两个软件包可以运行随机森林,分别是randomForest(Liaw,2012)和party randomForest包中的randomForest(formula, data, ntree, nPerm, mtry, proximity, importace)函数:随机森林分类与回归。ntree表示生成决策树的数目(不应设置太小);nPerm表示计算importance时的重复次数,数量大于1给出了比较稳定的估计,但不是很有效(目前只实现了回归);mtry表示选择的分裂属性的个数;proximity表示是否生成邻近矩阵,为T表示生成邻近矩阵;importance表示输出分裂属性的重要性。

函数randomForest()中有两个非常重要的参数,而这两个参数又将影响模型的准确性,它们分别是mtry和ntree。一般对mtry的选择是逐一尝试,直到找到比较理想的值,ntree的选择可通过图形大致判断模型内误差稳定时的值。randomForest包无法处理包含缺失值或者拥有超过32个等级水平的分类变量。

randomForest包中的rfImpute(formula, data)函数:填补缺失值的预测数据使用接近于随机森


R常用数据挖掘函数(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:福师1203考试批次《小学生心理健康教育》复习题及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: