其他分享
首页 > 其他分享> > 【数据科学原理与实践】基本建模方法

【数据科学原理与实践】基本建模方法

作者:互联网

数据准备

step 1:加载数据

d <- read.table(filename,header=F,sep='\t')//header:要不要表头

step 2:数据划分:两类划分——训练集合测试集,通过重复划分进行验证/交叉验证估计过拟合(度量标准:AUC)

set.seed(65536) #设置随机种子,使复现时出现相同结果
d$rgroup<-runif(dim(d)[[1]])
dTrainAll<-subset(d,rgroup<=0.9)
dTest<-subset(d,rgroup>0.9) #将数据集划分为训练集和测试集,二者比例9:1
#训练集分一部分作为验证集
useForCal<-rbinom(n=dim(dTrainAll)[[1]],size=1,prob=0.1)>0  #采用伯努利采样划分训练集和验证集
dCal<-subset(dTrainAll,useForCal)
dTrain<-subset(dTrainAll,!useForCal)

构建单变量模型

类别型特征建模:透视表(讲一个特征变量的类别值转换成一个新的数据列)、列联表
数值型特征建模:范围划分,使用范围标签作为一个新的类别型变量

构建多变量模型

变量选择

使用决策树建模

决策树是一种描述对实例进行分类的树形结构:由结点有向边组成。
平均信息量=期望

H(X)=-sum(p(xi)*log(p(xi)))
类别1 类别2 ... 类别n
类别概率 p(x1) p(x2) ... p(xn)
信息量 -log(p(x1)) -log(p(x2)) ... -log(p(xn))

决策树是分类问题中最常用的模型之一,能够接受类别型的特征。决策树的中间结点是决策步骤,叶子结点是决策结果/类别标签

如何创建决策树?
使用封装程序包构建决策树,用挑选出来的变量进行建模。

f<-paste(outcome,'>0 ~ ',paste(selVars,collapse='+'),sep='')
tmodel<-rpart(f,data=dTrain,control=part.control(cp=0.001,minsplit=1000,minbucket=1000,maxdepth=5))
print(calcAUC(predict(tmodel,newdata=dTrain),dTrain[,outcome]))
print(calcAUC(predict(tmodel,newdata=dTest),dTest[,outcome]))
print(calcAUC(predict(tmodel,newdata=dCal),dCal[,outcome]))
#绘制决策树
par(cex=0.7)
plot(tmodel)
text(tmodel)

使用最邻近法建模

k-近邻(kNN)方法通过查找距离目标样本最接近的k个训练样本,然后利用它们的结果均值作为该样本的得分。
算法原理:对每个测试样本x,在训练集中找到离x最近的K个训练样本,根据这K个样本多类别标签投票,多数标签作为x的预测标签。
KNN的时空代价都很高
算法流程

K值选择:

library('class')
nK<-200
knnTrain<-dTrain[,selVars]
knnCl<-dTrain[,outcome]==pos

knnPred<-function(df){
    knnDecision<-knn(knnTrain,df,knnCl,k=nK,prob=T)
    ifelse(knnDecision==TRUE,attributes(knnDecision)&prob,1-(attributes(knnDecision)&prob))
}

print(calcAUC(knnPred(dTrain[,selVars]),dTrain[,outcome]))
print(calcAUC(knnPred(dCal[,selVars]),dCal[,outcome]))
print(calcAUC(knnPred(dTest[,selVars]),dTest[,outcome]))

dCal$kpred<-knnPred(dCal[,selVars])
ggplot(data=dCal)+geom_density(aes(x=kpred,color=as.factor(churn),linetype=as.factor(churn)))

朴素贝叶斯建模

朴素贝叶斯通过记住每个训练变量与结果变量的相关性,将每个变量的条件概率相乘进行预测。

总结

决策树、最近邻和朴素贝叶斯模型简单存储了数据概要

标签:训练,样本,建模,实践,实例,类别,原理,决策树
来源: https://www.cnblogs.com/ting65536/p/16245732.html