您的位置:首页 > 其它

R语言练习-利用决策树模型分析泰坦尼克生还率(1)

2017-12-04 14:34 519 查看

R语言练习-利用决策树模型分析泰坦尼克生还率

一、数据预处理

数据来源:http://biostat.mc.vanderbilt.edu/wiki/Main/DataSets中的titanic3.csv

本文将要用到的数据列:

列名含义
pclass将1/2/3等舱分别保存在1/2/3
survived是否生还
name姓名
sex性别
age年龄
sibsp同城的兄弟或者配偶数
parch同城的父母或者子女数
ticket票号
fare票价
cabin舱号
embarked登陆地:C(Cherbourg,瑟堡),Q(Queenstown,皇后镇),S(Southampton,南安普顿)
1.读入数据,将不适合的列删除,保留适合进行建模的列。

*> #读入数据

titanic<-read.csv(“E:/数据分析/编程/R/file/数据/titanic3.csv”)

去掉后3列,不适合建模

titanic<-titanic[,!names(titanic)%in%c(“body”,”boat”,”home.dest”)]

str(titanic)*

2.转换每列的数据类型转换成适合的数据类型,例如pclass现在是int型,需要转换成字符型

titanicpclass<−as.factor(titanicpclass)

titanicname<−as.character(titanicname)

titanicticket<−as.character(titanicticket)

titaniccabin<−as.character(titaniccabin)

titanicsurvived<−factor(titanicsurvived,levels=c(0,1),labels=c(“dead”,”survived”))

str(titanic) #查看类型

将embarked中的“”(空字符)异常值修改为NA

levels(titanicembarked)levels(titanicembarked)[1]<-NA

table(titanic$embarked,useNA=”always”)

将cabin中的空字符串更换为NA

titaniccabin<−ifelse(titaniccabin==”“,NA,titanic$cabin)

3.分离数据,把数据分成测试数据和训练数据

library(caret)

set.seed(137)

test_idx<-createDataPartition(titanicsurvived,p=0.1)Resample1

titanic.test<-titanic[test_idx,]

titanic.train<-titanic[-test_idx,]

4.用caret包中的createFolds()进行分割,分成10层交叉数据

create_ten_fold_cv<-function(){

+ set.seed(137)

+ lapply(createFolds(titanic.train$survived,k=10),function(idx){

+ return(list(train=titanic.train[-idx,],

+ validation=titanic.train[idx,]))

+ })

+ }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息