推荐系统的交互矩阵添加噪声,测试模型鲁棒性

最近验证自己模型鲁棒性,写了向交互矩阵随机添加噪声的代码

        # 生成噪声矩阵
		# 假设user_item_matrix是你的用户项目交互矩阵
		user_item_matrix = trnMat#读取的矩阵,coo矩阵形式
		# 获取非零元素的坐标
		nonzero_indices = list(zip(user_item_matrix.row, user_item_matrix.col))

		# 计算要添加的噪声数目
		num_nonzero_elements = len(nonzero_indices)
		noise_percentage = 0.10
		num_noise_elements = int(noise_percentage * num_nonzero_elements)

		# 生成正态分布的噪声值
		mean = 0.0  # 正态分布的均值
		std_dev = 1.0  # 正态分布的标准差
		noise = np.random.normal(loc=mean, scale=std_dev, size=num_noise_elements)

		# 随机选择要添加噪声的非零元素
		chosen_indices = np.random.choice(num_nonzero_elements, size=num_noise_elements, replace=False)

		# 将噪声添加到矩阵中
		for i in range(num_noise_elements):
			row, col = nonzero_indices[chosen_indices[i]]
			user_item_matrix.data[chosen_indices[i]] += noise[i]
		trnMat = user_item_matrix#最后赋值回你读取的矩阵

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值