And finally, after finding many different ways on how not to do this.... some characters start to appear! Much more things to prove yet but at least there are some of them :D #Khipu2019@DelCruzar
@DelCruzar Well, I could submit my first (baseline?) model and it scores 1.0. What does it exactly means? not really sure, 0 is a perfect match, so the lower, the better. The score is the average *error* among each of the evaluation samples...
@DelCruzar ... where *error* is the levenshtein distance between both strings (predicted and real) divided by the number of chars in the real string.
But, what is levenshtein distance?
@DelCruzar [1] Levenshtein distance is the minimal number of chars you need to modify (remove, add or replace) to convert the predicted string into the real one.
@DelCruzar Since this distance is divided by the length of the real string, we can think it as the proportion of chars you need to modify in your predicted string to get the real one. And this is taken on average to compute the final score. So, what exactly means that my model get 1.0?
@DelCruzar Well, you may guess it: on average I need to replace/change/modify every single predicted char to get the expected string. Can it be worse than 1?
@DelCruzar The answer (fortunately) is yes. Let's see some extreme cases: 1) predict only one char which is not in the expected char. Then your edit distance is exactly the length of the real string, the portion is 1. What is more: if the character IS on the real string, the portion is less
than one. So my model is worse (from this metric point of view) than a model that only outputs 1 random character. 2) you predict exactly the same number of characters as the real string but none of them is in the real string. Then you need to change every single char in the ...
sequence. Again: this leads to 1, and even less if some chars are actually present on the real string.
So, if the predicted string is less or equal than the expected, then your score is at most 1.
3) what if you predict a string longer than the real one? Well, if none of those are part of the real string, then you'll get a score greater than one: you need to replace every single char to get the real string, and then remove the extra chars. With a real string of 10 chars...
and a predicted string of 15 under the previous hypothesis, will lead to 1.5 points.
To finish those experiments I decided to submit randomly generated strings, trying to follow the distribution of chars on the training set and randomly pick the expected length of string
I only used 35k training samples on both: training the baseline and approximating the characters and string length distribution, out of 6.95M available, that is 0.5%.
This random submit achieved 1.06
Next steps? Try to include a LSTM or something like that to add knowledge from the sequence, and include more samples from the training set.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Luego de un largo proceso de adquisición, etiquetado y curado, quedó pronta una nueva versión del que he bautizado como Clean-Dirty Conteiners in Montevideo, y está disponible en @kaggle !
Sale 🧵contando su génesis, proceso y futuros pasos 👇
Todo comenzó en abril de este año: un vecino compartió una foto del contenedor preguntando qué se podía hacer. Reenvié la queja a la @montevideoIM y en pocas horas la situación se había regularizado. Sin embargo, es algo que pasa seguido...
En ese momento se me ocurrió que este proceso se puede automatizar: verificar el estado del contenedor y si requiere atención, avisar a la Intendencia.
Como soy muy ansioso 🙈, hice un breve script para chequear cómo va cambiando la cantidad de apoyos 📨📨 en cada propuesta 🤖🤖
Para poner un 'orden', absolutamente arbitrario, voy a compartirlas ordenadas según la cantidad de apoyos nuevos que han recibido desde el 10/6 a las 17hs, al 15/6 11hs.
Este "reporte" perfectamente podría automatizarse, pero mi ansiedad no llega a tanto... 😅
Hoy hace 76 días que pisé por ultima vez @Pyxisportal edificio. Ese Viernes 13 fue el último en que fui a trabajar, almorcé con mis compañeros y terminó la jornada con un #AsadoDeLosNuevos #WinterIsComing y con ello las naranjas. Y qué tiene que ver?
La 🍊 es de mis frutas favoritas, y pelaras sin enchastrarme las manos es de las habilidades más elogiadas en el piso 10, así que decidí escribir un hilo 🧵 sobre cómo pelar una y no hacer un desastre en el camino, para los compas con los que hace 76 días no almorzamos juntos
Lo fundamental para esto es no cortar los gomos: cortar los gomos libera el jugo y asegura el enchastre. Es por esto que preferimos las naranjas de mesa: una cáscara gruesa facilita el trabajo.
El primer paso es cortar arriba y abajo los "polos" de la naranja
Según la @montevideoIM "Se consideran ruidos molestos los que superen 45 dB(A) en el interior de la vivienda denunciante, entre las 7.00 y las 22.00 horas, y 39 dB(A) entre las 22.00 y las 7.00 horas"... Pero pero pero...
Esto viene de hace tiempo: largas jornadas de #homeoffice con oídos taladrados por la bendita obra de la rambla. En particular lo notamos luego que volvió la construcción de la cuarentena, el contraste fue terrible.
Sin embargo...
Hoy es el tercer día consecutivo que empezaron a laburar de noche. Si, a estas horas. Hicimos la denuncia al servicio de convivencia departamental, 29010006. Nos dijeron que tenían permiso para trabajar por las noches porque estaban atrasados...
Entiendo que la idea es eliminar esa parada para facilitar el tránsito. Sin embargo, somos unos cuantos que vamos hasta ahí cada día a tomar el bus. Esa medida nos perjudica. (Sigue)
Se me ocurre que en vez de suprimir la parada esa, se pueden tomar otras medidas para mejorar el tránsito en la zona, que no desinsentiven el transporte colectivo, ejemplos: (sigue)