全是血泪,可惜对于大量数据,速度还是太慢。
一、代码
// ConsoleApplication2.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include "knncolle/knncolle.hpp"
#include "Umap.hpp"
#include <iostream>
#include <vector>
int main() {
int ndim = 1000; // 数据的维度
int nobs = 200000; // 观测值数量
std::vector<double> data(ndim * nobs); // 输入数据数组
std::vector<double> embedding(nobs * 2); // 用于存储UMAP嵌入结果
// 初始化输入数据,这里用随机数填充
for (int i = 0; i < ndim * nobs; ++i) {
data[i] = static_cast<double>(rand()) / RAND_MAX; // 用随机数填充数据
}
umappp::Umap x;
x.set_num_neighbors(30).set_num_epochs(100);
x.run(ndim, nobs, data.data(), 2, embedding.data());
// 处理嵌入结果,例如打印嵌入结果
for (int i = 0; i < nobs; ++i) {
std::cout << "Point " << i << ": (" << embedding[2 * i] << ", " << embedding[2 * i + 1] << ")" << std::endl;
}
return 0;
}
二、环境配置
1、 设置
2、包含文件
这些包含文件都在我的百度网盘,分享如下:
链接:https://pan.baidu.com/s/1luXsa5IqcOFSWclGqPwd1Q
提取码:syoa
--来自百度网盘超级会员V4的分享