{"metadata":{"kernelspec":{"name":"ir","display_name":"R","language":"R"},"language_info":{"name":"R","codemirror_mode":"r","pygments_lexer":"r","mimetype":"text/x-r-source","file_extension":".r","version":"4.0.5"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# **Introduzir a temática**","metadata":{}},{"cell_type":"markdown","source":"## **Carreganado Pacotes**","metadata":{}},{"cell_type":"code","source":"suppressPackageStartupMessages({\n    # Visualização de dados\n    library('ggplot2') \n    library('scales') \n    library('grid') \n    library('gridExtra') \n    library('RColorBrewer') \n    library('corrplot') \n\n    # Manipulação de dados\n    library('dplyr') # data manipulation\n    library('readr') # input/output\n    library('data.table') # data manipulation\n    library('tibble') # data wrangling\n    library('tidyr') # data wrangling\n    library('stringr') # string manipulation\n    library('forcats') # factor manipulation\n    library('Matrix')\n    library('xgboost')\n    library('caret')\n    library('keras')\n    library('tidyverse')\n\n    # Manipulação de data\n    library('lubridate') \n\n    # Extra vis\n    library('ggforce') \n    library('ggridges') \n    })","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:52:51.010277Z","iopub.execute_input":"2022-11-07T13:52:51.018073Z","iopub.status.idle":"2022-11-07T13:52:58.128044Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## **Carregando dados**","metadata":{}},{"cell_type":"code","source":"train = read_csv('../input/kkboxdataset/train.csv')\ntransactions = read_csv('../input/kkboxdataset/transactions.csv')\nmembers = read_csv('../input/kkboxdataset/members_v3.csv') # Informações dos usuários (não tem todos)\nsample_submission_zero = read_csv('../input/kkboxdataset/sample_submission_v2.csv') # Dados de teste (inclui março)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:52:58.132291Z","iopub.execute_input":"2022-11-07T13:52:58.135531Z","iopub.status.idle":"2022-11-07T13:54:23.394049Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"glimpse(train)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:54:23.396611Z","iopub.execute_input":"2022-11-07T13:54:23.398124Z","iopub.status.idle":"2022-11-07T13:54:23.430990Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"glimpse(transactions)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:54:23.434011Z","iopub.execute_input":"2022-11-07T13:54:23.435426Z","iopub.status.idle":"2022-11-07T13:54:23.458702Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"glimpse(members)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:54:23.461659Z","iopub.execute_input":"2022-11-07T13:54:23.463064Z","iopub.status.idle":"2022-11-07T13:54:23.484157Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"glimpse(sample_submission_zero)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:54:23.486524Z","iopub.execute_input":"2022-11-07T13:54:23.487982Z","iopub.status.idle":"2022-11-07T13:54:23.506742Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## **Manipulação de Dados**","metadata":{}},{"cell_type":"markdown","source":"#### **Juntando train e test(sample_submission_zero)**","metadata":{}},{"cell_type":"code","source":"sample_submission_zero$is_churn <- NA # Tirando informações dos dados de treino\ndata <- rbind(train, sample_submission_zero) # Juntando de fato","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:54:23.509433Z","iopub.execute_input":"2022-11-07T13:54:23.510994Z","iopub.status.idle":"2022-11-07T13:54:23.727929Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"head(data)\ntail(data)\nrm(train);gc() # Limpeza para não pesar\ndim(data)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:54:23.730300Z","iopub.execute_input":"2022-11-07T13:54:23.731767Z","iopub.status.idle":"2022-11-07T13:54:27.711483Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### **Formatar membros (variável que contém informações dos usuários)**","metadata":{}},{"cell_type":"code","source":"glimpse(members)\nnames(members)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:54:27.714069Z","iopub.execute_input":"2022-11-07T13:54:27.715566Z","iopub.status.idle":"2022-11-07T13:54:27.742682Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"members = as.data.table(members) # Transforma em tabela\n#members[,gender := as.numeric(gender)] # Tranforma coluna do genero em NA\nmembers[,gender := as.numeric(gender)] # Tranforma coluna do genero em NA\nmembers$gender[is.na(members$gender)] = 0 #  Tranforma coluna do genero que tem NA em 0\n\n#members[,\":=\"(reg_fulldate = members$registration_init_time # Cria uma coluna auxiliar para data\nmembers[,\":=\"(reg_fulldate = members$registration_init_time # Cria uma coluna auxiliar para data\n             ,registration_init_time = as.Date(as.character(registration_init_time), '%Y%m%d'))] # Formata a data\n#members[,\":=\"(reg_year = year(registration_init_time) # Extrai o ano\nmembers[,\":=\"(reg_year = year(registration_init_time) # Extrai o ano\n             ,reg_month = month(registration_init_time) # Extrai o mês\n             ,reg_mday = mday(registration_init_time) # Extrai dia\n             ,reg_wday = wday(registration_init_time) # Extrai dia \n             ,reg_days = as.numeric(difftime(ymd(\"2017/02/28\"),ymd(reg_fulldate),units=\"days\")))] \nmembers <- subset(members, select = -c(registration_init_time)) # Modifica toda variável para negativa","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:54:27.745146Z","iopub.execute_input":"2022-11-07T13:54:27.746677Z","iopub.status.idle":"2022-11-07T13:55:05.831476Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"summary(members)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:55:05.834103Z","iopub.execute_input":"2022-11-07T13:55:05.835585Z","iopub.status.idle":"2022-11-07T13:55:14.667441Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"glimpse(members)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:55:14.670084Z","iopub.execute_input":"2022-11-07T13:55:14.671591Z","iopub.status.idle":"2022-11-07T13:55:15.804475Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#### **Juntando train, test e members**","metadata":{}},{"cell_type":"code","source":"data <- merge(data, members, by = \"msno\", all.x = TRUE) # Juntando de fato","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:55:15.807097Z","iopub.execute_input":"2022-11-07T13:55:15.808540Z","iopub.status.idle":"2022-11-07T13:55:58.874566Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"head(data)\ntail(data)\nglimpse(data)\ndim(data)\nrm(members);gc() # Limpeza para não pesar","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:55:58.877416Z","iopub.execute_input":"2022-11-07T13:55:58.878945Z","iopub.status.idle":"2022-11-07T13:56:02.778442Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### **Formatar transactions (variável que contém informações de pagamento)**","metadata":{}},{"cell_type":"code","source":"glimpse(transactions)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:56:02.780966Z","iopub.execute_input":"2022-11-07T13:56:02.782377Z","iopub.status.idle":"2022-11-07T13:56:02.805573Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"summary(transactions)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:56:02.808083Z","iopub.execute_input":"2022-11-07T13:56:02.809457Z","iopub.status.idle":"2022-11-07T13:56:16.748561Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"most_common_pay_via = function(lis){\n    as.numeric(sort(table(lis),decreasing=TRUE)[1])\n}  \nhead(transactions)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:56:16.750965Z","iopub.execute_input":"2022-11-07T13:56:16.752274Z","iopub.status.idle":"2022-11-07T13:56:16.780212Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"summary(transactions$is_cancel)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:56:16.782676Z","iopub.execute_input":"2022-11-07T13:56:16.784041Z","iopub.status.idle":"2022-11-07T13:56:18.056244Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"transactions1 = transactions %>%\n                select(msno,transaction_date, payment_method_id, payment_plan_days, plan_list_price, actual_amount_paid, is_auto_renew)\n                \n\ntransactions_final = transactions1 %>%\n                #select(msno,transaction_date, payment_method_id, payment_plan_days, plan_list_price, actual_amount_paid, is_auto_renew) %>%\n                group_by(msno) %>%\n                summarise(payment_method_id = most_common_pay_via(payment_method_id),\n                         #num_pay_via = n_distinct(payment_method_id),\n                         payment_plan_days = mean(payment_plan_days),\n                         plan_list_price = mean(plan_list_price),\n                         actual_amount_paid = mean(actual_amount_paid),\n                         is_auto_renew = mean(is_auto_renew),\n                         #is_cancel = mean(is_auto_cancel),\n                         n_transactions = n())\n\n\nhead(transactions_final)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T13:56:18.058735Z","iopub.execute_input":"2022-11-07T13:56:18.060192Z","iopub.status.idle":"2022-11-07T14:13:15.592810Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"glimpse(transactions_final)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:13:15.596511Z","iopub.execute_input":"2022-11-07T14:13:15.598119Z","iopub.status.idle":"2022-11-07T14:13:15.623743Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"summary(transactions_final)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:13:15.626366Z","iopub.execute_input":"2022-11-07T14:13:15.627808Z","iopub.status.idle":"2022-11-07T14:13:17.330064Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"#### **Juntando train, test, members e transactions**","metadata":{}},{"cell_type":"code","source":"data <- merge(data, transactions_final, by = \"msno\", all.x = TRUE)\nrm(transactions_final);gc()","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:13:17.332730Z","iopub.execute_input":"2022-11-07T14:13:17.334208Z","iopub.status.idle":"2022-11-07T14:13:48.098595Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"### **Visualizando Dados e fazendo ultimos preparos**","metadata":{}},{"cell_type":"code","source":"head(data,100)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:13:48.101787Z","iopub.execute_input":"2022-11-07T14:13:48.103170Z","iopub.status.idle":"2022-11-07T14:13:48.258789Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sapply(data, function(x) sum(is.na(x)))","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:13:48.261347Z","iopub.execute_input":"2022-11-07T14:13:48.262798Z","iopub.status.idle":"2022-11-07T14:13:48.371020Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dim(data)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:13:48.373546Z","iopub.execute_input":"2022-11-07T14:13:48.375012Z","iopub.status.idle":"2022-11-07T14:13:48.391778Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"clean = data[,3:18]","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:13:48.394275Z","iopub.execute_input":"2022-11-07T14:13:48.395717Z","iopub.status.idle":"2022-11-07T14:13:48.408802Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"clean <- replace(clean, is.na(clean), 0)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:13:48.411363Z","iopub.execute_input":"2022-11-07T14:13:48.412791Z","iopub.status.idle":"2022-11-07T14:13:48.831709Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"names(clean)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data = cbind(data[1:2], clean[1:16]) \n","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:15:51.685809Z","iopub.execute_input":"2022-11-07T14:15:51.687703Z","iopub.status.idle":"2022-11-07T14:15:51.704085Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#data = data %>%\n#    filter(!is.na(city))","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:13:48.856145Z","iopub.execute_input":"2022-11-07T14:13:48.857722Z","iopub.status.idle":"2022-11-07T14:13:48.871084Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"glimpse(data)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:16:12.661619Z","iopub.execute_input":"2022-11-07T14:16:12.663438Z","iopub.status.idle":"2022-11-07T14:16:12.691971Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dim(data)\nnames(data)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:16:15.816548Z","iopub.execute_input":"2022-11-07T14:16:15.818671Z","iopub.status.idle":"2022-11-07T14:16:15.846804Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#Variáveis preditoras na base de treino\nx_train <- data %>%\n#group_by(msno) %>%\n        dplyr::filter(!is.na(is_churn)) %>% \n        dplyr::select(city, reg_year, reg_month, reg_mday, reg_wday, \n                      payment_method_id, payment_plan_days, plan_list_price, \n                      actual_amount_paid, is_auto_renew, n_transactions) %>% \n        as.matrix()\n#x_train = x_train %>% select(!msno)\n\n#Variável resposta na base de treino\ny_train <- data %>%\n#group_by(msno) %>%\n        dplyr::filter(!is.na(is_churn)) %>%\n        dplyr::select(is_churn) %>% \n        as.matrix()\n#y_train = y_train %>% select(!msno)\n\n#Variáveis preditoras na base de teste  \nx_test <- data %>%\n#group_by(msno) %>%\n        dplyr::filter(is.na(is_churn)) %>%\n        dplyr::select(city,reg_year, reg_month, reg_mday, reg_wday, \n                      payment_method_id, payment_plan_days, plan_list_price, \n                      actual_amount_paid, is_auto_renew, n_transactions) %>% \n        as.matrix()\n#x_test = x_test %>% select(!msno)\n  \n#Variável resposta na base de teste\ny_test <- data %>%\n#group_by(msno) %>%\n        dplyr::filter(is.na(is_churn)) %>%\n        dplyr::select(is_churn) %>% \n        as.matrix()\n#y_test = y_test %>% select(!msno)\n#rm(data);gc()\n\nauxx_text <- data %>%\n#group_by(msno) %>%\n        dplyr::filter(is.na(is_churn)) %>%\n        dplyr::select(msno) %>% \n        as.matrix()\n#x_test = x_test %>% select(!msno)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:16:18.345123Z","iopub.execute_input":"2022-11-07T14:16:18.347127Z","iopub.status.idle":"2022-11-07T14:16:19.366271Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#y_train = as.data.frame.factor(y_train)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#colnames(y_train) = \"is_churn\"","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"head(y_train)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:16:28.274160Z","iopub.execute_input":"2022-11-07T14:16:28.276126Z","iopub.status.idle":"2022-11-07T14:16:28.301454Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dim(data)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:16:30.834819Z","iopub.execute_input":"2022-11-07T14:16:30.836787Z","iopub.status.idle":"2022-11-07T14:16:30.858720Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"head(x_train)\nhead(y_train)\nhead(x_test)\nunique(y_train)\ndim(x_train)\ndim(y_train)\ndim(x_test)\n","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:16:33.330931Z","iopub.execute_input":"2022-11-07T14:16:33.332823Z","iopub.status.idle":"2022-11-07T14:16:33.426385Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"summary(x_train)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:16:37.440288Z","iopub.execute_input":"2022-11-07T14:16:37.442111Z","iopub.status.idle":"2022-11-07T14:16:38.117747Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model <- keras_model_sequential() %>%\n  layer_dense(units = 32, activation = \"relu\",\n              input_shape = ncol(x_train), kernel_initializer='normal') %>%\n  layer_dense(units =16, activation = \"relu\", kernel_initializer='normal') %>%\n  layer_dense(units = 1, activation = \"softplus\") # Tentar dps sigmoid \n\nmodel %>% compile(\n  optimizer = optimizer_adam(),\n  loss = 'binary_crossentropy',\n  metrics = 'accuracy'\n  #loss = 'mse',\n  #metrics = list(\"mean_absolute_error\")\n)\n","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:16:45.668302Z","iopub.execute_input":"2022-11-07T14:16:45.670095Z","iopub.status.idle":"2022-11-07T14:16:57.400777Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"epochs <- 30\nbatch_size <- 16\n\nhistory <- model %>% \n  fit(x = x_train,\n      y = y_train,\n      batch_size = batch_size,\n      epochs = epochs,\n      validation_split = 0.2, # 20% validation data\n      \n      # Imprimir progresso mas não fazer o gráfico\n      verbose = 1,\n      view_metrics = 0\n      )\n\nplot(history) +\n  geom_line() + geom_point()","metadata":{"execution":{"iopub.status.busy":"2022-11-07T14:24:36.336048Z","iopub.execute_input":"2022-11-07T14:24:36.338446Z","iopub.status.idle":"2022-11-07T15:21:03.534233Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"preds <- data.table(msno=auxx_text, is_churn=(predict(model,x_test))[,1])","metadata":{"execution":{"iopub.status.busy":"2022-11-07T15:22:21.146100Z","iopub.execute_input":"2022-11-07T15:22:21.148392Z","iopub.status.idle":"2022-11-07T15:22:42.104371Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"colnames(preds) = c(\"msno\", \"is_churn\")\nhead(preds)\ndim(preds)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T15:23:01.368177Z","iopub.execute_input":"2022-11-07T15:23:01.370118Z","iopub.status.idle":"2022-11-07T15:23:01.408740Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"summary(preds)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T15:23:06.922520Z","iopub.execute_input":"2022-11-07T15:23:06.924427Z","iopub.status.idle":"2022-11-07T15:23:07.009090Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dim(preds)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"preds = preds %>% ## Garantir que não dê problema\n    dplyr::filter(!is.na(is_churn))","metadata":{"execution":{"iopub.status.busy":"2022-11-07T15:24:52.305475Z","iopub.execute_input":"2022-11-07T15:24:52.307473Z","iopub.status.idle":"2022-11-07T15:24:52.465670Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dim(preds) # Certinho","metadata":{"execution":{"iopub.status.busy":"2022-11-07T15:25:10.272995Z","iopub.execute_input":"2022-11-07T15:25:10.276040Z","iopub.status.idle":"2022-11-07T15:25:10.306083Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"summary(preds) ","metadata":{"execution":{"iopub.status.busy":"2022-11-07T15:25:39.916337Z","iopub.execute_input":"2022-11-07T15:25:39.919028Z","iopub.status.idle":"2022-11-07T15:25:40.089442Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"dimpreds = dim(preds)[1]\nmedia = mean(preds$is_churn)\ndimpreds\nmedia","metadata":{"execution":{"iopub.status.busy":"2022-11-07T15:53:42.687770Z","iopub.execute_input":"2022-11-07T15:53:42.689538Z","iopub.status.idle":"2022-11-07T15:53:42.733751Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"i = 0 \nfor(i in 1:dimpreds){\n  if(preds$is_churn[i] >= media){\n      preds$is_churn[i] = 1\n  }\n  else{preds$is_churn[i] = 0}\n}\n\nhead(preds)","metadata":{"execution":{"iopub.status.busy":"2022-11-07T15:53:49.355962Z","iopub.execute_input":"2022-11-07T15:53:49.358883Z","iopub.status.idle":"2022-11-07T17:22:24.860490Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"preds <- merge(sample_submission_zero[,1], preds, by=\"msno\", all.x=T, sort=F)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"head(preds,50)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":" preds = replace(x = preds, list = is.na(preds), values = 0) #Garantindo que não tenha NA;","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"write.table(preds, \"submission.csv\", sep=\",\", dec=\".\", quote=FALSE, row.names=FALSE)","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}