主动学习模型的UMap聚类

问题描述

我目前正在使用UMAP和modAL来构建笔记本。 使用MNIST数据(sklearn.datasets.load_digits),我开始将UMAP拟合到我的Train数据上。然后,我继续转换我拥有的所有数据(训练,测试,初始,合并)。

将数据拆分为训练和测试

X_train,X_test,y_train,y_test,image_train,image_test = train_test_split(X,y,images,test_size=0.9)

随机选择100个实例作为活动学习种子

initial_idx = np.random.choice(range(len(X_train)),size=n_initial,replace=False)

X_initial,y_initial,image_initial = X_train[initial_idx],y_train[initial_idx],image_train[initial_idx]
X_pool=np.delete(X_train,initial_idx,axis=0)
y_pool=np.delete(y_train,axis=0)
image_pool = np.delete(image_train,axis=0)

在火车数据上设置UMAP并转换其他集合

em_train = umap.UMAP(n_neighbors=5).fit(X_train)

em_test = em_train.transform(X_test)
em_initial = em_train.transform(X_initial)
em_pool = em_train.transform(X_pool)

初始化主动学习者

learner = ActiveLearner(
    estimator=RandomForestClassifier(),query_strategy=uncertainty_sampling,X_training=em_initial,y_training=y_initial
)

然后(在此modAL exampleUMAP example之后),我继续使用主动学习循环。我还在AL-Loop中添加了UMAP图,在这里我遇到了一些问题:

  1. 根据火车数据适合UMAP是否有意义?每次主动学习迭代后,我都应该重新适应它吗?如果我这样做的话,集群看起来将与以前有所不同。但是不这样做,几乎不会在群集中移动我的数据点(标记新数据点不会更改群集,或者因为我只使用了200个数据点,所以我没有注意到它)。
  2. 是否可以在UMAP图中选择要查询的实例?我的灵感来自fastforwardlabs的Active Learner。现在,我仅指向一个箭头,该实例位于查询旁边(基于query_strategy=uncertainty_sampling

how it looks right now

如有必要,我还可以提供更多代码

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)