Utente:G273Y/Sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
G273Y (discussione | contributi)
G273Y (discussione | contributi)
Riga 94:
 
===Parte 4: Modellizzazione===
I dati per costruire il modello sono quelli antecedenti al 01-04-2013 e sono chiamati traning set. Questa data corrispondono al 60% dei dati in base alla variabile offerdate, mentre quelli relativi al periodo successivo costituiscono il validation set.
 
#### read in training data
dfTrain <- dfTransactions
dfTrain$offerdate <- as.Date(dfTrain$offerdate)
## split into training and validation set according to offer date
trainRatio <- 0.6
thresh <- sort(dfTrain$offerdate)[floor(trainRatio*dim(dfTrain)[1])]
thresh <- '2013-04-01'
# indices for training and validation set
trainInd <- which(dfTrain$offerdate<thresh)
validInd <- which(dfTrain$offerdate>=thresh)
 
Si scelgono i predictors cioè le variabili con cui verrà creato il modello e e si sceglie anche la variabile da prevedere 'repeater' che assume il valore 1 se il cliente ripete l'acquisto dell'offerta, o 0 altrimenti.
Se il cliente ripete l'acquisto, allora è un valido cliente.
###################################
## Perform training & validation ##
#################################### get the names of all predictors
unused <- c( 'id', 'repeater', 'repeattrips', 'offerdate')
all.vars <- names(dfTrain)
# DEL <- grepl('^overall', all.vars)
# unused <- c(unused, all.vars[DEL])
predictors <- all.vars[-which(all.vars %in% unused)]
X_train <- dfTrain[,c(predictors)]
Y_train <- dfTrain$repeater
Y <-ifelse(Y_train=="t",1,0)
 
 
Per prevedere i clienti validi la libreria gbm adotta l'algoritmo di machine learning
gradient stocastic, che modifica in parte l'algoritmo di base.
gbm_model = gbm(Y[trainInd] ~ dept+ category+company + brand+ purchasequantity + purchaseamount + offer + market ,
data=X_train[trainInd,],
shrinkage = 0.01,
distribution = "gaussian",
n.trees = 1000,
interaction.depth = 5,
bag.fraction = 0.5,
train.fraction = 0.8,
# cv.folds = 5,
n.cores = -1,
verbose = T)
 
===Parte 5: Previsione===