一个使用 latent space clustering model 和 NMF 进行Bicluster 聚类的实例

本文通过一个使用Davis数据集的例子,详细解释如何结合latent clustering model和非负矩阵分解(NMF)进行双聚类(biclustering)。利用R包latentnet和NMF进行分析,结果显示活动和消费者可以明显分为两类,NMF提供的结果更加清晰,验证了两种方法的一致性。
摘要由CSDN通过智能技术生成

NMF = nonnegative matrix  factorization 


具体介绍请看拙文

使用NMF模型进行消费者行为分析


本文将举例介绍如何综合使用  latent clustering model 和 NMF 模型 对消费者进行聚类。


我们这次演示用的数据是 Davis 数据集, 这是个18 * 14 的小数据集, 每一行是一位女性,总共18位女性,每一列是一个活动,总共有14个活动。 每一个cell可以取1或者0, 取值之为1时,代表该行代表的女士参加了该列的活动。你可以把每个活动想象成不同的电影或者在不同的餐馆就餐。 这里有个关于使用latent clustering model的教程,也是使用的Davis 数据集。


以下是具体数据:




我们使用R package latentnet  进行聚类


对于Latent factor model和Collaborative filtering model的实现,可以使用Python中的一些机器学习库和推荐系统库来完成。下面是一种可能的实现方式: 1. 导入必要的库: ```python import numpy as np import pandas as pd from sklearn.metrics.pairwise import cosine_similarity from scipy.sparse import csr_matrix ``` 2. 加载数据集: ```python # 假设数据集是一个用户-物品评分矩阵,其中行表示用户,列表示物品,值表示评分 data = pd.read_csv('ratings.csv') # 构建稀疏矩阵 ratings = csr_matrix((data['rating'], (data['user_id'], data['item_id']))) ``` 3. 实现Latent factor model: ```python from scipy.sparse.linalg import svds def latent_factor_model(ratings, k=50): # 使用SVD进行矩阵分解 U, sigma, Vt = svds(ratings, k=k) sigma = np.diag(sigma) # 重构原始矩阵 reconstructed_ratings = np.dot(np.dot(U, sigma), Vt) return reconstructed_ratings reconstructed_ratings = latent_factor_model(ratings) ``` 4. 实现Collaborative filtering model: ```python def collaborative_filtering_model(ratings): # 计算物品之间的相似度矩阵 item_similarity = cosine_similarity(ratings.T) # 预测用户对未评分物品的评分 predicted_ratings = np.dot(item_similarity, ratings) / np.array([np.abs(item_similarity).sum(axis=1)]).T return predicted_ratings predicted_ratings = collaborative_filtering_model(ratings) ``` 这只是一种简单的实现方式,实际上,还可以使用其他方法和库来完成Latent factor model和Collaborative filtering model的实现。此外,还可以根据具体需求进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值