Ejemplo n.º 1
0
# 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
Ejemplo n.º 2
0
# -------------------------------------------
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*'=')