Estoy usando la función logloss de Python proporcionada aquí y obtengo resultados de -2.99 cuando uso un algoritmo de aprendizaje automático en mi conjunto de datos. ¿Qué significa eso? ¿Las predicciones del algoritmo son malas (o) buenas? ¿Qué tan buenos o malos son?
Este es el código que estoy usando. (También soy nuevo en Python, ¿tal vez mis entradas a la función están totalmente equivocadas?)
dataset = pd.read_csv('../training.csv')
cols = dataset[dataset.columns]
cols.drop(['tobepredicted'], axis=1, inplace=True)
cols.drop('ID', axis=1, inplace=True)
features = cols.columns
target = dataset['tobepredicted']
train = dataset[features]
cfr = SVR(C=100, kernel="poly", degree=3)
#Validación cruzada simple de K-Fold. 5 divisiones.
cv = cross_validation.KFold(len(train), n_folds=5)
N = len(dataset)
l = range(N)
results = []
for traincv, testcv in cv:
trainLen = len(traincv)
shuffle(l)
probas = cfr.fit(train.ix[l[:trainLen]], target.ix[l[:trainLen]]).predict(train.ix[l[trainLen:]])
results.append(llfun(target.ix[l[trainLen:]], probas))
#imprimir la media de los resultados validados cruzadamente
print "Resultados: " + str(np.array(results).mean())
1 votos
La fórmula a la que enlazas nunca puede ser negativa cuando se suministra una entrada válida, ¿cómo estás obteniendo $-2.99$?
0 votos
¿Te diste cuenta de que la ecuación tiene un signo menos?