Etapa 0: comienzo del camino
En las realidades del mundo moderno, cuando se lleva a cabo la digitalización ubicua y la acumulación de datos sobre todo y sobre todos, surge una pregunta razonable, pero ¿cómo usar estos datos? Muchos, por supuesto, ya han escuchado acerca de los sistemas de recomendación en las áreas de entretenimiento y ventas. Las compañías de inversión no se mantienen alejadas de las tendencias actuales en el campo de la ciencia de datos y de los sistemas de recomendación en particular. Así que veamos qué características y qué etapas tuvo que atravesar una gran empresa de inversión para desarrollar su propio sistema de recomendaciones para aumentar la efectividad de las ventas cruzadas y lo que sucedió al final.

Etapa 1: Negación
¿Cuál es la diferencia entre el proceso de ventas en una compañía de inversión y el proceso similar en otras compañías? Veamos qué hay en común.
.
: , . , , , . - ( , ).
2:
-, , . , : , , , , -, , ( ). 100 , . , , .
7070 , ( ) . Pandas NumPy Python. 31, , , - . Python , . .
, , () :
3:
, ? – , .
, , . , , .
, . «» . :
- , .
- « », .. , , , .
- .
, « » , .. . , , , «» :
, . .
, , ?

«». , , . : , , , .
. 0 1, 0 – . , ...
4:
, Python « », :
dist_cosini = scipy.spatial.distance.cosine(user_one, user_two)
- , Python «», 30000 31- , . .
, , , «l1-» ( — ), «l2-» ( ).
manhattan = round(numpy.linalg.norm(user_one - user_two, ord = 1), 4)
euclidean = round(numpy.linalg.norm(user_one - user_two, ord = 2), 4)
. , . , , . , «l1-» - , «l2-» — . , , …
. , «» , . - .
?
.
, ?
...
. :
- ( — ).
- .
- - , .. , .
- : 0 1, .
:

, ( B). , :
import numpy as np
CosD = round(1 - (np.sum((user_one * user_two)) / (np.sqrt(np.sum(user_one**2)) * np.sqrt(np.sum(user_two**2)))), 4)
, «l-», .
GIL (Global Interpreter Lock) . , «» GIL, «». , — . , ? Numba.
Python, Numba - . - Python , - . Numba - Python LLVM ( Python).
, :
import numpy as np
from numba import njit
@njit
def dist_cosini(user_one, all_user):
user_point = []
for q in range(len(all_user)):
user_two = all_user[q]
CosD = round(1 - (np.sum((user_one * user_two)) / np.sqrt(np.sum(user_one**2)) / np.sqrt(np.sum(user_two**2))), 4)
user_point.append(CosD)
return user_point
, Numba «» GIL . 60 .

5:
"" ( 13 ). .
, — . .
, «» . .
, , , .
. -. , CRM. « » .
:
Con este fin, el trabajo ya ha comenzado a modificar el sistema en uno de los tipos de sistema de recomendación híbrido. También se está trabajando para profundizar el trabajo del sistema de recomendación con productos complejos.