Cómo escribir un algoritmo de aprendizaje automático que prediga la edad de alguien

El primer paso en cualquier problema de aprendizaje automático es averiguar a qué tipo de datos de entrada tiene acceso . Por ejemplo, aquí hay algunas cosas que puede saber sobre una persona que podrían ser útiles para predecir su edad:

  • La imagen de su rostro : rasgos faciales, arrugas, color de cabello podría correlacionarse con algunos grupos de edad más fuertemente que otros.
  • Historial de compras : los hábitos de gasto probablemente se correlacionarían fuertemente con el grupo de edad; por ejemplo, estudiantes que compran libros de texto versus padres que compran pañales.
  • Fecha de nacimiento : en este momento ni siquiera necesito aprendizaje automático, solo haz los cálculos.

Una vez que tenga una buena contabilidad de lo que ya sabe sobre cada persona antes de predecir su edad, puede comenzar a pensar en el modelo que querrá usar. No existe una solución única para todos, pero aquí hay algunas ideas para cada uno de los ejemplos dados anteriormente:

  • Redes neuronales convolucionales cuando se trata de imágenes (imágenes de caras). Las CNN son buenas para tratar datos densos compuestos de características de bajo nivel , como las diferencias sutiles en forma y tono que vienen con la edad. Las CNN son la herramienta de facto cuando se trata de tareas de visión por computadora hoy en día.
  • Árboles de decisión cuando se trabaja con una cantidad manejable de características de alto nivel , como el historial de compras. Es posible que tenga cientos o miles de resultados de compra binarios, y los árboles de decisión son buenos para convertirlos en reglas generalizables de si-entonces.
  • No use el aprendizaje automático si hay un algoritmo muy claro que puede escribir usted mismo para darle la respuesta correcta con una precisión del 100%. Si en producción su sistema siempre le preguntará la fecha de nacimiento del usuario, entonces no hay razón para usar el aprendizaje automático.

Una vez que tenga sus datos de entrada, algo de verdad básica para evaluar el rendimiento de su modelo, y una idea aproximada de qué tipo de modelos querrá explorar, es hora de experimentar. En general, es una buena idea comenzar con modelos más simples y avanzar desde allí. Un modelo más simple es más fácil de entrenar, ofrece un mejor rendimiento en tiempo de ejecución y es más fácil dar sentido a los resultados. Solo use modelos más pesados ​​después de que su modelo más simple haya resultado insuficiente para la tarea. Además, los modelos más simples actuarán como una línea de base que puede usar para justificar sus resultados.

Primero piense en los datos que necesitaría.

  • Las fotos son la forma más fácil de entrenar a un modelo para que reconozca la edad. Use una CNN para entrenar, a expensas de muchas imágenes.
  • Los datos de las redes sociales proporcionan otra información: sus tweets y su interacción en las redes sociales pueden proporcionar datos valiosos. El tipo de conversación en la que participa, junto con la estructura lingüística, la ortografía y la forma, puede proporcionar una indicación de cuál es su edad. Si está escribiendo el estado de FB como “OMG. V otta stp dis rad sht !!! ”, es muy probable que seas un adolescente. Se pueden precisar más datos y su edad.
  • Su historial de compras es muy valioso. Esto no es algo nuevo. Lea sobre cómo Target descubrió que una adolescente estaba embarazada antes que su padre. Tiendes a comprar cosas diferentes según tu edad. No puede utilizar únicamente estos datos en forma directa porque de niño, es posible que no tenga control sobre sus compras. Necesitará un poco de limpieza de datos y procesamiento previo
  • Sus conexiones : técnicamente deberían constituir los datos de la red social. Pero el tipo de círculo social en el que te relacionas también puede describirte. Por supuesto, bastante abierto a las falacias, como los maestros en un MLRG de estudiantes graduados hambrientos. 😀

En función de los datos que tenga, puede elegir un modelo apropiado que pueda abarcar desde una red neuronal hasta un algoritmo de agrupamiento.

Dado que este es un problema muy común en los estudios de comportamiento debido a la falta de evidencia de edad en los datos del usuario, existen muchos algoritmos estandarizados que pueden predecir la edad. Le sugiero encarecidamente que lea algunos documentos de antemano.

Si está interesado, puede consultar nuestro artículo aquí para ver cómo hicimos la predicción de la edad. En particular, si está haciendo predicciones de edad para datos textuales.

[Papel]

Entrene aa o regresión lineal, o cualquier algoritmo de clasificación ML para predecir un rango de edad, utilizando datos de algunos conjuntos de datos: edad o rango de edad, nivel educativo, estatura, peso, color de cabello (gris o no) empleo, (empleado por cómo largo, retirado) y otros atributos.