python-3.x - 如何在 Pytorch 中使用 KNN、随机森林模型?

标签 python-3.x scikit-learn pytorch

这可能看起来像是一个 X Y 问题,但最初我有大量数据并且我无法在给定的资源(RAM 问题)上进行训练。所以我想我可以使用 Pytorchbatch 特性。但是除了深度学习,我想使用 KNN、随机森林、聚类等方法。那么我是否可以在 Pytorch 中使用 scikit 库?

最佳答案

更新

目前,有一些使用 GPU 的 sklearn 替代方案,最突出的是由 rapidsai 提供的 cuML(链接 here)。

上一个答案

建议不要仅出于使用批处理的目的使用PyTorch

论证如下:

  1. scikit-learn has docs about scaling在哪里可以找到 MiniBatchKMeans还有其他选项,例如 partial_fit 方法或 warm_start 参数(与 RandomForest 一样,check this approach)。
  2. 如果没有使用磁盘缓存的手工实现,KNN 无法轻松使用,因为它将整个数据集存储在内存中(并且您缺少 RAM)。无论哪种方式,这种方法都非常低效,不要尝试。
  3. 您很可能无法创建与 scikit 中的算法相当的算法(至少不能独自完成,并且需要大量工作)。最好的选择是使用经过实战检验的解决方案(即使目前它仍然是 0.2x)。通过 numba 应该可以提高一些速度但这超出了这个问题的范围。也许您可以将 CUDA 用于不同的算法,但这是一项更重要的任务。

总而言之,PyTorch 适用于大量使用 CUDA 的深度学习计算。如果您需要神经网络,这个框架是目前最好的框架之一,否则请使用 sklearnother frameworks allowing incremental training 之类的东西.您始终可以使用 numpy()pytorch 中的其他一些调用轻松地桥接这两者。

编辑:我发现 KNN 实现可能符合您的要求 in this github repository

关于python-3.x - 如何在 Pytorch 中使用 KNN、随机森林模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55663672/

相关文章:

python-3.x - 如何从 Dataflow 批量(有效)发布到 Pub/Sub?

python - scikit-learn roc_auc_score() 返回精度值

python - <type 'exceptions.ImportError' > 当导入 pandas 和 sklearn 时

python - 一个 3-d 张量如何被两个 2d 张量索引?

python - 如何创建单词的字谜?

python - 大型CSV文件处理

pytorch - 在单个图像上评估 Pytorch torchvision 的简单方法

python - pytorch KLDivLoss损失为负

python - 上下文管理器处理路径的类型提示

python - 如何将标准化应用于训练和测试数据集