Note
Éste proyecto es un challenge de FreeCodeCamp para modelos de Machine Leargnin de Clustering.
Desarrollado con mucho amor 💌 como aporte a la comunidad de científico de datos ya que
a la fecha se encuentra muy poca documentación sobre éste challenge en particular.
Caution
Utilizar con fines educativos
Analizamos los datos importados y realizamos una búsqueda de anomalías como datos faltantes, errores tipográficos, etc.
- Conclusión: No encontramos duplicados, ni nulos y tampoco anomalías en cuanto a la estructura y tipo de datos del dataframe
- Conclusión: No encontramos valores anómalos, negativos, en la columna user.
- Conclusión: No encontramos valores anómalos, negativos ni mayores a 10, en la columnas de rating.
Warning
Encontramos que hay información de libros que tienen muy pocas recomendaciones al igual que usuarios que recomendaron pocos libros. Vamos a limpiar estos datos para obtener información más significativa.
- Conclusión: observamos que de 27.000 libros sólo 727 de ellos tenían suficientes calificaciones
Después de la limpieza apreciamos que de 1.150.000 usuarios aproximadamente sólo 530.000 usuarios habían brindado 200 o más calificaciones
Esta matriz de pivot representa por cada libro (filas) qué usuarios (columnas) dieron una puntuación y de cuánto fué la puntuación (valor)
El modelo entrenado es KNN
> def test_book_recommendation( book_name: string ) -> list |
FreeCodeCamp nos brinda una función de test en donde para un libro específico buscado tenemos que obtener el siguiente resultado:
> test_book_recommendation() |
> ["Where the Heart Is (Oprah's Book Club (Paperback))", [["I'll Be Seeing You", 0.8], ['The Weight of Water', 0.77], ['The Surgeon', 0.77], ['I Know This Much Is True', 0.77], ['The Lovely Bones: A Novel', 0.72]]] |
> You passed the challenge! 🎉🎉🎉🎉🎉 |