{"cells":[{"metadata":{"_uuid":"07b9e852de884f2246b9f89b61543c8947fe0240","_execution_state":"idle","trusted":true},"cell_type":"code","source":"suppressMessages(library(tidyverse))\nsuppressMessages(library(ggplot2))\nsuppressMessages(library(lightgbm))\nsuppressMessages(library(xgboost))\nlist.files(path = \"../input\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d557c19aefbd4fe2726e5278e777b16400638d6f"},"cell_type":"code","source":"train_df = read_csv(\"../input/train.csv\")\ntest_df = read_csv(\"../input/test.csv\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a63f336330d334d47ccaa546e976469ad23c7d2f"},"cell_type":"code","source":"head(train_df)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c400e0aeb8cb768a5a6b5c63219c40ddbb85b0c3"},"cell_type":"code","source":"train_df$first_active_month <- as.Date(train_df$first_active_month,format=\"%Y-%M\")\ntest_df$first_active_month <- as.Date(test_df$first_active_month,format=\"%Y-%M\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"26cdfaf1382ed10012043827dc7bb029b2cb46c0"},"cell_type":"code","source":"head(train_df)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2c4aee0db5a9fb0dff076dcf79fee328da3d424b"},"cell_type":"code","source":"y_train <- train_df$target\ntrain_df$target <- NULL","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5c7b577c0cc89837a07028c2b4e51eca58618e92"},"cell_type":"code","source":"train_id <- train_df$card_id\ntrain_df$card_id <- NULL\ntest_id <- test_df$card_id\ntest_df$card_id <- NULL\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"06b2f50ce4f61cbd3be87e01a7cfe101c2e3cbdc"},"cell_type":"code","source":"head(train_df)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c8dc108fa288713590dbb80ab6eb96dfe56facbe"},"cell_type":"code","source":"head(test_df)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c30597a72e853bdcb5f40d7d6097a6ceb5085ef3"},"cell_type":"code","source":"split <- caret::createDataPartition(y_train, p = 0.9, list = F) %>% c()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"46befec704c91972d6c23937dbcaa2f8c96afd6e"},"cell_type":"code","source":"cat_var <- c(\"feature_1\", \"feature_2\", \"feature_3\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0d3591563448047e2a4ac244a72b6b2f62a459cc"},"cell_type":"code","source":"dtrain <- lgb.Dataset(data = as.matrix(train_df[split,cat_var]),  label = y_train[split], categorical_feature = cat_var)\ndvalid <- lgb.Dataset(data = as.matrix(train_df[-split,cat_var]), label =y_train[-split], categorical_feature = cat_var)\ndtrain_full <- lgb.Dataset(data = as.matrix(train_df), label =y_train, categorical_feature = cat_var) # for LGB's built in CV","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"997318c9725e898a8e2118d49d4b4549215ee120"},"cell_type":"code","source":"params = list(objective = \"regression\", \n              metric = \"rmse\", \n              learning_rate= 0.02,\n              num_leaves= 15,\n              max_depth= -1,\n              #min_child_samples= 100,\n              #max_bin= 100,\n              subsample= 0.9, \n              subsample_freq= 4,\n              colsample_bytree= 0.9\n              #min_child_weight= 30\n              #min_split_gain= 0,\n              )","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"2491a27b69c37bedfb13b1a00e1b50e10816fdc7"},"cell_type":"code","source":"system.time(cv <- lgb.cv(params, dtrain_full, nrounds = 1500, nfold = 5, eval_freq = 100, early_stopping_rounds = 50))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5b7264ac484f9fc3d32ff1cf29dee3da125c697e"},"cell_type":"code","source":"cv$best_iter","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"db9398daffe4baf6ed20973fcad554e5a7375560"},"cell_type":"code","source":"best <- cv$best_iter\nbest <- as.integer(best * 1.10)\nbest","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"954d696b8f8f3299ce3be730d97bcba0914b4994"},"cell_type":"code","source":"system.time(model <- lgb.train(params, dtrain, valids = list(train = dtrain, validation = dvalid), nthread = 4,\n                   nrounds = best, verbose= T, eval_freq = 100))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"09b40687b67d65b61c546bdd56e02d8946703616"},"cell_type":"code","source":"preds <- predict(model, as.matrix(test_df[,cat_var]))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"37236450a0943856a46c6122ba1a3370821062c2"},"cell_type":"code","source":"imps <- lgb.importance(model)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4c71023e982b82336b2666925fe797a84cbd42df"},"cell_type":"code","source":"lgb.plot.importance(imps)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"29b53bfddc5941ca7ddfeadf8a3046d8ba89d4ce"},"cell_type":"code","source":"lgb.plot.importance(imps, measure = \"Cover\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1ccabec8f83bbca4aa832ecda23cce36743fe26c"},"cell_type":"code","source":"lgb.plot.importance(imps, measure = \"Frequency\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"fb8d2dc028691d8343809289d837a0b4b8475f1f"},"cell_type":"code","source":"ss <- read_csv(\"../input/sample_submission.csv\")\nss$target <- preds\nwrite_csv(ss,paste0(\"lgb_baseline_\", round(max(unlist(model$record_evals[[\"validation\"]][[\"rmse\"]][[\"eval\"]])), 5), \".csv\"))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"fb87d85b0b59979f2416567b72bf4cbacafd1567"},"cell_type":"code","source":"head(ss)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"da4766a26e91d15463c5200c557bbb3bb891af3c"},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"118dc96abb26db8e2979fd381681adf0fcab1542"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"R","language":"R","name":"ir"},"language_info":{"mimetype":"text/x-r-source","name":"R","pygments_lexer":"r","version":"3.4.2","file_extension":".r","codemirror_mode":"r"}},"nbformat":4,"nbformat_minor":1}