糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 天池大数据比赛-菜鸟仓库比赛-第二赛季记录

天池大数据比赛-菜鸟仓库比赛-第二赛季记录

时间:2020-03-20 15:36:26

相关推荐

天池大数据比赛-菜鸟仓库比赛-第二赛季记录

统计全国仓库预测的前两周 商品_仓库_个数

rm(list=ls())

w=read.table("F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/item_feature2.csv",header = FALSE,sep=",")

e=unique(w$V2)

x=0

for (i in 1:length(e)){

w1=w[which(w$V2==e[i]),]

t1=w1[which(w1$V1 <= "1227"),]

t2=t1[t1$V1>="1214",]

x[i]=sum(t2$V30) #满足两个条件 拆开写

}

y=c(1:length(e))

da=data.frame(e,y,x)

da$y='all'

write.table (da, file ="F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/result01.csv",sep =",",row.names = F,col.names=F,quote =F)

统计区域仓库预测的前两周 商品_仓库_个数

rm(list=ls())

w=read.table("F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/item_store_feature2.csv",header = FALSE,sep=",")

library("stringr")

r1=as.numeric(str_c(w$V2,w$V3,sep='')) #id+仓库号为唯一标示

e=unique(r1)

r=data.frame(r1,w$V31,w$V1)

x=0

for (i in 1:length(e)){

w1=r[which(r$r1==e[i]),]

t1=w1[which(w1$w.V1>="1214"),]

t2=t1[which(t1$w.V1 <= "1227"),]

x[i]=sum(t2$w.V3)

}

tmp=data.frame(w$V2,w$V3)

e1=unique.data.frame(tmp)

da=data.frame(e1,e,x)

da2=data.frame(e1,x)

write.table (da2, file ="F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/result02.csv",sep =",",row.names = F,col.names=F,quote =F)

da[which(da$x>300),]$x=da[which(da$x>300),]$x*1.1

da$x=floor(da$x)

write.table (da, file ="F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/result01_09.csv",sep =",",row.names = F,col.names=F,quote =F).

未来两周的成交量

特征提取

最近两周的成交量x3

最近一周的成交量x2

最近三周的成交量x4

前一个月的成交量x5

最近一天的成交量x1

全国7天间隔的序列

rm(list=ls())

d=seq(as.Date("/10/06"),as.Date("/12/27"), by="day") #生成时间序列

library("stringr")

d=as.numeric(str_replace(str_replace(d,"-",""),"-","")) #替换替换匹配的部分library("stringr")

d=t(as.matrix(as.data.frame(d)))

d=matrix(d,ncol=7,byrow = TRUE) #将矩阵按行切割成14列

w=read.table("F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/item_feature2.csv",header = FALSE,sep=",")

e=unique(w$V2)

x=matrix(rep(0,64),nrow=length(e),ncol=64)

x1=0

x2=0

x3=0

x4=0

x5=0

for (i in 1:length(e)){

w1=w[which(w$V2==e[i]),]

x1[i]=sum(w1[which(w1$V1>="1227"),]$V30)

for (j in 1:64){

t1=w1[which(w1$V1>=d[j,1]),]

t2=t1[which(t1$V1 <= d[j,7]),]

x[i,j]=sum(t2$V30)

}

x2[i]=x[i,64]

x3[i]=x[i,64]+x[i,63]

x4[i]=x[i,64]+x[i,63]+x[i,62]

x5[i]=x[i,57]+x[i,58]+x[i,59]+x[i,60]

}

x[is.na(x)]=0

y=c(1:length(e))

da=data.frame(e,y,x1,x2,x3,x4,x5)

da$y='all'

write.table (da, file ="F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/all_feature.csv",sep =",",row.names = F,col.names=F,quote =F)

训练模型

预测前一天的成交量x1-V3 x1[i]=sum(w1[which(w1$V1>="1213"),]$V30) -12.13s-双12后一天

预测前一周的成交量x2-V4 x[i,62] 12.07-12.13

预测前两周的成交量x3-V5 x[i,62]+x[i,61] 11.30-12.13 含双12

预测前三周的成交量x4-V6 x[i,62]+x[i,61]+x[i,60] 11.23-12.13 含双12

预测前一个月(28天)的成交量x5-V7 x[i,55]+x[i,56]+x[i,57]+x[i,58] 10.19-11.15含有双11

预测的两周的成交量x6-V8 x[i,64]+x[i,63] 12.14-12.27

rm(list=ls())

d=seq(as.Date("/10/06"),as.Date("/12/27"), by="day") #生成时间序列

library("stringr")

d=as.numeric(str_replace(str_replace(d,"-",""),"-","")) #替换替换匹配的部分library("stringr")

d=t(as.matrix(as.data.frame(d)))

d=matrix(d,ncol=7,byrow = TRUE) #将矩阵按行切割成14列

w=read.table("F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/item_feature2.csv",header = FALSE,sep=",")

e=unique(w$V2)

x=matrix(rep(0,64),nrow=length(e),ncol=64)

x1=0

x2=0

x3=0

x4=0

x5=0

x6=0

for (i in 1:length(e)){

w1=w[which(w$V2==e[i]),]

tt1=w1[which(w1$V1>="1213"),]

tt2=tt1[which(tt1$V1<="1213"),]

x1[i]=sum(tt2$V30) #修改sum

for (j in 1:64){

t1=w1[which(w1$V1>=d[j,1]),]

t2=t1[which(t1$V1 <= d[j,7]),]

x[i,j]=sum(t2$V30)

}

x2[i]=x[i,62]

x3[i]=x[i,62]+x[i,61]

x4[i]=x[i,62]+x[i,61]+x[i,60]

x5[i]=x[i,55]+x[i,56]+x[i,57]+x[i,58]

x6[i]=x[i,64]+x[i,63]

}

x[is.na(x)]=0

y=c(1:length(e))

da=data.frame(e,y,x1,x2,x3,x4,x5,x6)

da$y='all'

write.table (da, file ="F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/all_feature_train.csv",sep =",",row.names = F,col.names=F,quote =F)

计算相关性--直接用命令cor(矩阵)就可以了呀。矩阵的第(i,j)个元素就是第i与第j个变量的相关系数

da2=data.frame(x1,x2,x3,x4,x5,x6)

cor(da2)

cor(x1,x6)

cor.test(x1,x6)

1、构建前几天的时间特征---eg:1day 1week 2week 1month 3month 6month 9month 1year ....

时间角度:每一个月前10天中间10天的数据,最后10天..

用户角度:四个类目下不同时间维度下的消费特征每个用户14个月不同天的数据

预测角度:取不同的数据时间段进行预测,对于你得到的预测数据进行一个加权融合

每月每天新增用户的数量

2、计算其相关性---MATLAB平台的库函数Corrcoef,得出的各字段之间的相关性分析--R cor(x,y) cor.test(x,y)

rm(list=ls())

w=read.table("F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/all_feature_train.csv",header = FALSE,sep=",")

w1=w

da=data.frame(w1$V3,w1$V4,w1$V5,w1$V6,w1$V7,w1$V8)

#数据归一化--消除量纲对数据结构的影响

#dad=scale(da,center=F,scale=T)

dad=da

colnames(dad) <- c("V1","V2","V3","V4","V5","V6")

dad=as.data.frame(dad)

dad1=dad[c(1:(length(dad$V1)-10)),]

dad2=dad[c((length(dad$V1)-9):length(dad$V1)),]

library("forecast")

V1=dad1$V1

V2=dad1$V2

V3=dad1$V3

V4=dad1$V4

V5=dad1$V5

V6=dad1$V6

r=lm(V6~V1+I(V2)+I(V3)+I(V4)+I(V5))

p=floor(predict(r,dad2))

t=dad2$V6

data.frame(p,t)

w[954,]

17449 all--受双11影响特别大的--直接lm预测不好--top2week ok

2806 all

2980 all--直接lm预测-出负数--top2week也不好

V1 V2 V3 V4 V5 V6 V7 V8

954 17449 all 11 194 244 325 1797 168

955 19417 all 11 178 247 311 161 137

956 26977 all 6 58 94 117 267 103

957 2806 all 26 716 843 979 2340 781

958 28093 all 2 11 15 24 27 28

959 2980 all 22 410 501 624 5102 126

960 30541 all 2 34 55 65 137 37

961 3346 all 2 7 19 22 63 47

962 3424 all 37 1155 1528 1870 2617 718

963 4969 all 4 53 92 100 91 54

p t 2w t-p t-2w

954 48 168 194 120 -26 --受双11影响特别大的--直接lm预测不好--top2week ok

955 164 137 178 -27 -41 --差距不大

956 71 103 58 32 45 --差距不大

957 256 781 716 525 65 --受双11影响特别大的--直接lm预测不好--top2week ok

958 17 28 11 11 17 --差距不大

959 -4 126 410 130 -284 --直接lm预测-出负数--top2week也不好

960 25 37 34 12 3 --差距不大

961 20 47 7 27 40 --差距不大

962 591 718 1155 127 -437 --受双12影响特别大的--直接lm预测不好--top2week也不好

963 63 54 53 -9 1 --差距不大

找出异常值

boxplot.stats(t1)

预测一周21-27 x6----构造大量特征值用降维度方法判断选什么

预测前一天的成交量x1 12.20

预测前一周的成交量x2 12.14-12.20

预测前两周的成交量x3 12.07-12.20 含双12 (去双12,去双11)

预测前三周的成交量x4 11.30-12.20 含双12

预测前一个月(28天)的成交量x5 11.23-12.20 含双12

预测一周的成交量x6 12.21-12.27

划分7天的周期

rm(list=ls())

d=seq(as.Date("/10/06"),as.Date("/12/27"), by="day") #生成时间序列

library("stringr")

d=as.numeric(str_replace(str_replace(d,"-",""),"-","")) #替换替换匹配的部分library("stringr")

#difftime(as.Date("-4-25"),as.Date("-4-20")) #时间差

d=t(as.matrix(as.data.frame(d)))

d=matrix(d,ncol=7,byrow = TRUE) #将矩阵按行切割成14列

w=read.table("F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/item_feature2.csv",header = FALSE,sep=",")

#去双11 双12

w[which(w$V1==1212),]$V30=0

w[which(w$V1==1111),]$V30=0

#----

e=unique(w$V2)

x=matrix(rep(0,64),nrow=length(e),ncol=64)

for (i in 1:length(e)){

w1=w[which(w$V2==e[i]),]

for (j in 1:64){

t1=w1[which(w1$V1>=d[j,1]),]

t2=t1[which(t1$V1<= d[j,7]),]

x[i,j]=sum(t2$V30)

}

}

#x[is.na(x)]=0

y=c(1:length(e))

da=data.frame(e,y,x)

da$y='all'

x1=0

for (i in 1:length(e)){

w1=w[which(w$V2==e[i]),]

tt1=w1[which(w1$V1>="1220"),]

tt2=tt1[which(tt1$V1<="1220"),]

x1[i]=sum(tt2$V30)

}

x2=da$X63

x3=da$X62+da$X63

x4=da$X61+da$X62+da$X63

x5=da$X60+da$X61+da$X62+da$X63

x6=da$X64

dad=data.frame(da$e,da$y,x1,x2,x3,x4,x5,x6)

write.table (dad, file ="F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/all_feature_train22.csv",sep =",",row.names = F,col.names=F,quote =F)

rm(list=ls())

w=read.table("F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/all_feature_train22.csv",header = FALSE,sep=",")

w1=w

da=data.frame(w1$V3,w1$V4,w1$V5,w1$V6,w1$V7,w1$V8)

#数据归一化--消除量纲对数据结构的影响

#dad=scale(da,center=F,scale=T)

dad=da

colnames(dad) <- c("V1","V2","V3","V4","V5","V6")

dad=as.data.frame(dad)

dad1=dad[c(1:(length(dad$V1)-10)),]

dad2=dad[c((length(dad$V1)-9):length(dad$V1)),]

library("forecast")

V1=dad1$V1

V2=dad1$V2

V3=dad1$V3

V4=dad1$V4

V5=dad1$V5

V6=dad1$V6

r=lm(V6~V1+I(V2)+I(V3)+I(V4)+I(V5))

p=floor(predict(r,dad2))

t=dad2$V6

data.frame(p,t,abs(p-t),abs(dad2$V2-t))

p=floor(predict(r,dad))

t=dad$V6

data.frame(p,t,abs(p-t))

cor(da2)

w[904,]

ggg=read.table("F:/笔记学习/天池比赛/菜鸟需求预测与分仓规划/data2/item_feature2.csv",header = FALSE,sep=",")

t1=ggg[which(ggg$V2==2806),]

t1[which(t1$V1=="1212"),]

954 76 9014 12

955 66 693 1

956 41 487 7

957 258 478 220 175

958 12 164 4

959 93 5736 12

960 19 190 1

961 9 3627 25

962 321 40483 90

963 14 3420 14

去掉双11 12

954 69 9021 12

955 72 693 1

956 43 485 7

957 195 478 283 175

958 11 165 4

959 67 5710 12

960 28 199 1

961 9 3627 25

962 268 404 136 90

963 21 3413 14

预测的数据n2w

1w Double, 07-13

2w Double, 30-13

3w Double, 23-13

1m Double, 16-13

2m Double, 10.05-13

1d Double, 12.13

2d Double, 12.12

3d Double, 12.11

n2w Double -12.14--.12.27

如果觉得《天池大数据比赛-菜鸟仓库比赛-第二赛季记录》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。