网站建设中 目录,网络运维工程师需要具备什么证书,wordpress自媒体二号,wordpress 迁移上线对于许多离散问题#xff0c;经过神经网络解决再通过softmax之后每一个值在[0,1]之间的连续变量#xff0c;想要将其离散化#xff0c;即离散化到每个元素都是 binary-variable#xff0c;即 0-1 #xff0c;这时可以用KNN方法#xff0c;其实就是找到与这个向量的方差最… 对于许多离散问题经过神经网络解决再通过softmax之后每一个值在[0,1]之间的连续变量想要将其离散化即离散化到每个元素都是 binary-variable即 0-1 这时可以用KNN方法其实就是找到与这个向量的方差最小的K个临近向量。 做个简单的示例如下
import itertools
import numpy as npdef knn(x,N, k4):k_nn np.array(list(map(list, itertools.product([0, 1], repeatN))))
#这句话的意思是生成2^N个 01组成的向量即穷尽探索空间。# the 2-normsqd ((k_nn - x) ** 2).sum(1) #计算方差idx np.argsort(sqd) #对方差进行排序return k_nn[idx[:k]] #取方差最小的K个if __name__ __main__:x [0.1, 0.3, 0.6, 0.9] #一个连续向量 N len(x) #x的元素个数k_neighbor knn(x,N) #执行knn用来保存K-neighborsprint(x)print(k_neighbor)k_nn np.array(list(map(list, itertools.product([0, 1], repeatN)))) #这句话的意思是生成2^N个 01组成的向量即穷尽探索空间。例如例子中 N 4 那么k_nn是一个 2^4 16 行的 np.array.
结果示例