Вычисление вектора на основе сходства с разными весами ⇐ Python
Вычисление вектора на основе сходства с разными весами
Я пытаюсь вычислить, чем один вектор отличается от набора векторов. И я использовал косинусное сходство, но в моей задаче не все входы имеют одинаковый вес, поэтому я хочу использовать алгоритм или метод, чтобы учесть, что некоторые записи имеют больший вес, чем другие. Можете ли вы помочь мне определиться с некоторыми алгоритмами или процедурами, которые я могу использовать? Это мой код на случай, если он вам понадобится
импортировать numpy как np из sklearn.metrics.pairwise импортировать cosine_similarity # Предложенный вектор пропуесто = np.array([20, 85, 10, 10]) # Векторный набор вектор_b1 = np.array([31, 83, 22, 88.5]) вектор_b2 = np.array([25.4, 114.07, 18.2, 346.68]) вектор_b3 = np.array([26.9, 85, 20.9, 123.87]) вектор_b4 = np.array([25.7, 87.6, 20.96, 458.8]) вектор_b5 = np.array([28.6, 71.4, 28.9, 690.5]) вектор_b6 = np.array([30.2, 148.9, 26.33, 317.58]) вектор_b7 = np.array([25.1, 87.8, 0, 0]) вектор_b8 = np.array([32.4, 158.9, 23.33, 160.14]) вектор_b9 = np.array([23, 89.4, 17.99, 561]) вектор_b10 = np.array([16.64, 36.7, 27.8, 526]) вектор_b11 = np.array([40, 85, 10, 10]) # Векторы в матрице matriz_b = np.array([vector_b1, вектор_b2, вектор_b3, вектор_b4, вектор_b5, вектор_b6, вектор_b7, вектор_b8, вектор_b9, вектор_b10, вектор_b11]) # Нормализовать вектор вектор_а_норм = пропуесто / np.linalg.norm(пропуесто) # Нормализовать матрицу matriz_b_norm = matriz_b / np.linalg.norm(matriz_b, axis=1, Keepdims=True) # Косинусное сходство подобия = cosine_similarity([vector_a_norm], matriz_b_norm) # Сходства для i, сходство в перечислении(сходства[0]): print(f"Сходство с вектором B{i + 1}: {сходство:.4f}") ```
Я пытаюсь вычислить, чем один вектор отличается от набора векторов. И я использовал косинусное сходство, но в моей задаче не все входы имеют одинаковый вес, поэтому я хочу использовать алгоритм или метод, чтобы учесть, что некоторые записи имеют больший вес, чем другие. Можете ли вы помочь мне определиться с некоторыми алгоритмами или процедурами, которые я могу использовать? Это мой код на случай, если он вам понадобится
импортировать numpy как np из sklearn.metrics.pairwise импортировать cosine_similarity # Предложенный вектор пропуесто = np.array([20, 85, 10, 10]) # Векторный набор вектор_b1 = np.array([31, 83, 22, 88.5]) вектор_b2 = np.array([25.4, 114.07, 18.2, 346.68]) вектор_b3 = np.array([26.9, 85, 20.9, 123.87]) вектор_b4 = np.array([25.7, 87.6, 20.96, 458.8]) вектор_b5 = np.array([28.6, 71.4, 28.9, 690.5]) вектор_b6 = np.array([30.2, 148.9, 26.33, 317.58]) вектор_b7 = np.array([25.1, 87.8, 0, 0]) вектор_b8 = np.array([32.4, 158.9, 23.33, 160.14]) вектор_b9 = np.array([23, 89.4, 17.99, 561]) вектор_b10 = np.array([16.64, 36.7, 27.8, 526]) вектор_b11 = np.array([40, 85, 10, 10]) # Векторы в матрице matriz_b = np.array([vector_b1, вектор_b2, вектор_b3, вектор_b4, вектор_b5, вектор_b6, вектор_b7, вектор_b8, вектор_b9, вектор_b10, вектор_b11]) # Нормализовать вектор вектор_а_норм = пропуесто / np.linalg.norm(пропуесто) # Нормализовать матрицу matriz_b_norm = matriz_b / np.linalg.norm(matriz_b, axis=1, Keepdims=True) # Косинусное сходство подобия = cosine_similarity([vector_a_norm], matriz_b_norm) # Сходства для i, сходство в перечислении(сходства[0]): print(f"Сходство с вектором B{i + 1}: {сходство:.4f}") ```
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Оптимизация иерархического сходства сходства адреса на большем данных о данных с DASK
Anonymous » » в форуме Python - 0 Ответы
- 6 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как обрабатывать отрицательные запросы поиска в запросе поиска сходства вектора?
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как обрабатывать отрицательные запросы поиска в запросе поиска сходства вектора?
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-