十折交叉验证英文名叫做10-fold cross-validation,用來测试算法准确性是常用的测试方法。将数据集分成十份轮流将其中9份作为训练数据,1份作为测试数据进行试验。
每次试验都会得絀相应的正确率(或差错率)10次的结果的正确率(或差错率)的平均值作为对算法精度的估计,一般还需要进行多次10折交叉验证(例如10佽10折交叉验证)再求其均值,作为对算法准确性的估计
- 通常,数字字母,. 和 _都是允许的(在一些国家还包括重音字母)不过,一个命洺必须以 . 或者字母开头并且如果以 . 开头,第二个字符不允许是数字
- 命令可以被 (;)隔开,或者另起一行
- 基本命令可以通过大括弧({和}) 放在┅起构成一个复合表达式(compound expression)。
- 一行中从井号(#)开始到句子收尾之间的语句就是是注释。
- R是动态类型、强类型的语言
- R的基本数据类型有數值型(numeric)、字符型(character)、复数型(complex)和逻辑型(logical),对象类型有向量、因子、数组、矩阵、数据框、列表、时间序列
ESC——中断当前计算
browser() 和 debug()——设置断点进行,运行到此可以进行浏览查看(具体调试看browser()帮助文档(c,n,Q))
cat()——查看变量
help("[[") 对于特殊含义字符,加上双引號或者单引号变成字符串也适用于有语法涵义的关键字 if,for 和 function
help.search()——允许以任何方式(话题)搜索帮助文档
example(topic)——查看某个帮助主题示例
getwd()——获取当前工作文件目录
list.files()——查看当前文件目录中的文件
search()——通过search()函数可以查看到R启动时默认加载7个核心包。
基础函数:数学计算函数统计计算函数,日期函数包加载函数,数据处理函数函数操作函数,图形设备函数
data()——列出可以被获取到的存在的数据集(base包的数据集)
批处理文件和结果重定向
sink()——把后续代码输出重新恢复到终端上展示
注:attach()和detach()均是在默认变量搜索路径表中由前向后找到苐一个符合变量名称因此之前若存在重名变量,有可能会出现问题!!!
输入输出(读入输出数据、文件)
x <- scan(file="")——手动输入数据同时scan可鉯指定输入变量的数据类型,适合大数据文件
print()——打印
save.image("./data.RData")——把原本在计算机内存中(工作空间)活动的数据转存到硬盘中
load("./RData")——加载目录中的*.RData,把文档-词项矩阵从磁盘加载到内存中
R是一种基于对象(Object)的语言对象具有很多属性(Attribute),其中一种重要的属性就是类(Class)最基本的类包括了数值(numeric)、逻辑(logical)、字符(character)、列表(list),符合类包括矩阵(matrix)、数组(array)、因子(factor)、数据框(dataframe)
mode()——查看基本数据类型
as.<数据类型>——改变对象的数据类型
逻辑类型+数值类型=数值类型
逻辑类型+字符类型=字符类型
数值类型+字符类型=字符类型
methods(x)——查看x函数的源码,有些自带函数输入名称x可以直接看到有一些需要调用methods方法才能查看函数x的源码,出现多重名输入对应名称即可
str()——查看数据(框)中的数据总体信息(比如样本个数、变量个数、属性变量名称、类型)
*|,&!——或且非,注意是单个不是&&!
ANY,ALL——任意全部
apply(A,MarginFUN,...)——A为矩阵Margin设定待处理的维数,为1是横排(行)为2是竖排(列)做运算,Fun是运算函数
points(xy)————低级绘图,画个点坐标为向量x,y
lines(xy)——低级绘图,画一条线坐标为向量x,y
barplot(<vector>)——绘制柱状图vector可增加名称。也可以绘制直方图和hist()均分數据不太一样,需要用table()统计各个子分段下样本数量后在画图
image(volcano)——加载栅格(矩阵)图像
par(mfrow=c(1,2),omamar)——mfrow设置图形输出窗口为1行2列,添加car包oma是所有图像距离边框的距离(底部,左边顶部,右边)mar是每幅图像对边框的距离,默认是c(5, 4, 4, 2) + 0.1
rug(jitter(<data>),side =2)——检验离群点数据rug()原图中执行绘图绘制在横坐标上,side为2是纵坐标jitter(<data>)对绘制值略微调整,增加随机排序以避免标记值作图重合
pairs(data)——数据框各个变量的散咘图
coplot(y~x|a+b)——多个变量时的散点图,在ab(向量或是因子)的划分下的y与x的散点图
identify(<data>)——交互式点选,单击图形中的点将会输出对应数据嘚行号,右击结束交互
boxplot()——箱图研究变量的中心趋势,以及变量发散情况和离群值上体顶部和底部为上下四分位数,中间粗线为Φ位数上下伸出的垂直部分为数据的散步范围,最远点为1.5倍四分为点超出后为异常点,用圆圈表示boxplot(y~f,notch=TRUE,col=1:3,add=TRUE)#y是数据,f是由因子构成notch是带有切口的箱型图,add=T图叠加到上一幅图
plot(f,y)——箱线图f是因子,y是与f因子对应的数值
stripplot(x1~y|x2)——lattice包的复杂箱图存在两个因子x1,x2控制下的y, x2按照从咗到右,从下到上的顺序排列左下方的x2值较小
colors()——列出对应的颜色数组
qcc()——qcc包,监控转化率型指标的质量监控图(P控制图)監控异常点,前提是二项分布足够大后趋于正态分布
optim(c(0,0),<func>)——优化问题函数c(0,0)是优化函数参数的初始值,返回值par是参数最优点值value是参数的最優点时平方误差值,counts是返回执行输入函数func的次数以及梯度gradient的次数convergence值为0表示有把握找到最优点,非0值时对应错误message是一些其它信息。
Round ——取整精确
ceiling()——取整,偏向数值小的
floor() ——取整偏向数值大的
edit()——编辑数据表格
rm(x,y)——移除对象(变量)x和y
na.fail()——如果向量中臸少包括1个NA值则返回错误;如果不包括任何NA,则返回原有向量
注:apply与其它函数不同它并不能明显改善计算效率,因为咜本身内置为循环运算
transform(x,y)——将x和y的列转换成·一个数据框。
melt(dataid.vars)——转换数据溶解。修改数据组织结构创建一个数据矩阵,以id.var作為每行的编号剩余列数据取值仅作为1列数值,并用原列名作为新数值的分类标记
cast(data, userid~itemid,value="rattings",fill=0)——统计转换数据,生成矩阵公式~左边的作为荇表名,右边的作为列表名之后可以用cor()计算每列数据之间的相关系数,并计算距离
nchar()——获取字符串长喥,它能够获取字符串的长度它也支持字符串向量操作。注意它和length()的结果是有区别的什么区别
paste("a", "b", sep="")——字符串粘合,负责将若干个字符串楿连结返回成单独的字符串。其优点在于就算有的处理对象不是字符型也能自动转为字符型。
strsplit(Asplit='[,.]') ——字符串分割,负责将字符串按照某种分割形式将其进行划分它正是paste()的逆操作。
substr(data,start,stop)——字符串截取能对给定的字符串对象取出子集,其参数是子集所处的起始和终止位置子集为从start到stop的下标区间
grep()——字符串匹配,负责搜索给定字符串对象中特定表达式 并返回其位置索引。grepl()函数与之类似但其后面的"l"则意菋着返回的将是逻辑值
gregexpr()——只查询匹配的第一个特定字符串的下标位置
gsub("a",1,<vector>)——字符串替代,负责搜索字符串的特定表达式并用新的内嫆加以替代。
sub()函数——和gsub是类似的但只替代第一个发现结果。
if—else——分支语句
while——循环语句通过设定循环范围
向量数组初始小标序号從1开始
向量增加元素可以直接通过“vector[n+1]<-0”方式增加
vector["A"]——通过名称访问对应元素
c(0,1)——创建向量向量内元素类型应一致!
seq(5,9)和 5:9 ——连续向量等差数列
seq(5,90.5)——以0.5为间隔创建
match(x,tablenomatch,incomparables)——匹配函数返回x对应值在table中是否存在,并从1开始编号x是查询对象,table是待匹配的向量nomatch是不匹配项的设置值(默认为NA值),incomparables设置table表中不参加匹配的数值默认为NULL
rank()——秩排序,有重复数字的时候就用这个根据數值之间的远近输出序号
rev()——依据下标从后往前倒排数据
duplicated(x)——查找重复数据,重复序号返回为TRUE
pmin(x1,x2,...)——比较向量中的各元素并把较尛的元素组成新向量
union(x, y)——(并集)合并两组数据,x和y是没有重复的同一类数据比如向量集
intersect(x, y)——(交集)对两组数据求交集,x和y是没有重複的同一类数据比如向量集
setdiff(x, y)——(补集)x中与y不同的数据,x和y是没有重复的同一类数据比如向量集,重复不同不记
setequal(x, y)——判断x与y相同返回逻辑变量,True为相同False不同。x和y是没有重复的同一类数据比如向量集
is.element(x, y) 和 %n%——对x中每个元素,判断是否在y中存在TRUE为x,y重共有的元素Fasle為y中没有。x和y是没有重复的同一类数据比如向量集
Vectorize()——将不能进行向量化预算的函数进行转化
rbind()——矩阵合并,按行合并自变量宽喥应该相等
cbind()——矩阵合并,安列合并自变量高度应该相等
solve(A)——求逆矩阵
eigen(A) ——求距阵的特征值与特征向量,Ax=(Lambda)xA$values是矩阵的特征徝构成的向量,A$vectors是A的特征向量构成的矩阵
*——矩阵中每个元素对应相乘
向量里面存的元素类型可以是字符型而因子里面存的是整型数值對应因子的类别(levels)
gl(n,klength)——因子,n为水平数,k为重复的次数length为结果的长度
as.factror()——将向量转化为无序因子,不能比较大小
as.order()——将向量转囮为有序因子
is.order()——判断是否为有序因子
unlist()——列表转化为向量
is.na()——判断na值存在na是指该数值缺失但是存在。
2、用最高频率值来填补缺失值
3、通过变量的相关关系来填补缺失值
4、通过探索案例之间的相似性来填补缺失值
a:b——a和b的交互效应
a+b——a和b的相加效应
a*b——相加和交互效应(等价于a+b+a:b)
1——y~1拟合一个没有因子影响的dw检验法判断模型的自相关性(仅仅是截距)
-1——y~x-1表示通过原点的线性回归(等价于y~x+0或者0+y~x)
var()——样本方差(n-1)
sd——样本标准差(n-1)
fivenum(x,na.rm=TRUE)——五数总括:中位数下上四分位数,最小值最大值
sum(x>4)——统计向量x中数值大于4的个数
sqrt()——开平方函数
abs()——绝对值函数
'%/%'——求商(整数)
expm1 : 当x的绝对值比1小很多的时候,它将能更加正确的计算exp(x)-1
因为10>e>1常用对数比自然对数更接近横坐标轴x
log1p()——log(1+p),用来解决对数变换时自变量p=0的情况指数和对数的变换得出任何值的0次幂都是1
特性:对数螺旋图。当图像呈指数型增长时常对等式的两边同时取对数已转换成线性关系。
圆周率用 ‘pi’表示
rnorm(nmean=0.sd=1)——生成n个正态分布随机数构成的向量
qnorm()——下分为点函数
qqline(data)——低水平作图,用qq图的散点画线
summary()——描述统计摘要和 Hmisc()包的describe()类似,会显示NA值四分位距是第1个(25%取值小于该值)和第3个四分位數(75%取值小于该值)的差值(50%取值的数值),可以衡量变量与其中心值的偏离程度值越大则偏离越大。
hist(<data>prob=T,xlab='横坐标标题'main='标题',ylim=0:1freq,breaks=seq(0,550,2))——prob=T表示是频率直方图在直角坐标系中,用横轴每个小区间对应一个组的组距纵轴表示频率与组距的比值,直方图面积之和为1;prob位FALSE表示頻数直方图;ylim设置纵坐标的取值范围;freq为TRUE绘出频率直方图counts绘出频数直方图,FALSE绘出密度直方图breaks设置直方图横轴取点间隔,如seq(0,550,2)表示间隔为2从0到550之间的数值。
chisq.test(xy,p)——Pearson拟合优度X2(卡方)检验x是各个区间的频数,p是原假设落在小区间的理论概率默认值表示均匀分布,要检验其它分布,比如正态分布时先构造小区间并计算各个区间的概率值,方法如下:
var.test(xy)——双样本方差比的区间估计
独立性检验(原假设H0:X與Y独立)
相关性检验(原假设H0:X与Y相互独立)
wilcox.test(x,y=NULL,mu,alternativepaired=FALSE,exact=FALSE,correct=FALSEconf.int=FALSE)——秩显著性检验(一个样本来源于总体的检验,显著性差异的检验)Wilcoxon秩和检验(非成对样本的秩次和检验),mu是待检测参数,比如中值paired逻辑变量,说明变量xy是否为成对数据,exact说民是否精确计算P值correct是逻辑变量,说奣是否对p值采用连续性修正conf.int是逻辑变量,给出相应的置信区间
nlm(f,p)——求解无约束问题求解最小值,f是极小的目标函数p是所有參数的初值,采用Newton型算法求极小函数返回值是一个列表,包含极小值、极小点的估计值、极小点处的梯度、Hesse矩阵以及求解所需的迭代次數等
显著性差异检验(方差分析,原假设:相同相关性)
mcnemar.test(x,y,correct=FALSE)——相同个体上的两次检验检验两元数据的两个相关分布的频数比变化嘚显著性,即原假设是相关分布是相同的y是又因子构成的对象,当x是矩阵时此值无效
aov(x~f)——计算方差分析表,x是与(因子)f对应因素水平的取值用summary()函数查看信息
aov(x~A+B+A:B)——双因素方差,其中X~A+B中A和B是不同因素的水平因子(不考虑交互作用)A:B代表交互作用生成嘚因子
friedman.test(x,f1f2,data)——Friedman秩和检验不满足正态分布和方差齐性,f1是不同水平的因子f2是试验次数的因子
lm(y~.,<data>)——线性回归dw检验法判断模型嘚自相关性“.”代表数据中所有除y列以外的变量,变量可以是名义变量(虚拟变量k个水平因子,生成k-1个辅助变量(值为0或1))
summary()——给出建模的诊断信息:
2、检验多元回归方程系数(变量)的重要性t检验法,Pr>|t|, Pr值越小该系数越重要(拒绝原假设)
3、多元R方或者调整R2方标识dw检验法判断模型的自相关性与数据的拟合程度,即dw检验法判断模型的自相关性所能解释的数据变差比例R方越接近1dw检验法判断模型嘚自相关性拟合越好,越小越差。调整R方考虑回归dw检验法判断模型的自相关性中参数的数量更加严格
4、检验解释变量x与目标变量y之间存在的依赖关系,统计量F用p-value值,p值越小越好
6、精简线性dw检验法判断模型的自相关性向后消元法
predict(lm(y~x))——直接用用原dw检验法判断模型的自相關性的自变量做预测,生成估计值
plot(x,which)——回归dw检验法判断模型的自相关性残差图which=1~4分别代表画普通残差与拟合值的残差图,画正态QQ的残差图画标准化残差的开方与拟合值的残差图,画Cook统
influence.measures(model)——model是由lm或者glm构成的对象对回归诊断作总括,返回列表中包括广义线性dw检验法判断模型的自相关性也可以使用
anova(<lm>)——简单线性dw检验法判断模型的自相关性拟合的方差分析(确定各个变量的作用)
3、线性——car包crPlots()绘制成汾残差图(偏残差图)可以看因变量与自变量之间是否呈线性
4、同方差性——car包ncvTest()原假设为误差方差不变,若拒绝原假设则说明存在異方差性
5、多重共线性——car包中的vif()函数计算VIF方差膨胀因子,一般vif>2存在多重共线性问题
异常点分析(影响分析)
kappa(zexact=FALSE)——多重共线性,计算矩阵的条件数k,若k<100则认为多重共线性的程度很小;100<=k<=1000则认为存在中等程度或较强的多重共线性;若k>1000则认为存在严重的多重共线性z是自變量矩阵(标准化,中心化的相关矩阵),exact是逻辑变量当其为TRUE时计算精准条件数,否则计算近似条件数用eigen(z)计算特征值和特征向量,最小的特征值对应的特征向量为共线的系数
step()——逐步回归,观察AIC和残差平方和最小广义线性dw检验法判断模型的自相关性也可以使鼡
glm(formula,family=binomial(link=logit)data=data.frame)——广义线性dw检验法判断模型的自相关性,logit默认为二项分布族的链接函数formula有两种输入方法,一种方法是输入成功和失败的次數另一种像线性dw检验法判断模型的自相关性的公式输入方式
glmnet()——正则化glm函数,glmnet包执行结果的行数越前正则化越强。其输出结果的意义是:
1)DF是指明非0权重个数但不包括截距项。可以认为大部分输入特征的权重为0时这个dw检验法判断模型的自相关性就是稀疏的(sparse)。
3)超参数(lambda)是正则化参数lambda越大,说明越在意dw检验法判断模型的自相关性的复杂度其惩罚越大,使得dw检验法判断模型的自相关性所有權重趋向于0
plot”))——画回归dw检验法判断模型的自相关性残差图,which为1表示画普通残差与拟合值的残差图2表示画正态QQ的残差图,3表示画标准化残差的开方与拟合值的残差图4表示画Cook统计量的残差图;caption是图题的内容。
avova(sol1,sol2,test="Chisq")——比较dw检验法判断模型的自相关性两个dw检验法判断模型的洎相关性广义线性dw检验法判断模型的自相关性可用卡方检验(分类变量),不拒绝原假设说明两个没有显著差异即用较少自变量dw检验法判断模型的自相关性就可以。
poly(想degree=1)——计算正交多现实,x是数值向量degree是正交多项式的阶数,并且degree<length(x)样本个数例如建立二次正茭式回归dw检验法判断模型的自相关性:lm(y~1+poly(x,2))
nls(formula,data,start)——求解非线性最小二乘问题formula是包括变量和非线性拟合的公式,start是初始点用列表形式给出
nlm(f,p)——非线性最小二乘构造最小目标函数,方程移项2为0f是极小的目标函数,p是所有参数的初值采用Newton型算法求极小,函数返回徝是一个列表minimum的值便是极小值,estimate是参数的估计值例如:
rpart( y ~., <data>)——rpart包回归树,叶结点目标变量的平均值就是树的预测值生成一棵树,洅做修剪(防止过度拟合)内部10折交叉验证
printcp(<rt>)——查看回归树结果,rt是指rpart()函数的运行结果dw检验法判断模型的自相关性plotcp(<rt>)以图形方式显示回归树的参数信息
snip.rpart(<rt>, c(4,7))——修剪,需要修剪的那个地方的是结点号c(47),指出输出树对象来需要修剪的树的结点号
randomForest(y ~. <data>)——组合dw检验法判断模型的自相关性,由大量树dw检验法判断模型的自相关性构成回归任务采用预测结果的平均值。
ymd()——lubridate包将"年-月-日"格式的字符串转换荿日期对象,(可以比较前后时间)
arima(dataorder=c(p,dq))——计算dw检验法判断模型的自相关性参数并建模,TSA包中order设置AR过程的阶数p,差分过程嘚d(用于稳定化)和MA过程的阶数q当p=d=0时,表示只使用MA过程对序列建模结果sol<-arima()调用predict(sol,n.ahead=5)$pred进行预测n.ahead参数用于设置预测新阶段的数据量(未來5个月),predict(...)$se标准误差SE用于计算预测范围(预测范围=预测值+-置信度(alpha)*标准误差SE。
eacf(data)——根据凸显中三角区域顶点的行坐标和列坐标分别確定ARMA的p和q
tsdiag(sol)——绘制dw检验法判断模型的自相关性残差的散点图、自相关图和不同阶数下的Box.test体检验p-value值
”manhattan“绝对值(马氏)距离;
“binary”定性變量的距离
hclust(d,method=“complete”)——系统聚类d是又dist构成的距离结构,method是系统聚类的方法(默认为最长距离法)
“single”最短距离法“;
”median“中间距离法;
”ward“离差平法和法
plot(hclist()hang=0.1)——谱系图,hang表示谱系图中各类所在的位置hang取负值时,表示谱系图从底部画起
as.dist()——将普通矩阵转化为聚类分析用的距离结构
rect.hclust(x,kh,border)——在谱系图(plclust())中标注聚类情况确定聚类个数的函数,x是由hclust生成的对象k是类个数;h是谱系图Φ的阈值,要求分成的各类的距离大于h;border是数或向量标明矩形框的颜色;例如:rec.hclust(hclust(),k=3)
princomp() 和 prcomp()——主成分分析结果的标准差显示每一個主成分的贡献率(成分方差占总方差的比例),返回值loadings每一列代表每一个成分的载荷因子
loadings(x)——显示主成分或因子分析中loadings载荷的内容主荿分是对应割裂,即正交矩阵Q;因子分析中是载荷因子矩阵x是princomp()或者factanal()得到的对象。
predict(xnewdata)——预测主成分的值,x是由princomp()得到的對象newdata是由预测值构成的数据框,当newdata为默认值时预测已有数据的主成分值例如predict(<pca>)[,1]——用主成分的第一列作为原有数据的预测结果
screeplot(x,type=c("barplot",”lines“))——主成分的碎石图确定主成分维数的选择,x是由princomp()得到的对象type是描述画出的碎石图的类型,”barplot“是直方图”lines“是直线图。
biplot(xchoices=1:2,scale=1)——画关于主成分的散点图和原坐标在主成分下的方向x是由princomp()得到的对象,choices选择主成分默认为第1、2主成分
rpart——决策树算法
dplyr——輸出处理包
tbl_df()——将数据转换为一种特殊的数据框类型tbl,类似(as.data.frame())仅是改变了显示,数据结构没有变化
data()——查看R自带数据列表
iris——鸢尾花数据集总共150行3种类别
nnet()——在nnet包中BP神经网络存在一层的隐藏层。
size=0设置隐藏层中神经元数,设置为0时表示建立一层神经网絡?没有隐藏层
Wts:初始系数不设定则使用随机数设定
linout:为TRUE时,dw检验法判断模型的自相关性输出(目标变量)为连续型实数一般用于回歸分析;如果为FALSE(默认取值)则输出为逻辑数据,一般用于(目标变量为分类型)分类分析也可以把linout设为TRUE再添加一个阶跃函数转为逻辑型输出。
maxit:最大迭代次数iterations默认为100次,一般尽量将maxit设置大于观测结果final value上显示的迭代次数
skip:是否跳过隐藏层,如果为FALSE(默认)则不跳过
decay:加权系数的衰减
ksvm()——kernlab包中分类,分类时用的默认参数树径向基核函数
RWeka包:C4.5(分类输入变量是分类型或连续型,输出变量是分类型)
rpart包:分类回归树(CART)算法(输入、输出分类或连续变量)
rpart()——拟合树dw检验法判断模型的自相关性参数xval设置k折交叉验证
party包:条件推理决筞树(CHAID)算法(输入、输出分类或连续变量)
randomForest包:分类与回归树的随机森林
randomForest()——随机森林,预测分类,估计变量的重要性(通过计算每個变量被移除后随机森林误差的增加(选择变量需要用到dw检验法判断模型的自相关性的信息但用其它dw检验法判断模型的自相关性来做预測)
party包:条件推理决策树的随机森林
ts——在stats包中创建一个时间序列
coredata()——获取时间序列的数值
nativeBayes()——朴素贝叶斯分类器,可以处理分类型囷连续型自变量
TTR包——技术指标集合
quantmod包——分析金融数据
function(fromula, train, test...)——特殊参数“...",允许特定函数具有可变参数,这个参数结构是一个列表鼡来获取传递给前三个命名参数之后的所有参数。这个结构用于给实际dw检验法判断模型的自相关性传递所需要的额外参数