Primera competición de Machine Learning de Mediavida

Phil_Rich

Chicos os he subido el notebook de mi solucion final por si alguien se quedo con curiosidad de como batir la baseline, ya os aviso que la solucion es terriblemente simple, pero es que a veces cuanto mas simple mejor.
https://www.kaggle.com/code/philrich/final-knn-squirrels

Muchas gracias a @gonya707 por la iniciativa, aqui estaremos para la siguiente, con suerte un dataset mas sencillo xD

1
gonya707

Okay, esto se ha acabado, gracias a los participantes y enhorabuena a @Phil_Rich por el primer puesto. Para mi puntuación he cogido mi mejor que no fuese la de 8.33333 que se sacaba asumiendo que todas eran grises, vamos, la mejor usando machine learning xD

PuestoParticipantePuntuación
1Phil_Rich0.84006
2Iñigo0.83501
3gonya0.82828
4Jonan0.82323
5KarlosM0.76767

Pondré ahora en el hilo general el leaderboard, estoy usando vuestros nombres de Kaggle, si quereis otro nombre mandadme MP

Lamento que este primera competición haya tenido un dataset tan regulero, tenía que haber hecho mis observaciones antes, prometo que el siguiente estará algo mas curated.

6
R

Alguna manera de obtener el dataset o que alguien me lo pueda pasar?
Cuando 3mp3zo esto no sabía hacer nada pero ahora me gustaría darle un tiento fuera de concurso a ver que saco y apuntarme al siguiente

2 respuestas
gonya707

#63 A mi me deja bajarlo de kaggle normalmente. En la tab de "Data" tienes los csv. Buena suerte para la siguiente

1 1 respuesta
R

#64 Unable to perform operation since you're not a participant of this limited competition.

2 respuestas
gonya707

#65 Pues a mi me dice lo mismo ahora a pesar de que fui yo quien creo la competicion xD Tengo por aqui el csv con la solución pero no los otros csv.

De todos modos los dataset para la competicion los saque del censo original de ardillas de aqui. Con que hagas un split random de 20% para test data tendrás esencialmente el mismo ejercicio

1 respuesta
telemaco103

#63 Si alguien te lo pasa, pásamelo a mi también porfa, que al final me iba a poner y se me echó el tiempo encima.

1 respuesta
Apo_powa

Y si hacemos el siguiente? que yo tampoco pude y estoy con ganas :P

NocAB

#65 #67 pongo los datasets:

NSFW

#66 Entiendo que se pueden seguir haciendo submissions aunque haya terminado la competición, no?

2 2 respuestas
gonya707

#69 Igual no te deja dando la misma excusa que con bajar los datasets. Por si no se pudiese dejo aqui la solucion y podeis comparar vuestras soluciones. La puntuacion era simplemente el indice de acierto

Lo subiria a pastebin pero me dice que estan de mantenimiento, asi que a copiar y pegar:

NSFW
1 1 respuesta
R

Bueno en mi primer intento (sin contar SGDClassifier que sacaba todo gris). Ahora con el randomforest he sacao 78.73%

1 respuesta
NocAB

#71 con random forest se puede llegar al menos a 0.83501 porque es lo que usé (con mejor resultado que usando otros algoritmos).

1 respuesta
R

#72 usas solo las coordenadas?

1 respuesta
NocAB

#73 no, usé la mayor parte de las columnas (quitando alguna muy correlacionada) y con una nueva columna creada. No probé sólo con las coordenadas, cuando tenga tiempo quiero probar eso y alguna otra cosa.

1 respuesta
telemaco103

#69 #70 Gracias!!

1
R

#74 metiendo como inputs tambien la fecha y el número de ardillas por hectarea ha subio al 80.21%

1 respuesta
Apo_powa

Yo aún sin tiempo para poder puto meterme, preguntar a los que habéis tratado el desbalanceo del dataset, habéis hecho under/oversampling? o todos habéis optado por rndforest para que el algorithm de scikit os balancee el input?

Gañanes ajajajaj

2 respuestas
Phil_Rich

#77 over y under en distintas proporciones, no consegui mejorar nada

1 1 respuesta
NocAB

#76 ahora que lo dices creo que quité la fecha porque no le vi utilidad xd

#77 probé oversampling y undersampling en todas las convinaciones y variantes que se me ocurrió y no conseguí nada, lo único que me funcionó fue balancear los pesos.

No sé si este tipo de comentarios está bien ponerlos así ahora que ha terminado la competición o irían mejor en spoiler para la gente que quiera intentarlo por su cuenta. Qué opinas @gonya707?

1 respuesta
gonya707

Nah, hablad libremente, no tiene mucho sentido temer hacer spoilers de metodología cuando están las soluciones unos post más arriba

1
R

#78 #79 que es eso de over y under sampling?

1 respuesta
NocAB

#81 son técnicas de balanceo de los datos. Oversampling es la creación artificial de observaciones de las clases minoritarias y undersampling la toma de muestras de entre las observaciones para equilibrar las clases.

1 respuesta
R

#82 a mi se me ha ocurrio quedarme con un numero parecio de muestras de cada clase pero la precision baja muchisimo al ser pocos datos, tambien coger las clases de lo que menos hay y modificar cada una de los inputs con ruido de distribucion normal asi obtengo mas de esas clases que me faltan pero me da que es eso una buena patada a esto xD

1 respuesta
NocAB

#83 no sé si dices de hacerlo manualmente pero no hace falta, puedes usar imbalanced-learn, mira esto: https://machinelearningmastery.com/multi-class-imbalanced-classification/

1 respuesta
R

#84 interesante, eso seguro que va ams rapido que lo que yo estaba haciendo. Haciendo eso tampoco se sacan buenos resultados?

1 respuesta
NocAB

#85 A mí no, pero supongo que lo apliqué demasiado a la ligera y hay que tener en cuenta que las técnicas de oversampling pueden añadir ruido o reforzar algunas informaciones que hagan que el modelo sea poco generalizable y las de undersampling pueden hacer perder información importante. Yo creo que me faltó trabajar más las variables (feature engineering) y seguramente por ahí se puedan mejorar los resultados.