Numpy 主动学习的分层抽样实现

Numpy 主动学习的分层抽样实现,numpy,machine-learning,hierarchical-clustering,Numpy,Machine Learning,Hierarchical Clustering,我正在从事一个个人机器学习项目,在这个项目中,我试图在类极不平衡的情况下将数据分类为二进制类。我最初尝试实现所提出的方法,即利用数据集的集群结构来帮助主动学习者 然而,我正在努力实现本文中提出的算法。到目前为止,我已经写了这篇文章,但我不确定如何继续: from scipy.spatial.distance import pdist, squareform from scipy.cluster.hierarchy import linkage, dendrogram data_dist = pd

我正在从事一个个人机器学习项目,在这个项目中,我试图在类极不平衡的情况下将数据分类为二进制类。我最初尝试实现所提出的方法,即利用数据集的集群结构来帮助主动学习者

然而,我正在努力实现本文中提出的算法。到目前为止,我已经写了这篇文章,但我不确定如何继续:

from scipy.spatial.distance import pdist, squareform
from scipy.cluster.hierarchy import linkage, dendrogram
data_dist = pdist(X) # computing the distance
data_link = linkage(data_dist) # computing the linkage
数据存储在
X
中,正确的分类存储在
y
中。样本数据集:

X = np.array([[0.3,0.7],[0.5,0.5] ,[0.2,0.8], [0.1,0.9]])
y = np.array([[0], [1], [0], [1]])

(注意,实际数据集大约大500倍)

S Dasgupta提出的主动学习分层采样现在在Python主动学习库中实现。有关源代码,请参见此

示例(来自文档):


嘿@JDOE你能实现这个吗?我现在被困在同一个问题上…@snazzii它现在被包括在。看见
   from libact.query_strategies import UncertaintySampling
   from libact.query_strategies.multiclass import HierarchicalSampling
   sub_qs = UncertaintySampling(
       dataset, method='sm', model=SVM(decision_function_shape='ovr'))
   qs = HierarchicalSampling(
            dataset, # Dataset object
            dataset.get_num_of_labels(),
            active_selecting=True,
            subsample_qs=sub_qs
        )