{"cells":[{"metadata":{"_uuid":"051d70d956493feee0c6d64651c6a088724dca2a","_execution_state":"idle","trusted":true},"cell_type":"code","source":"rm( list=ls() )\nlibrary(data.table)\nlibrary(lightgbm)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train  <- fread('../input/amjad-datasets-1/train1.csv')\ntest   <- fread('../input/amjad-datasets-1/test1.csv')\ndim(train)\ndim(test)\n\ntrain[, reset := ifelse( (ttf - shift(ttf))<0, 0, 1) ]\nEQ <- which( train$reset==1  )\ntrain[  , eq := 0 ]\ntrain[EQ, eq := 1 ]\ntrain[, eq := cumsum(eq)+1 ]\ntrain[,list(.N,mean(ttf)),keyby=\"eq\"]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"params <- list(metric=\"mae\",\n               objective=\"gamma\",\n               verbosity = -1,\n               max_depth = -1,\n               seed = 123,\n               feature_fraction = 0.025,\n               bagging_fraction = 0.250,\n               bagging_freq     = 1,\n               num_leaves = 7,\n               min_data_in_bin = 2,\n               max_bin = 25,\n               min_data_in_leaf = 4,\n               lambda_l1 = 1.1,\n               lambda_l2 = 0.1,\n               learning_rate=0.005,\n               seed=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"features <- colnames(train)\nfeatures <- features[ !features %in% c('ttf',\"eq\",\"reset\") ]\n#Drop statistical Features\nfeatures <- features[ !grepl(\"mean|Q0|RMS|sd|IQR|max|min\", features) |  grepl(\"Band\", features) ]\n\n#Load LGB matrix\nxtrain <- lgb.Dataset(data = as.matrix(train[, features, with=F] ), label=train$ttf , free_raw_data=F )\n\n#Run 3 times\nPREDTEST <- rep(0, nrow(test) )\nNBAGS = 5\nfor( BAG in 1:NBAGS ){\n    params$seed <- BAG\n    NFOLDS = 10+BAG\n    lgb1 <- lgb.cv( params, xtrain, nrounds = 999999, nfold = NFOLDS, eval_freq = 100, early_stopping_rounds=50 )\n\n    predtest  <- rep(0, nrow(test) )\n    for( i in 1:NFOLDS )\n        predtest     <- predtest + predict( lgb1$boosters[[i]]$booster , as.matrix(test[, features, with=F]) , num_iteration=lgb1$best_iter )/NFOLDS\n    \n    #Post Processing\n    #Adjust mean predictions according p4677 paper\n    predtest = predtest * 6.31 / mean(predtest)\n    \n    PREDTEST <- PREDTEST + predtest/NBAGS\n}\n\nsummary( PREDTEST )","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"sub <- fread('../input/LANL-Earthquake-Prediction/sample_submission.csv')\nsub[, time_to_failure := PREDTEST ]\nfwrite( sub, \"giba-final-1.csv\" )","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}