我正在做一个个人机器学习项目,在这个项目中,我试图在类非常不平衡的情况下将数据分类到二进制类中。我最初试图实现Hierarchical Sampling for Active Learning by S Dasgupta中提出的方法,该方法利用数据集的聚类结构来帮助积极的学习者。
然而,我正在努力实现本文中提出的算法。到目前为止,我已经写了这篇文章,但是我不确定如何继续:
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倍)
发布于 2018-06-16 05:31:37
由S Dasgupta提出的用于主动学习的分层采样现在已经在Python主动学习库libact中实现。有关源代码,请参阅此link。
示例(来自doccumentation):
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
)https://stackoverflow.com/questions/43574711
复制相似问题