Marijkevandesteene / MachineLearning

repo to share progress and to manage versions of exam MachineLearning (M14)
0 stars 2 forks source link

mean scores #19

Closed binomaiheu closed 3 months ago

binomaiheu commented 3 months ago

Ik ben niet helemaal mee wat hier de bedoeling van is :

data_score_neg = []
data_score_pos = []

for i in range(0, 0 + len(train_V2)):
    score_neg = 0
    score_pos = 0
    nbr_score_neg = 0
    nbr_score_pos = 0
    for score in score_pos_features:
        if not(pd.isnull(train_V2.loc[i,score])):
            score_pos += train_V2.loc[i,score]
            nbr_score_pos += 1
    for score in score_neg_features:
        if not(pd.isnull(train_V2.loc[i,score])):
            score_neg += train_V2.loc[i,score]
            nbr_score_neg += 1
    if nbr_score_neg != 0:
        data_score_neg.append(score_neg / nbr_score_neg)
    else:
        data_score_neg.append(np.nan)
    if nbr_score_pos != 0:
        data_score_pos.append(score_pos / nbr_score_pos)
    else:
        data_score_pos.append(np.nan)
train_V2.insert(train_V2.shape[1], 'mean_score_pos',  data_score_pos)
train_V2.insert(train_V2.shape[1], 'mean_score_neg',  data_score_neg)

is dat niet zelfde als :

train_V2["score_pos"] = train_V2[["score1_pos", "score2_pos", "score3_pos", "score4_pos", "score5_pos"]].mean(axis=1)
train_V2["score_neg"] = train_V2[["score1_neg", "score2_neg", "score3_neg", "score4_neg", "score5_neg_uniform"]].mean(axis=1)

??

Die .mean(axis=1) op einde houdt rekening met pd.NA dacht ik. @Marijkevandesteene @dluts, en het expliciet berekenen van de gemiddelden op deze manier is geen echt goed idee voor performantie. Zo weinig mogelijk for loops gebruiken in pandas, altijd proberen gevectoriseerde routines te gebruiken.

Marijkevandesteene commented 3 months ago

Dat was inderdaad de bedoeling. Ik ken de statistics functies in python niet. Ik sluit dit ticket. We nemen idd best de .mean() functie