计算Margin Sampling的代码

unlabeled = self.unlabeled
            U_num = len(unlabeled)
            US = np.zeros(U_num)
            prob_matrix = self.predict_proba(X=self.X[unlabeled])
            S = np.argsort(-prob_matrix, axis=1)
            for i, [idx, jdx] in enumerate(S[:,[0,1]]):
                US[i] = prob_matrix[i, idx] - prob_matrix[i, jdx]

如下老方法运行速度慢些 

for i in range(U_num):
                ord_prob = np.argsort(prob_matrix[i])
                US[i] = prob_matrix[i][ord_prob[-1]] - prob_matrix[i][ord_prob[-2]]

均匀采样(Uniform Sampling)是从数据集中按照均匀分布随机选取样本的一种采样方法。下面是一个均匀采样的代码实现示例: ```python import numpy as np def uniform_sampling(data, num_samples): """ 均匀采样函数 参数: data: 输入数据集,可以是列表、数组等 num_samples: 需要采样的样本数量 返回值: 采样后的数据集 """ num_data = len(data) # 确保采样数量不超过数据集大小 num_samples = min(num_samples, num_data) # 生成随机索引 random_indices = np.random.choice(range(num_data), size=num_samples, replace=False) # 根据随机索引进行采样 sampled_data = [data[i] for i in random_indices] return sampled_data ``` 使用上述的 `uniform_sampling` 函数,你可以将输入的数据集和需要采样的样本数量传递给函数,并获得采样后的数据集。下面是一个示例: ```python # 假设有一个数据集 data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] # 进行均匀采样,选择5个样本 sampled_data = uniform_sampling(data, num_samples=5) print("Sampled data:", sampled_data) ``` 在上面的示例中,将从数据集 `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]` 中均匀随机选择5个样本进行采样。 请注意,上述代码示例中使用了 NumPy 库的 `np.random.choice` 函数来生成随机索引进行采样。如果你的数据集是多维数组或其他特殊类型的数据,请根据具体情况进行修改。 希望这个示例能对你有所帮助!如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeniuHe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值