trimap:使用三元组进行降维
trimap的Python项目详细描述
trimap是一种使用三重约束的降维方法。 形成一组点的低维嵌入。三重态约束 其形式为“点i比点k更接近点j”。三胞胎是 从点的高维表示和加权中取样 方案用来反映每个三元组的重要性。
trimap提供了比 其他降维方法,如t-sne、largevis和umap。全球 结构包括簇的相对距离,多个尺度 数据和可能的离群点的存在。
下面的实现是在python中实现的。
如何使用Trimap
trimap拥有类似于其他sklearn库的transformer api。使用 使用默认参数修剪,只需执行以下操作:
importtrimapfromsklearn.datasetsimportload_digitsdigits=load_digits()embedding=trimap.TRIMAP().fit_transform(digits.data)
参数
与其他降维方法不同,trimap只有几个参数。 调谐:
- ^{tt1}$: Number of nearest neighbors for forming the nearest neighbor triplets (default = 10).
- ^{tt2}$: Number of outliers for forming the nearest neighbor triplets (default = 5).
- ^{tt3}$: Number of random triplets per point (default = 5).
- ^{tt4}$: Learning rate (default = 1000.0).
- ^{tt5}$: Number of iterations (default = 400).
其他参数包括:
- ^{tt6}$: Adjust weights for extreme outliers using a log-transformation (default = True).
- ^{tt7}$: Use only ANNOY for nearest-neighbor search (default = True).
- ^{tt8}$: Optimization method {‘sd’ (steepest descent), ‘momentum’ (GD with momentum), ‘dbd’ (delta-bar-delta, default)}.
- ^{tt9}$: Print the progress report (default = True).
- ^{tt10}$: Store the intermediate results and return the results in a tensor (default = False).
调整这些参数的示例:
importtrimapfromsklearn.datasetsimportload_digitsdigits=load_digits()embedding=trimap.TRIMAP(n_inliers=10,n_outliers=5,n_random=5).fit_transform(digits.data)
默认情况下,使用ANNOY执行最近邻计算。为了获得更精确的结果,可以使用sklearn.neighbors.NearestNeighbors计算每个点的前5个最近邻,并且可以将结果与使用烦恼计算的结果相结合。但是,这可能会显著增加运行时。fast_trimap (default = True)参数控制此属性。要获得更准确的结果,请设置fast_trimap = False。
示例
以下是关于真实数据集的一些结果。有关更多结果,请参阅 我们的报纸。
mnist手写数字(n=70000,d=784)
时尚mnist(n=70000,d=784)
白板鼠(n=53760,d=23433)
电视新闻(n=129685,d=50)
380k+歌词(n=266557,d=256)
安装
要求:
- 努比
- SCIKIT学习
- numba
- 烦恼
安装选项
如果已安装所有要求,则可以使用pip:
sudo pip install trimap
请定期检查更新并确保使用的是最新版本。如果已安装trimap并希望升级到新版本,则可以使用以下命令:
sudo pip install --upgrade --force-reinstall trimap
另一种方法是使用anaconda和pip手动安装依赖项。 要安装装饰件:
conda install numpy conda install scikit-learn conda install numba conda install annoy pip install trimap
对于手动安装,请获取此软件包:
wget https://github.com/eamid/trimap/archive/master.zip
unzip master.zip
rm master.zip
cd trimap-master
安装要求
sudo pip install -r requirements.txt
或
conda install scikit-learn numba annoy
安装软件包
python setup.py install
支持和贡献
这项执行工作仍在进行中。任何评论/建议/错误报告 非常感谢。请随时联系我:eamid@ucsc.edu。如果你愿意 想贡献代码,请fork the project 给我一个请求。
引文
如果您使用trimap,请在arxiv上引用我们当前的参考资料:
@article{2018TRIMAP, author = {{Amid}, E. and {Warmuth}, M. K.}, title = "{A more globally accurate dimensionality reduction method using triplets}", journal = {ArXiv e-prints}, archivePrefix = "arXiv", eprint = {1803.00854}, year = 2018, month = march, }
许可证
请查看许可证文件。