【HAN】代码逐句理解二

这是接着上一篇 ex_acm3025 主程序之后的评测代码

来吧,看一看👦

在看 KNN 和 Kmeans 之前,看一下传进来的数据是什么

xx = np.expand_dims(jhy_final_embedding, axis=0)[test_mask]
yy = y_test[test_mask]

xx 是最后输出的向量升维,选择测试集的样本 y

my_KNN

把 x 中维度是 1 的都去掉1

x = np.squeeze(x)

获取每行最大值的索引2

if len(y.shape) > 1:
        y = np.argmax(y, axis=1)

按照 [0.2, 0.4, 0.6, 0.8] 划分训练集和测试集
每个比例下进行 10 轮的训练预测
每一轮都要打乱数据

一个 5 邻居的 KNN 训练预测
得到 macro f1 和 microf1
输出每个划分下 10 轮的 macro f1 和 micro f1 的均值

my_Kmeans

和上面一样,x 去除维度为 1 的,y 取每行值最大的索引

做一个 4 聚类器的 Kmeans
进行 10 轮的聚类训练预测
通过 sklean 的 normalized_mutual_info_score、adjusted_rand_score3 获得 NMI、ARI

score = normalized_mutual_info_score(y, y_pred)
NMI_list.append(score)
s2 = adjusted_rand_score(y, y_pred)
ARI_list.append(s2)

输出 10 轮的 NMI 和 ARI 均值


  1. https://blog.youkuaiyun.com/zenghaitao0128/article/details/78512715 ↩︎

  2. https://blog.youkuaiyun.com/u013713117/article/details/53965572 ↩︎

  3. https://www.jianshu.com/p/b9528df2f57a ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值