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