由于对r相对比较熟悉,先用的r处理数据,但是跑模型太慢,因此用py跑的模型。用了逻辑回归和随机森林,显然后者要好很多,因为维度一千多个,而且逻辑回归要涉及到更详细的特征处理,第一部分是r代码,第二部分是py
一 r code
rm(list=ls())
library(caret)train_x<-read.csv("train_x.csv",header=T)#读取x
train_y<-read.csv("train_y.csv",header=T)#读取y
train<-merge(train_x,train_y,by.x="uid",by.y="uid")#合并x和y
rep<-train[train$y==0,]
for (i in 1:6){
rep<-rbind(rep,train[train$y==0,])
}#生成向上样本
train_add<-rbind(train,rep)#形成新添加7次负样本总数的样本
train_add_1<-train_add[,1]#存放合并以及增加样本后的uid
train_add_y<-train_add[,c(1,1140)]#存放合并以及增加样本后的y
names(train_add_y)<-c("uid","y")
train_add_x<-train_add[,-c(1,1140)]#提取需要进行清洗的变量(去掉uid和Y值)
zerovar <