4 votos

Cálculo de la mejor coincidencia entre dos conjuntos

Soy un desarrollador de PHP y tengo un problema en el cálculo de la combinación perfecta entre dos conjuntos de datos diferentes.

He conjuntos de datos de las empresas, en la que cada empresa define los requisitos para un trabajo específico. Yo también tengo los conjuntos de datos de los usuarios, donde cada usuario puede definir un conjunto de datos que describen sus habilidades.

Tanto de esta conjuntos de datos pueden contener valores entre el$1$$12$.

He aquí un ejemplo de dos conjuntos de datos:

$\begin{align*} \text{Company} & \to [\phantom{1}4, \phantom{1}8, 12, \phantom{1}4, 10] \\ \text{User} & \to [\phantom{1}8, 10, \phantom{1}5, \phantom{1}5, \phantom{0}1] \end{align*}$

Pregunta:

¿Cuál es la mejor manera de calcular la mejor coincidencia de trabajo de una empresa? Hay dos pensamientos que cruzaron mi mente, pero no sé que sería mejor, si de hecho hay otro enfoque completamente diferente.

  1. Calcular la suma de todos absoluto". $\newcommand{\abs}{\operatorname{abs}}$

    Por ejemplo: $$\text{score} = \abs(4-8) + \abs(8-10) + \abs(12-5) + \abs(4-5) + \abs(10-1) = 23$$

  2. Calcular la absoluta diff entre la suma de ambos conjuntos de datos.

    Por ejemplo: $$\text{score} = \abs\left[(4+8+12+4+10)-(8+10+5+5+1)\right] = 9$$

3voto

helmi03 Puntos 139

Probablemente haya muchas maneras de archivar una solución significativa para este problema. Usé la similitud coseno

Con el ejemplo anterior, obtengo la siguiente función:

$\frac{((4*8) + (8*10) + (12*5) + (4*5) + (10*1))} {\sqrt{((4*4) + (8*8) + (12*12) + (4*4) + (10*10))} \times \sqrt{((8*8) + (10*10) + (5*5) + (5*5) + (1*1))}} = 0.74712398867 $

1voto

satish ramanathan Puntos 4892

Respuesta:

Un enfoque podría ser que usted puede dar pesos a cada una de estas habilidades y encontrar la varianza ponderada en el sentido de que en tu ejemplo, que los cinco puestos de trabajo podría haber sido ponderado $w_1,w_2,w_3,w_4,w_5$, y digamos, por ejemplo, bien, los pesos son 0.2,0.1,0.3,0.15,0.25.

Ya que es el mejor partido, no pudimos encontrar la media de las diferencias absolutas, M, ${\sum_{1}^{n} w_i|x_i - x_j|}$

A continuación encontrará la varianza ponderada = $\sum_{1}^{i=j} w_i\left(|x_i-x_j| - M)^2\right)$. En tu ejemplo, M$ = 5.5$

Las diferencias absolutas son,$d_1 = 4, d_2 = 2,\cdots, d_5 = 9$

La que mejor se ajusta trabajo podría ser la menor de las siguientes métricas(varianza ponderada): $$\left((0.2).(4-5.5)^2+0.1.(2-5.5)^2+\cdots+0.25.(9-5.5)^2\right) = 8.45$$.

He probado con los siguientes conjuntos de datos

Empresa = {3,4,5,8,6}, Usuario = {3,4,5,8,6} = Varianza =0 , no hay Ningún cambio

Empresa = {4,4,5,8,6}, Usuario = {3,4,5,8,6} = Varianza = 0.16, Uno de los cambios

Empresa = {4,3,5,8,6}, Usuario = {3,4,5,8,6} = Varianza = 0.21, Dos Cambios

Tipo de trabajo para estos ejemplos.

Puedes hacer esto en tu trabajo y quiero saber si funciona para su satisfacción.

enter image description here

La siguiente tabla muestra la comparación de la varianza ponderada y similitud del coseno bajo dos diferentes pero similares situaciones. La segunda tabla tiene una amplia diferencia en la empresa y la valoración de los usuarios de la tarea 1 con el peso de 0.05 y el resto de las tareas tienen la misma clasificación. El tercero de la tabla tiene el mismo gran diferencia en la empresa y la valoración de los usuarios de la tarea 4 con peso 0.80 y el resto de las tareas tienen la misma clasificación. Similitud del coseno tratará de la misma manera, mientras que la varianza ponderada mejor se adapte a la segunda situación de la tercera y de manera intuitiva es correcto, porque la tarea que más le importaba en la segunda tabla no tiene ninguna diferencia y la tarea que le importaba al menos había una gran diferencia y conseguir así una mayor prioridad que el tercero de la tabla, donde la tarea que importaba la mayoría de ellos tenían la misma diferencia que la de la tarea 1 en la tabla 2. Por lo tanto varianza ponderada da más flexibilidad en el orden de rango similar conjuntos de datos.

enter image description here

Gracias

Satish

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X