zondag 2 augustus 2015

Gelukkig, terug van vakantie :-)

Na een heerlijke zeilvakantie in Griekenland, zonder Euro of Drachmen problemen, eindelijk weer wat DL hobbyen. Allerlei nieuwe ideeën opgedaan. Eerst maar weer eens de draad met de Titanic zien op te pakken. Hoewel de eerste resultaten aardig leken zijn er wat verkeerde uitgangspunten. Zo blijkt het beter om de 'klasse variabelen', zoals de sekse en de passagiers klasse in aparte 'kolommen te zetten per klasse'. Dus een man krijgt dan een '1' in de kolom 'man' en een '0' in een aparte kolom 'vrouw'. Een vrouw uiteraard precies omgekeerd. Dit voorkomt ondermeer dat er een soort continuïteit wordt gesuggereerd die er niet is.

Oei, dan moet ik extra kolommetjes bijmaken en de oorspronkelijke daarna verwijderen. En het liefst allemaal 'dynamisch'. Zonder dat ik hoef op te geven hoeveel verschillende waardes de klasse variabelen bevatten. Na wat sleutelen voeg ik deze code toe:

# New class processing: Every class gets its own column
for j in range(0, Col):
    if j in class_cols:
        c = sorted(list(set([Colm[j] for Colm in Data]))) # c = list met de verschillende klassen.
        l = len(c)                                        # l = aantal klassen
        h = np.zeros((Rec, l))                            # h = hulp matrix
        print 'Colom :',j, ' heeft records, classes : ', h.shape
        for i in range(0, Rec):
            h[i,c.index(Data[i][j])] = 1
        DataN = np.hstack((DataN,h))                      # 'h' achteraan plakken

De betrouwbaarheid lijkt echter iets achteruit te gaan.  
('gamma, C = ', 0.8, 1000, 'Prediction : ', 0.84615384615384615)

Oorspronkelijk kwam ik zelfs op 
('gamma, C = ', 0.8, 1000, 'Prediction : ', 0.8571428571428571)

mmmm.

Ook veranderen de resultaten vrij veel als ik de dataset eerst door elkaar schud. Daar moet ik nogeens wat dieper in duiken. 

Ik probeer daarnaast opnieuw of de passenger class toch geen informatie toevoegt. Volgens wat analyses op Kaggle zou dat namelijk wel het geval zijn. Het lijkt nog steeds tot slechtere resultaten t e leiden. Misschien heeft e.e.a. te maken met de verkeerde processing van lege waarden? Ga ik een andere keer weer eens naar kijken.



  

Geen opmerkingen:

Een reactie posten