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

2019-04-01 21:37

林。

randomForest包中的varImpPlot(x)函数:变量重要性图,变量的重要性dotchart通过随机森林测量。x为randomForest模型对象。

importance()函数用于计算模型变量的重要性 MDSplot()函数用于实现随机森林的可视化

rfImpute()函数可为存在缺失值的数据集进行插补(随机森林法),得到最优的样本拟合值 treesize()函数用于计算随机森林中每棵树的节点个数

2、party包中的cforest(formula, data, controls)函数:随机森林模型。formula为建模公式;data为训练数据;controls为随机森林生长的参数。

party包中的cforest_unbiased(mtry, ntree)函数:随机森林生长的控制参数。mtry为随机森林算法随机采样输入的变量数;ntry为随机森林的树数目。 七、支持向量机

1、e1071包中的svm()函数,如下:

svm(formula, data = NULL, …, subset,na.action =na.omit, scale = TRUE)

svm(x, y = NULL, scale = TRUE, type = NULL,kernel =”radial”, degree = 3, gamma = if(is.vector(x)) 1 else 1 / ncol(x),coef0 = 0, cost = 1, nu = 0.5,class.weights = NULL, cachesize = 40,tolerance = 0.001, epsilon = 0.1,shrinking = TRUE, cross = 0, probability =FALSE, fitted = TRUE, seed = 1L,…, subset, na.action = na.omit) 主要参数说明:

Formula:分类模型形式,在第二个表达式中使用的的x,y可以理解为y~x。 Data:数据集

Subset:可以指定数据集的一部分作为训练集 Na.action:缺失值处理,默认为删除数据条目

Scale:将数据标准化,中心化,使其均值为0,方差为1.默认自动执行。

Type:SVM的形式,使用可参见上面的SVMformulation,type的选项有:C-classification,nu-classification,one-classification (for novelty detection),eps-regression,nu-regression。后面两者为利用SVM做回归时用到的,这里暂不介绍。默认为C分类器,使用nu分类器会使决策边界更光滑一些,单一分类适用于所有的训练数据提取自同一个类里,然后SVM建立了一个分界线以分割该类在特征空间中所占区域和其它类在特征空间中所占区域。

Kernel:指的是支持向量机的类型。在非线性可分时,我们引入核函数来做非线性可分,R提供的核介绍如下:线性核linear:使用它的话就成为线性向量机,效果基本等价于Logistic回归。但它可以处理变量极多的情况,例如文本挖掘;多项式核(polynomial):n次多项式核函数,适用于图像处理问题。选择n的好方法是从1(一个线性模型)开始,然后递增至估计误差不再改进为止。通常,相当小的数目就足够了;高斯核(radial):高斯核函数,最流行易用的选择。参数包括了sigma,其值若设置过小,会有过度拟合出现;Sigmoid核(sigmoid):反曲核函数,多用于神经网络的激活函数,默认为高斯核(RBF);

在kernlab包中,可以自定义核函数,实践中,核函数的选择一般并不导致结果准确率的很大差别(也有特例!)。

Degree:多项式核的次数,默认为3

Gamma:除去线性核外,其他的核的参数,默认为1/数据维数 Coef0,:多项式核与sigmoid核的参数,默认为0

Cost:C分类的惩罚项C的取值,是违反约束时的成本函数。 Nu:nu分类,单一分类中nu的取值

Cross:做K折交叉验证,计算分类正确性。

class.weights用来指定各类别的权重(可用在各类数目不相同时)。 probability:是否允许概率预测。

e1071包中的tune(method, train.x, train.y, kernel, ranges)函数:使用网格搜索的参数调整。method为需要调整的函数;train.x/train.y预测的自变量和因变量(可以用formula代替);kernel为模型使用的核函数;ranges为采样空间的参数向量。

e1071包中的 tune.svm(formula, data, gamma, cost)函数:调整函数。 fitted(object, …)返回模型在训练集上的预测值。 predict (object, …)返回模型的预测结果。当x是训练集时,pred <- predict(model, x)相当于pred <- fitted(model) predict函数分类需要指定type=”class”

klaR包的svmlight()函数也可以实现SVM(支持向量机)算法。 2、kernlab包中的ksvm(formula, data, kernal, type, kpar, C, prob.model)函数:支持向量机模型。C约束违约成本(默认值:1)这是’C’的正规化长期在拉格朗日公式;kernel用于训练和预测的核心功能。这个参数可以被设置为任何函数,类的内核参数,它计算的内部产品在特征空间中的向量参数。kernlab提供最流行的核心功能,可以通过设置内核参数的字符串: rbfdot径向基核“高斯” polydot多项式核函数 vanilladot线性核 tanhdot双曲正切核 laplacedot拉普拉斯核 besseldot贝塞尔核

anovadot ANOVA RBF核函数 splinedot样条核

type表示是用于分类还是回归,还是检测,取决于y是否是一个因子。缺省取C-svc或eps-svr。可取值有

? C-svc C classification ? nu-svc nu classification

? C-bsvc bound-constraint svm classification ? spoc-svc Crammer, Singer native multi-class ? kbb-svc Weston, Watkins native multi-class ? one-svc novelty detection ? eps-svr epsilon regression ? nu-svr nu regression

? eps-bsvr bound-constraint svm regression

kpar超参数(核参数)的列表。这是一个列表,其中包含了用于内核函数的参数。对于现有内核的有效参数:

sigma inverse kernel width for the Radial Basis kernel function “rbfdot” and the Laplacian kernel “laplacedot”.

degree, scale, offset for the Polynomial kernel “polydot”

scale, offset for the Hyperbolic tangent kernel function “tanhdot” sigma, order, degree for the Bessel kernel “besseldot”. sigma, degree for the ANOVA kernel “anovadot”.

length, lambda, normalized for the “stringdot” kernel where length is the length of the strings considered, lambda the decay factor and normalized a logical parameter determining if the kernel evaluations should be normalize

prob.model如果设置为true,建立一个模型类的概率或在回归计算,计算拟合残差的拉普拉斯分布的尺度参数。对输出数据进行拟合,对训练数据进行交叉验证了3倍。默认为F。 二分类问题:

x <- rbind(matrix(rnorm(120), ,2), matrix(rnorm(120, mean=3), , 2)) y <- matrix(c(rep(1,60), rep(-1, 60)))

svp <- ksvm(x, y, type=”C-svc”, kernel=”rbfdot”, kpar=list(sigma=2)) plot(svp)

八、神经网络:

1、nnet包中的class.ind(cl)函数:从一个因子生成类指标矩阵。cl为类的因子或向量。返回值为:除了与类对应的列外,该矩阵为0。生成类别的示性函数 nnet包中的nnet(x, y, size, rang, decay, maxit, skip, Hess, trace)函数:单层的前向神经网络模型。size神经网络隐藏层的神经元个数;rang初始随机权值[-rang, rang];decay经元输入权重的一个修改偏正参数,表明权值是递减的(可以防止过拟合);maxit最大反馈迭代次数;skip是否允许跳过隐藏层;Hess是否输出Hessian值;trace指出是否要最优化。 适用于神经网络的方法有predict,print和summary等,nnetHess函数用来计算在考虑了权重参数下的Hessian矩阵,并且检验是否是局部最小。 2、AMORE包中的newff(n.neurons, learning.rate.global, momentum.global, error.criterium, Stao, hidden.layer, output.layer, method)函数:创建多层前馈神经网络。n.neurons是个数值向量,包含在每个层的神经元的数目,第一个数是输入神经元的数量,最后是输出神经元的数量,其余的都是隐藏层神经元的数量;learning.rate.global全局的学习率;momentum.global全局的动量值(有的学习算法需要设置这个值貌似是步长);error.criterium误差衡量算法,我用误差平方和,所以选“LMS”,“LMLS”为对数平方差,“TAO”为TAO Error;hidden.layer隐藏层激活函数;output.layer输出层激活函数;method学习方法,翻译过来都是梯度下降,不是BP最速下降;Stao 为Taobao错误判断标准。

AMORE包中的train(net, P, T, error.criterium, report, show.step, n.shows)函数:神经网络训练函数。对于一个给定的数据集(训练集),此功能修改的神经网络的权重和偏差的近似的训练集中存在的变量之间的关系。这些可以满足一些需要,即拟合非线性函数。

其中,net为神经网络训练;P为输入的训练集;T为输出的训练集;error.criterium为衡量拟合优度的标准(LMS、LMLS、TAO);report表示训练函数是否保持安静(或应在训练过程中提供图形/文字信息);show.step直到训练函数给出结果的最大值;n.shows报告训练的次数。

AMORE包的sim(net, P)函数:计算给定数据集神经网络的输出值。net模拟神经网络;P输入数据集。

3、neuralnet包中的neuralnet(formula, data, hidden)函数:神经网络训练函数。hidden一个向量的整数,指定在每一层中的隐层神经元(顶点)的数目。hidden=c(3)表示第一个隐藏层的3个隐藏单元;hidden=c(3, 2)分别表示第一、第二隐藏层的3个和2个隐藏单元。 neuralnet包中的compute(x, covariate):神经网络计算一个给定的变量向量。x为NN的模型;covariate用来训练神经网络的数据框或矩阵。相当于predict函数(neuralnet中无predict函数)

九、聚类:层次聚类、动态聚类Kmeans、 距离和相似系数

stats包中的dist(x, method = “euclidean”,diag = FALSE, upper = FALSE, p = 2) :来计算距离。 其中,x是样本矩阵或者数据框。

method表示计算哪种距离,method的取值有:“euclidean” 欧几里德距离,就是平方再开

方;“maximum ”切比雪夫距离;“manhattan”绝对值距离;“canberra” Lance 距离;“minkowski”明科夫斯基距离,使用时要指定p值;“binary ”定性变量距离.定性变量距离:记m个项目里面的 0:0配对数为m0 ,1:1配对数为m1,不能配对数为m2,距离=m1/(m1+m2); diag 为TRUE的时候给出对角线上的距离。 upper为TURE的时候给出上三角矩阵上的值。 stats包中的as.dist(m, diag=F, upper=F)函数:m为距离信息的对象将被转换为一个“dist”对象。默认的方法,“dist”对象,或一个矩阵(距离)或一个对象可以强制转换为一个矩阵。(仅使用矩阵的下三角,其余的则被忽略)。diag是否显示距离矩阵的对角线。upper是否显示矩阵的上三角。

stats包中的scale(x, center = TRUE, scale = TRUE) :对数据矩阵做中心化和标准化变换。如只中心化 scale(x,scale=F) ,

eigen():返回矩阵的特征值和特征向量

stats包中的sweep(x, MARGIN, STATS, FUN=”-“, …) :对矩阵进行运算。MARGIN为1,表示行的方向上进行运算,为2表示列的方向上运算。STATS是运算的参数。FUN为运算函数,默认是减法。

fpc包中的plotcluster(x, clvecd)函数:判别投影图。x为矩阵或者可以转化为矩阵的数字对象;clvecd为可以转化为整数的类向量。 1、层次聚类

stats包中的hclust(d, method = “complete”, members=NULL) 函数:进行层次聚类。d为距离矩阵;method表示类的合并方法,single最短距离法,complete最长距离法,median中间距离法,mcquitty 相似法,average 类平均法,centroid重心法,ward离差平方和法;members为NULL或d长度的矢量。

stats包中的cutree(tree, k, h)函数:把一棵树变成一组数据。tree为hclust()函数产生的数;k为分组数。

stats包中的rect.hclust(tree, k = NULL, which = NULL, x = NULL, h = NULL,border = 2, cluster = NULL)函数:绘制矩形周围的层次聚类,来确定类的个数。 tree就是求出来的对象。k为分类的个数,h为类间距离的阈值。border是画出来的颜色,用来分类的。 2、动态聚类:Kmeans

stats包中的kmeans(x, centers, iter.max = 10, nstart = 1,algorithm =c(“Hartigan-Wong”, “Lloyd”,”Forgy”, “MacQueen”)):来进行聚类。x为数字矩阵。centers是初始类的个数或者初始类的中心。iter.max是最大迭代次数。nstart是当centers是数字的时候,随机集合的个数。algorithm是算法,默认是第一个。 3、DBSCAN聚类

fpc包中的dbscan(data, eps, MinPts, scale, method, seeds, showplot, countmode)函数:产生基于密度的任意形状的聚类。data为数据框或矩阵;eps是距离的半径,eps参数设为0.6,即两个点之间距离小于0.6则归为一个簇;minpts是最少多少个点; scale是否标准化(我猜) ;method 有三个值raw,dist,hybird,分别表示,数据是原始数据避免计算距离矩阵,数据就是距离矩阵,数据是原始数据但计算部分距离矩阵;showplot画不画图,0不画,1和2都画;countmode,可以填个向量,用来显示计算进度。

如果eps设置过大,则所有的点都会归为一个簇,如果设置过小,那么簇的数目会过多。如果MinPts设置过大的话,很多点将被视为噪声点。 fpc包中的plotcluster(x, clvecd)函数:判别投影图。x为矩阵;clvecd为用整数表示类的向量。 十、EM算法:最大期望算法(Expectation-maximizationalgorithm,又译期望最大化算法) 1、mclust包中的Mclust(data, G)函数:基于模型的聚类,BIC EM采用分层高斯混合模型聚

类初始化参数优化模型。G为BIC要计算的混合分量的整数向量;

mclust包中的mclustBIC()函数:BIC基于模型的聚类。predict函数分类需要指定type=”class” 十一、Bootstrap(自助法)算法

boot包中在boot(data, statistic, R, formula)函数:自助算法。data:数据,可以是向量,矩阵,数据框;statistic:统计量,如均值,中位数,回归参数,回归里的R^2等;R:调用统计量函数次数

boot包中的boot.ci(boot.out, type)函数:实现Bootstrap置信区间的计算。boot.out为boot()的输出结果;type返回置信区间的类型,R中提供的有”norm” ,”basic”, “stud”,”perc”, “bca”,all可以指定包含所有。 十二、bagging(装袋)算法

1、ipred包中的bagging(formula, data)函数:装袋分类,回归和存活树。 2、adabag包中的bagging(formula, data)函数:装袋分类,回归和存活树。 十三、Boosting、adaboost、xgboost

1、boosting回归,使用到的函数包为mboost,使用函数为mboost.用法如下: mboost(formula, data = list(),

baselearner = c(“bbs”, “bols”, “btree”, “bss”, “bns”), …)

其中formular需要使用到函数btree():

btree(…, tree_controls = ctree_control(stump = TRUE, mincriterion = 0, savesplitstats = FALSE)) 2、adabag包中的boosting(formula, data)函数:用Adaboost.M1算法创建模型。

adabag包中的errorevol(object, newdata)函数:计算误差演变的步骤。object为boosting()函数或bagging()函数的输出;newdata为新数据。 predict函数分类需要指定type=”class”

3、xgboost包中的xgb.DMatrix(data, missing)函数:构建xgb.dmatrix对象从稠密矩阵,稀疏矩阵或本地文件。data为数据对象;missing表示为稠密矩阵时,选择充当缺失值的数。 xgboost包中的xgboost(data, label, max.depth, eta, nround, objective)函数:创建xgboost模型的一个接口,可以使用更先进的xgb.train()函数接口。data为dgCMatrix、本地文件或者xgb.DMatrix;label为响应变量,如果为本地文件或xgb.DMatrix时不必设置此文件;eta为每提高一步的时间步长;max.depth为树的最大深度;nround为最大迭代次数;objective函数,reg:linear表示线性回归,binary:logistic表示分类的逻辑线性回归。

xgboost包中的xgb.cv(data, label, max.depth, eta, nround, objective, nfold)函数:创建xgboost模型的Cross Valudation功能。data为dgCMatrix、本地文件或者xgb.DMatrix;label为响应变量,如果为本地文件或xgb.DMatrix时不必设置此文件;eta为每提高一步的时间步长;max.depth为树的最大深度;nround为最大迭代次数;objective函数,reg:linear表示线性回归,binary:logistic表示分类的逻辑线性回归;nfold为原始数据集随机划分成大小相等的子样本nfold。

xgboost包中的xgb.train(param=list(), data, nrounds)函数:极限阶梯训练模型。param为参数列表;data作为一个xgb.dmatrix作为输入;nrounds表示迭代的最大次数。 十四、协同过滤:

1、recommenderlab包中的rowCounts(x)函数:每行的评分。x为ratingMatrix对象。 recommenderlab包中的colCounts(x)函数:每列的评分。x为ratingMatrix对象。 recommenderlab包中的rowMeans(x)函数:行式的评级法。x为ratingMatrix对象。

recommenderlab包中的Recommender(data, k, method, Normalize, normalize_sim_matrix, na_as_zero, minRating)函数:创建推荐模型。data为训练数据;K取多少个最相似的item,默认为30;method相似度算法,默认为采用余弦相似算法cosine;Normalize采用何种归一


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

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

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

马上注册会员

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