# Initialize Random-Forest and metrics # -------------------------------------- classifier = RandomForestClassifier(random_state=12,n_jobs=1) # kappa = metrics.make_scorer(metrics.cohen_kappa_score) f1_mean = metrics.make_scorer(metrics.f1_score,average='micro') scoring = dict(kappa=kappa,f1_mean=f1_mean,accuracy='accuracy') ############################################################################## # Start learning # --------------------------- # sklearn will compute different metrics, but will keep best results from kappa (refit='kappa') LAP = learnAndPredict(n_jobs=1,verbose=1) LAP.learnFromRaster(raster,vector,field,cv=SKF, classifier=classifier,param_grid=dict(n_estimators=[10]), scoring=kappa) ############################################################################## # Read the model # ------------------- print(LAP.model) print(LAP.model.cv_results_) print(LAP.model.best_score_) ############################################################################## # Get F1 for every class from best params
# ------------------------------------------- RSKF = RandomStratifiedKFold(n_splits=2, random_state=12,verbose=False) ############################################################################## # Initialize Random-Forest # --------------------------- classifier = RandomForestClassifier() ############################################################################## # Start learning # --------------------------- LAP = learnAndPredict() LAP.learnFromRaster(raster,vector,field,cv=RSKF, classifier=classifier,param_grid=dict(n_estimators=[10,100])) ############################################################################## # Get kappa from each fold # --------------------------- for stats in LAP.getStatsFromCV(confusionMatrix=False,kappa=True): print(stats['kappa']) ############################################################################## # Get each confusion matrix from folds # ----------------------------------------------- cms = [] for stats in LAP.getStatsFromCV(confusionMatrix=True):
classifier = RandomForestClassifier(random_state=12,n_jobs=1) ############################################################################## # Create list of different CV # --------------------------- CVs = [cross_validation.RandomStratifiedKFold(n_splits=2), cross_validation.LeavePSubGroupOut(valid_size=0.5), cross_validation.LeaveOneSubGroupOut(), StratifiedKFold(n_splits=2,shuffle=True) #from sklearn ] kappas=[] LAP = learnAndPredict(n_jobs=1) for cv in CVs : LAP.learnFromRaster(raster,vector,inField=field,group=group,cv=cv, classifier=classifier,param_grid=dict(n_estimators=[50,100])) print('Kappa for '+str(type(cv).__name__)) cvKappa = [] for stats in LAP.getStatsFromCV(confusionMatrix=False,kappa=True): print(stats['kappa']) cvKappa.append(stats['kappa']) kappas.append(cvKappa) print(20*'=')