在Python中创建产品订单的共现矩阵,通常用于分析产品之间的购买关联性。共现矩阵是一个二维数组,其中每个元素表示两个产品在同一订单中出现的次数。以下是创建共现矩阵的基本步骤和相关概念:
以下是一个简单的Python示例,展示如何创建一个二进制共现矩阵:
import pandas as pd
from collections import defaultdict
# 假设我们有一个订单数据的DataFrame,包含订单ID和产品ID
data = {
'order_id': [1, 1, 2, 2, 2, 3, 3],
'product_id': [101, 102, 101, 103, 104, 102, 103]
}
df = pd.DataFrame(data)
# 获取所有唯一的产品ID
unique_products = df['product_id'].unique()
# 初始化共现矩阵(大小为产品数量x产品数量)
num_products = len(unique_products)
co_occurrence_matrix = [[0] * num_products for _ in range(num_products)]
# 创建产品ID到索引的映射
product_to_index = {product: idx for idx, product in enumerate(unique_products)}
# 遍历每个订单,更新共现矩阵
for order_id, group in df.groupby('order_id'):
product_ids_in_order = group['product_id'].tolist()
for i in range(len(product_ids_in_order)):
for j in range(i + 1, len(product_ids_in_order)):
idx_i = product_to_index[product_ids_in_order[i]]
idx_j = product_to_index[product_ids_in_order[j]]
co_occurrence_matrix[idx_i][idx_j] += 1
co_occurrence_matrix[idx_j][idx_i] += 1 # 矩阵对称
# 打印共现矩阵
for row in co_occurrence_matrix:
print(row)
scipy.sparse
库中的CSR或CSC格式。通过上述步骤和代码示例,你可以有效地创建一个产品订单的共现矩阵,并根据需要进行进一步的分析和应用。
腾讯技术创作特训营
云+社区技术沙龙[第27期]
GAME-TECH
腾讯云GAME-TECH沙龙
云+社区技术沙龙 [第31期]
腾讯云GAME-TECH沙龙
DBTalk技术分享会
高校开发者
云+社区技术沙龙[第6期]
腾讯技术开放日
领取专属 10元无门槛券
手把手带您无忧上云