2009-11-01 21 views
5

estoy trabajando en una aplicación web que será utilizado para clasificar las fotos de los automóviles. A los usuarios se les presentarán fotos de varios vehículos, y se les pedirá que respondan una serie de preguntas sobre lo que ven. Los resultados se registrarán en una base de datos, se promediarán y se mostrarán.algoritmos para evaluar las respuestas del usuario

Estoy buscando algoritmos que me ayuden a identificar a los usuarios que con frecuencia no votan con el grupo, lo que indica que probablemente no estén prestando atención a las fotos, o que están mintiendo sobre lo que ven. entonces quiero excluir a estos usuarios, y volver a calcular los resultados, de manera que puedo decir, con una cantidad conocida de confianza, que esta foto en particular muestra un vehículo que es esto y lo otro.

Esta pregunta va para todos ustedes, chicos de ciencias de la computación, dónde encontrar esos algoritmos o para darme los antecedentes teóricos para diseñar dichos algoritmos. Supongo que tendré que aprender algunas probabilidades y estadísticas, tal vez algo de minería de datos. Algunas recomendaciones de libros serían geniales. ¡Gracias!

P.S. Estas son preguntas de opción múltiple.

Todas estas son buenas sugerencias. ¡Gracias! ¡Ojalá hubiera una manera de desbordar la pila para seleccionar múltiples respuestas correctas para que más de ustedes puedan ser reconocidos por sus contribuciones!

+0

¿Las preguntas son de final abierto o opción múltiple? ¿Son subjetivos u objetivos con típicamente una respuesta correcta? –

+0

son pregunta de opción múltiple – Ralph

Respuesta

2

Creo que lo que describió se resuelve usando outlier/anomaly detection. una serie de técnicas existe:

  • Métodos basados ​​en estadísticas
  • métodos basados ​​en la distancia
  • métodos basados ​​en modelos

le sugiero que tome un vistazo a estos slides del excelente libro Introduction to Data Mining

+0

¡Gracias a todos por sus sugerencias! – Ralph

0

Si sabe qué respuestas está esperando, ¿por qué le pide a la gente que vote? Mediante la exclusión de algunos valores que, básicamente, a su vez el voto en algo que que gusta. Los automóviles hacen una impresión diferente a diferentes personas. Si 100 personas amaron un automóvil, cuando alguien viene y dice que no le gusta, ¿excluye el voto?

Pero, de todos modos, teniendo en cuenta que aún desea hacer esto, antes que nada, necesitará una gran cantidad de datos de los votantes "de confianza". Esto le dará una idea de la respuesta "buena" y desde este punto puede elegir el umbral de exclusión.

Sin un conjunto inicial de datos no puede aplicar ningún algoritmo porque obtendrá resultados falsos. Considere sólo un voto de 100 a partir de una escala de 0 a 100. El segundo voto es "1" El que excluirá de esta votación, porque está demasiado lejos de la media.

+1

Según entendí, esto es más un problema ** de detección de un vendedor ** – Amro

0

Creo que un algoritmo bastante simple podría lograr esto para usted. Podrías tratar de ser más elegante calculando las desviaciones estándar y demás, pero no me molestaría.

Aquí es un enfoque simple que debe ser suficiente:

Para cada uno de sus usuarios, calcular el número de preguntas contestadas y que el número de veces que seleccionaron la respuesta más popular para la pregunta. Los usuarios que tienen la proporción más baja de elegir la respuesta popular versus las respuestas totales que puede adivinar están proporcionando datos falsos.

Es probable que no desee descartar los datos de los usuarios, donde solo han respondido una pequeña cantidad de preguntas, ya que es probable que hayan estado en desacuerdo con unos pocos en lugar de poner datos falsos.

0

¿Qué tipo de preguntas son (Sí/No, o 1 a 10?).

Es posible que pueda salirse con la suya sin descartar nada mediante el uso de una media en lugar de un promedio. Con promedios si hay valores extremos en la respuesta que podría afectar a la media, pero si se utiliza la mediana es posible obtener una mejor respuesta. Entonces, por ejemplo, si tenía 5 respuestas, pídalas y elija la del medio.

+2

Un promedio es un promedio. ¿Querías decir "mediana en lugar de promedio"? – erickson

+0

@erickson, sí, me refiero a la mediana, lo siento, gracias por la corrección – Jeremy

3

Lea The Elements of Statistical Learning, es un excelente compendio de minería de datos.

Puede interesarse especialmente en algoritmos no supervisados, por ejemplo, clustering. Suponiendo que la mayoría de la gente no mienta, el grupo más grande es el correcto y el resto es incorrecto. Marque a las personas en consecuencia, luego aplique algunas estadísticas bayesianas y habrá terminado.

Por supuesto, la mayoría de las tecnologías de minería de datos son bastante experimentales, por lo tanto, no confíe en que siempre tendrán la razón ... o incluso en la mayoría de los casos.

0

Creo que lo que usted dice es que le preocupa que ciertas personas sean "atípicas" y están agregando ruido a sus datos, haciendo que las categorizaciones sean menos confiables. Entonces, si tienes un Chevy Camaro, y la mayoría de la gente dice que es un coche de pony, un muscle car o un deportivo, pero tienes un tonto que dice que es un sedán familiar, querrás minimizar el impacto de su votar.

Una cosa que podría hacer es proporcionar una puntuación de desbordamiento de pila similar a la reputación de los usuarios:

  • Cuanto más un usuario está "de acuerdo" con otros usuarios, mejor será su puntuación sería. Para un usuario dado (Usuario X), esto podría determinarse mediante un simple cálculo de qué porcentaje de usuarios que respondieron una pregunta eligió la misma categoría que el Usuario X, y luego promedió este valor sobre todas las preguntas respondidas.
  • Es posible que desee multiplicar este valor por el número total de preguntas respondidas para alentar a las personas a responder la mayor cantidad de preguntas posible. (Nota: si elige hacer esto, sería equivalente a solo sumar los porcentajes de concordancia porcentual en lugar de promediarlos)
  • Puede presentar el puntaje de reputación final a los usuarios, asegurándose de explicarles que serán recompensados ​​por qué tan bien sus respuestas concuerdan con las de otros usuarios. Esto alentará a las personas a responder más preguntas, pero también a tener cuidado en sus respuestas.
  • Finalmente, puede calcular un puntaje de certeza para una categorización dada sumando el puntaje de reputación total de todas las personas que eligen una categoría determinada.

Algunas de estas ideas pueden necesitar algún refinamiento, especialmente porque no conozco su situación exacta. Ciertamente, si la gente puede ver lo que otras personas eligieron antes de votar, sería demasiado fácil jugar con el sistema.

+0

gracias @DanThMan! – Ralph

0

Si tuviera que recoger votos como "en una escala del 1 al 10, ¿cómo calificaría este automóvil?", Podría probab Usamos el promedio simple y la desviación estándar: cuanto menor es la desviación estándar, más unanimista es el consenso general entre los votantes, y puede marcar a los usuarios que están, p. 3 desarrolladores estándar del promedio.

Para la opción múltiple, debe tener más cuidado. Simplemente descartando todas las opciones menos la más votada no hará más que disgustar a los votantes. Debe establecer una medida de la importancia del ganador w.r.t. las otras opciones, p. los usuarios de la bandera que votaron por las opciones con menos de 1/3 de las opciones ganadoras cuentan.

Tenga en cuenta que escribí "usuarios de la bandera", no descartar votos. Si descarta votos, no puede decir qué tan seguro está del resultado ("el 91% votó que esto es un Ford Mustang"). Si un usuario tiene más de un cierto porcentaje de sus votos marcados, bueno, eso depende de usted.

Sin embargo, su problema más complicado probablemente sea recolectar suficientes votos. Dependiendo de cuán fácil sea el problema de opción múltiple, probablemente necesite varias veces más opciones que votos por foto. De lo contrario, las estadísticas no tienen sentido.

Cuestiones relacionadas