Primary competition visual

INEGI UN-GGIM Human Settlement Detection Challenge by ITU

Helping Mexico
1 000 CHF
Completed (~2 years ago)
Classification
213 joined
84 active
Starti
02 Sep 24
Closei
28 Sep 24
Reveali
10 Oct 24
User avatar
ML_Wizzard
Nasarawa State University
BASELINE NOTEBOOK
Notebooks Ā· 8 Sep 2024, 09:25 Ā· 10

I've created a baseline for the INEGI-GCIM Human Settlement Detection Challenge by ITU You can find the code at mubrij/INEGI-GCIM-Human-Settlement-Detection-Challenge-by-ITU (github.com). Please note that your results using this code may vary slightly, but my solution achieved an LB score of 0.504...

Discussion 10 answers
User avatar
nymfree

Thanks for sharing.

so we are in the same predicament in that we achieve an LB score that is more or less equivalent to random guessing. tried with several models that have good AUC score but LB == random guess. what are we missing?

Upvotes 1
User avatar
ML_Wizzard

@nymfree I haven't looked deeper into the dataset yet because I was too busy, but from what I observed when creating my baseline, it seems that a machine learning model may not accurately predict well in this case. It might be better to try using a deep learning approach to capture the complexity.

Upvotes 0
User avatar

Thanks for sharing. ML Wizzard and nymfree, the lower LB score is probably a result of overfitting. It will be improved if you included regularization or to make the model simpler. However, since this is an image classification task, I think it's better solved using CNN as it works really well. Thanks.

Upvotes 0
User avatar
nymfree

Thanks for your insight. I will double check the data and my pipeline.

Upvotes 0
User avatar
ML_Wizzard

Sure @ahmadmwali.

Upvotes 0
User avatar
nymfree

Figured it out. you have to use the provided id_map file

Upvotes 1
User avatar
ML_Wizzard

@nymfree How did you use the id_map file ??

Upvotes 0
User avatar
nymfree

Basically after making predictions, assuming all your predictions are in a list, do:

df = pd.read_csv('id_map.csv')
my_dict = {}
for i,row in df.iterrows():
    my_dict[row['id']] = row['ID']
    
sub = pd.read_csv('SampleSubmission.csv')
for i in range(len(sub)):
    sub.at[i,'class'] = test_predictions[my_dict[sub.at[i,'id']]]        
        

Upvotes 3
User avatar
ML_Wizzard

Thank you @nymfree.

Upvotes 0