[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-rust-ml--linfa":3,"tool-rust-ml--linfa":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",160411,2,"2026-04-18T23:33:24",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",109154,"2026-04-18T11:18:24",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":76,"owner_website":77,"owner_url":78,"languages":79,"stars":91,"forks":92,"last_commit_at":93,"license":94,"difficulty_score":95,"env_os":96,"env_gpu":97,"env_ram":97,"env_deps":98,"category_tags":104,"github_topics":105,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":110,"updated_at":111,"faqs":112,"releases":142},9428,"rust-ml\u002Flinfa","linfa","A Rust machine learning framework.","Linfa 是一个专为 Rust 语言打造的机器学习框架，旨在为开发者提供一套构建高效、安全机器学习应用的综合工具包。它的名字源自意大利语“树液”，象征着为植物输送养分的关键流体，寓意着该框架是驱动 Rust 机器学习生态的核心动力。\n\n在 Rust 生态中，长期缺乏一个类似 Python scikit-learn 那样统一且易用的经典算法库。Linfa 正是为了解决这一痛点而生，它涵盖了从数据预处理到模型训练的全流程需求。目前，Linfa 已经实现了多种成熟的监督与无监督学习算法，包括朴素贝叶斯、K-Means 聚类、随机森林、支持向量机以及层次聚类等，并且大部分模块都经过了严格的测试与基准评估。\n\nLinfa 特别适合熟悉 Rust 或希望将机器学习能力集成到高性能系统后端中的软件工程师和研究人员。借助 Rust 语言固有的内存安全特性和卓越的执行效率，Linfa 让用户能够在无需牺牲性能的前提下，轻松开发低延迟、高并发的机器学习服务。其模块化设计允许用户按需引入特定算法子包，既灵活又轻量。如果你正在寻找一个可靠、现代且社区活跃的 Rust 机器学习解决方案，Linfa 值得尝试。","\u003Cimg align=\"left\" src=\".\u002Fmascot.svg\" width=\"70px\" height=\"70px\" alt=\"Linfa mascot icon\">\n\n# Linfa\n\n[![crates.io](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Flinfa.svg)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Flinfa)\n[![Documentation](https:\u002F\u002Fdocs.rs\u002Flinfa\u002Fbadge.svg)](https:\u002F\u002Fdocs.rs\u002Flinfa)\n[![DocumentationLatest](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-blue)](https:\u002F\u002Frust-ml.github.io\u002Flinfa\u002Frustdocs\u002Flinfa\u002F)\n[![Codequality](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fworkflows\u002FCodequality%20Lints\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Factions?query=workflow%3A%22Codequality+Lints%22)\n[![Run Tests](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fworkflows\u002FRun%20Tests\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Factions?query=workflow%3A%22Run+Tests%22)\n\n> _**linfa**_ (Italian) \u002F _**sap**_ (English):\n> \n> The **vital** circulating fluid of a plant.\n\n\n`linfa` aims to provide a comprehensive toolkit to build Machine Learning applications with Rust.\n\nKin in spirit to Python's `scikit-learn`, it focuses on common preprocessing tasks and classical ML algorithms for your everyday ML tasks.\n\n\u003Cstrong>\n    \u003Ca href=\"https:\u002F\u002Frust-ml.github.io\u002Flinfa\u002F\">Website\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Frust-ml.zulipchat.com\">Community chat\u003C\u002Fa>\n\u003C\u002Fstrong>\n\n## Current state\n\nWhere does `linfa` stand right now? [Are we learning yet?](http:\u002F\u002Fwww.arewelearningyet.com\u002F)\n\n`linfa` currently provides sub-packages with the following algorithms: \n\n\n| Name                                             | Purpose                                  | Status                | Category              | Notes                                                                                     |\n| :----------------------------------------------- | :--------------------------------------- | :-------------------- | :-------------------- | :---------------------------------------------------------------------------------------- |\n| [bayes](algorithms\u002Flinfa-bayes\u002F)                 | Naive Bayes                              | Tested                | Supervised learning   | Contains Bernouilli, Gaussian and Multinomial Naive Bayes                                 |\n| [clustering](algorithms\u002Flinfa-clustering\u002F)       | Data clustering                          | Tested \u002F Benchmarked  | Unsupervised learning | Clustering of unlabeled data; contains K-Means, Gaussian-Mixture-Model, DBSCAN and OPTICS |\n| [ensemble](algorithms\u002Flinfa-ensemble\u002F)           | Ensemble methods                         | Tested                | Supervised learning   | Contains bagging, random forest and AdaBoost                                              |\n| [elasticnet](algorithms\u002Flinfa-elasticnet\u002F)       | Elastic Net                              | Tested                | Supervised learning   | Linear regression with elastic net constraints                                            |\n| [ftrl](algorithms\u002Flinfa-ftrl\u002F)                   | Follow The Regularized Leader - proximal | Tested  \u002F Benchmarked | Partial fit           | Contains L1 and L2 regularization. Possible incremental update                            |\n| [hierarchical](algorithms\u002Flinfa-hierarchical\u002F)   | Agglomerative hierarchical clustering    | Tested                | Unsupervised learning | Cluster and build hierarchy of clusters                                                   |\n| [ica](algorithms\u002Flinfa-ica\u002F)                     | Independent component analysis           | Tested                | Unsupervised learning | Contains FastICA implementation                                                           |\n| [kernel](algorithms\u002Flinfa-kernel\u002F)               | Kernel methods for data transformation   | Tested                | Pre-processing        | Maps feature vector into higher-dimensional space                                         |\n| [lars](algorithms\u002Flinfa-lars\u002F)                   | Linear regression                        | Tested                | Supervised learning   | Contains Least Angle Regression (LARS)                                                    |\n| [linear](algorithms\u002Flinfa-linear\u002F)               | Linear regression                        | Tested                | Supervised learning   | Contains Ordinary Least Squares (OLS), Generalized Linear Models (GLM)                    |\n| [logistic](algorithms\u002Flinfa-logistic\u002F)           | Logistic regression                      | Tested                | Partial fit           | Builds two-class logistic regression models                                               |\n| [nn](algorithms\u002Flinfa-nn\u002F)                       | Nearest Neighbours & Distances           | Tested \u002F Benchmarked  | Pre-processing        | Spatial index structures and distance functions                                           |\n| [pls](algorithms\u002Flinfa-pls\u002F)                     | Partial Least Squares                    | Tested                | Supervised learning   | Contains PLS estimators for dimensionality reduction and regression                       |\n| [preprocessing](algorithms\u002Flinfa-preprocessing\u002F) | Normalization & Vectorization            | Tested \u002F Benchmarked  | Pre-processing        | Contains data normalization\u002Fwhitening and count vectorization\u002Ftf-idf                      |\n| [reduction](algorithms\u002Flinfa-reduction\u002F)         | Dimensionality reduction                 | Tested                | Pre-processing        | Diffusion mapping, Principal Component Analysis (PCA), Random projections                 |\n| [svm](algorithms\u002Flinfa-svm\u002F)                     | Support Vector Machines                  | Tested                | Supervised learning   | Classification or regression analysis of labeled datasets                                 |\n| [trees](algorithms\u002Flinfa-trees\u002F)                 | Decision trees                           | Tested \u002F Benchmarked  | Supervised learning   | Linear decision trees                                                                     |\n| [tsne](algorithms\u002Flinfa-tsne\u002F)                   | Dimensionality reduction                 | Tested                | Unsupervised learning | Contains exact solution and Barnes-Hut approximation t-SNE                                |\n\nWe believe that only a significant community effort can nurture, build, and sustain a machine learning ecosystem in Rust - there is no other way forward.\n\nIf this strikes a chord with you, please take a look at the [roadmap](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fissues\u002F7) and get involved!\n\n## BLAS\u002FLapack backend\n\nSome algorithm crates need to use an external library for linear algebra routines. By default, we use a pure-Rust implementation. However, you can also choose an external BLAS\u002FLAPACK backend library instead, by enabling the `blas` feature and a feature corresponding to your BLAS backend. Currently you can choose between the following BLAS\u002FLAPACK backends: `openblas`, `netblas` or `intel-mkl`.\n\n| Backend   | Linux | Windows | macOS |\n| :-------- | :---: | :-----: | :---: |\n| OpenBLAS  |   ✔️   |    -    |   -   |\n| Netlib    |   ✔️   |    -    |   -   |\n| Intel MKL |   ✔️   |    ✔️    |   ✔️   |\n\nEach BLAS backend has two features available. The feature allows you to choose between linking the BLAS library in your system or statically building the library. For example, the features for the `intel-mkl` backend are `intel-mkl-static` and `intel-mkl-system`.\n\nAn example set of Cargo flags for enabling the Intel MKL backend on an algorithm crate is `--features blas,linfa\u002Fintel-mkl-system`. Note that the BLAS backend features are defined on the `linfa` crate, and should only be specified for the final executable.\n\n# License\nDual-licensed to be compatible with the Rust project.\n\nLicensed under the Apache License, Version 2.0 http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0 or the MIT license http:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT, at your option. This file may not be copied, modified, or distributed except according to those terms.\n","\u003Cimg align=\"left\" src=\".\u002Fmascot.svg\" width=\"70px\" height=\"70px\" alt=\"林法吉祥物图标\">\n\n# Linfa\n\n[![crates.io](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Flinfa.svg)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Flinfa)\n[![文档](https:\u002F\u002Fdocs.rs\u002Flinfa\u002Fbadge.svg)](https:\u002F\u002Fdocs.rs\u002Flinfa)\n[![最新文档](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-latest-blue)](https:\u002F\u002Frust-ml.github.io\u002Flinfa\u002Frustdocs\u002Flinfa\u002F)\n[![代码质量](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fworkflows\u002FCodequality%20Lints\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Factions?query=workflow%3A%22Codequality+Lints%22)\n[![运行测试](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fworkflows\u002FRun%20Tests\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Factions?query=workflow%3A%22Run+Tests%22)\n\n> _**linfa**_（意大利语）\u002F _**sap**_（英语）：\n> \n> 植物体内循环的**生命之液**。\n\n\n`linfa` 旨在为使用 Rust 构建机器学习应用提供一套全面的工具集。\n\n其精神与 Python 的 `scikit-learn` 非常相似，专注于常见的预处理任务和经典机器学习算法，以满足日常的机器学习需求。\n\n\u003Cstrong>\n    \u003Ca href=\"https:\u002F\u002Frust-ml.github.io\u002Flinfa\u002F\">官网\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Frust-ml.zulipchat.com\">社区聊天\u003C\u002Fa>\n\u003C\u002Fstrong>\n\n## 当前状态\n\n`linfa` 目前处于什么阶段呢？[我们已经开始学习了吗？](http:\u002F\u002Fwww.arewelearningyet.com\u002F)\n\n目前，`linfa` 提供了包含以下算法的子包：\n\n\n| 名称                                             | 用途                                  | 状态                | 类别              | 备注                                                                                     |\n| :----------------------------------------------- | :--------------------------------------- | :-------------------- | :-------------------- | :---------------------------------------------------------------------------------------- |\n| [bayes](algorithms\u002Flinfa-bayes\u002F)                 | 朴素贝叶斯                              | 已测试                | 监督学习   | 包含伯努利、高斯和多项式朴素贝叶斯                                 |\n| [clustering](algorithms\u002Flinfa-clustering\u002F)       | 数据聚类                          | 已测试 \u002F 已基准测试  | 无监督学习 | 对未标记数据进行聚类；包含 K-Means、高斯混合模型、DBSCAN 和 OPTICS |\n| [ensemble](algorithms\u002Flinfa-ensemble\u002F)           | 集成方法                         | 已测试                | 监督学习   | 包含装袋法、随机森林和 AdaBoost                                              |\n| [elasticnet](algorithms\u002Flinfa-elasticnet\u002F)       | 弹性网络                              | 已测试                | 监督学习   | 具有弹性网络约束的线性回归                                            |\n| [ftrl](algorithms\u002Flinfa-ftrl\u002F)                   | 跟随正则化领导者 - 近端优化          | 已测试 \u002F 已基准测试 | 部分拟合           | 包含 L1 和 L2 正则化。支持增量更新                            |\n| [hierarchical](algorithms\u002Flinfa-hierarchical\u002F)   | 凝聚层次聚类                        | 已测试                | 无监督学习 | 聚类并构建聚类层次结构                                                   |\n| [ica](algorithms\u002Flinfa-ica\u002F)                     | 独立成分分析                          | 已测试                | 无监督学习 | 包含 FastICA 实现                                                           |\n| [kernel](algorithms\u002Flinfa-kernel\u002F)               | 核方法用于数据转换                  | 已测试                | 预处理        | 将特征向量映射到更高维空间                                         |\n| [lars](algorithms\u002Flinfa-lars\u002F)                   | 线性回归                              | 已测试                | 监督学习   | 包含最小角回归 (LARS)                                                    |\n| [linear](algorithms\u002Flinfa-linear\u002F)               | 线性回归                              | 已测试                | 监督学习   | 包含普通最小二乘法 (OLS)、广义线性模型 (GLM)                    |\n| [logistic](algorithms\u002Flinfa-logistic\u002F)           | 逻辑回归                              | 已测试                | 部分拟合           | 构建二分类逻辑回归模型                                               |\n| [nn](algorithms\u002Flinfa-nn\u002F)                       | 最近邻与距离计算                    | 已测试 \u002F 已基准测试  | 预处理        | 空间索引结构和距离函数                                           |\n| [pls](algorithms\u002Flinfa-pls\u002F)                     | 偏最小二乘法                          | 已测试                | 监督学习   | 包含 PLS 估计器，用于降维和回归                       |\n| [preprocessing](algorithms\u002Flinfa-preprocessing\u002F) | 归一化与向量化                      | 已测试 \u002F 已基准测试  | 预处理        | 包括数据归一化\u002F白化以及词频-逆文档频率向量化                      |\n| [reduction](algorithms\u002Flinfa-reduction\u002F)         | 维度缩减                              | 已测试                | 预处理        | 扩散映射、主成分分析 (PCA)、随机投影                 |\n| [svm](algorithms\u002Flinfa-svm\u002F)                     | 支持向量机                          | 已测试                | 监督学习   | 对标记数据集进行分类或回归分析                                 |\n| [trees](algorithms\u002Flinfa-trees\u002F)                 | 决策树                              | 已测试 \u002F 已基准测试  | 监督学习   | 线性决策树                                                                     |\n| [tsne](algorithms\u002Flinfa-tsne\u002F)                   | 维度缩减                              | 已测试                | 无监督学习 | 包含精确解和 Barnes-Hut 近似 t-SNE                                |\n\n我们认为，只有通过大规模的社区共同努力，才能培育、构建并持续发展 Rust 中的机器学习生态系统——这是唯一的出路。\n\n如果您对此深有共鸣，请查看[路线图](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fissues\u002F7)，并积极参与进来！\n\n## BLAS\u002FLAPACK 后端\n\n一些算法库需要使用外部库来实现线性代数运算。默认情况下，我们使用纯 Rust 实现。不过，你也可以通过启用 `blas` 特性和对应于你的 BLAS 后端的特性来选择外部的 BLAS\u002FLAPACK 后端库。目前可供选择的 BLAS\u002FLAPACK 后端包括：`openblas`、`netblas` 或 `intel-mkl`。\n\n| 后端       | Linux | Windows | macOS |\n| :-------- | :---: | :-----: | :---: |\n| OpenBLAS  |   ✔️   |    -    |   -   |\n| Netlib    |   ✔️   |    -    |   -   |\n| Intel MKL |   ✔️   |    ✔️    |   ✔️   |\n\n每个 BLAS 后端都有两个可用的特性。这些特性允许你选择是链接系统中的 BLAS 库，还是将该库静态地构建到你的项目中。例如，`intel-mkl` 后端的特性为 `intel-mkl-static` 和 `intel-mkl-system`。\n\n在算法库中启用 Intel MKL 后端的 Cargo 标志示例为 `--features blas,linfa\u002Fintel-mkl-system`。请注意，BLAS 后端的相关特性是在 `linfa` crate 中定义的，因此应仅在最终可执行文件中指定。\n\n# 许可证\n采用双重许可，以兼容 Rust 项目。\n\n本项目根据你的选择，可依据 Apache License, Version 2.0（http:\u002F\u002Fwww.apache.org\u002Flicenses\u002FLICENSE-2.0）或 MIT 许可证（http:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT）进行授权。除非遵守上述条款，否则不得复制、修改或分发本文件。","# Linfa 快速上手指南\n\nLinfa 是 Rust 生态中的机器学习工具箱，旨在提供类似 Python `scikit-learn` 的功能，涵盖数据预处理、经典监督\u002F无监督学习算法及降维工具。\n\n## 环境准备\n\n*   **操作系统**: Linux, macOS, Windows\n*   **Rust 版本**: 建议安装最新稳定版 (Stable)\n*   **前置依赖**:\n    *   确保已安装 `rustc` 和 `cargo`。\n    *   (可选) 若需高性能线性代数运算，需安装对应的 BLAS\u002FLAPACK 库（如 OpenBLAS 或 Intel MKL），否则将默认使用纯 Rust 实现。\n\n**安装 Rust (如未安装):**\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\nsource $HOME\u002F.cargo\u002Fenv\n```\n\n> **国内加速提示**: 如遇网络问题，可配置国内镜像源：\n> ```bash\n> export RUSTUP_DIST_SERVER=https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Frustup\n> export RUSTUP_UPDATE_ROOT=https:\u002F\u002Fmirrors.tuna.tsinghua.edu.cn\u002Frustup\u002Frustup\n> ```\n\n## 安装步骤\n\n在你的 Rust 项目目录中，通过 `Cargo.toml` 添加依赖。\n\n**1. 基础安装 (纯 Rust 后端，兼容性最好):**\n```toml\n[dependencies]\nlinfa = \"0.6\"\n# 根据需求添加具体算法包，例如：\nlinfa-clustering = \"0.6\"\nlinfa-linear = \"0.6\"\nlinfa-preprocessing = \"0.6\"\nndarray = \"0.15\"\n```\n\n**2. 启用 BLAS 加速 (可选，提升矩阵运算性能):**\n若需使用 Intel MKL 作为后端（支持 Linux\u002FWindows\u002FmacOS），在 `Cargo.toml` 中配置：\n```toml\n[dependencies]\nlinfa = { version = \"0.6\", features = [\"blas\", \"intel-mkl-system\"] }\n# 或者使用静态链接\n# linfa = { version = \"0.6\", features = [\"blas\", \"intel-mkl-static\"] }\n```\n*注意：BLAS 特性需在最终可执行项目的 `linfa` 依赖中开启。*\n\n然后运行以下命令更新依赖：\n```bash\ncargo update\n```\n\n## 基本使用\n\n以下示例演示如何使用 Linfa 进行简单的 **K-Means 聚类**。\n\n**主要步骤：**\n1. 生成或加载数据 (`ndarray`)。\n2. 选择算法并配置参数。\n3. 调用 `fit` 进行训练。\n4. 获取结果。\n\n```rust\nuse linfa::traits::{Fit, Predict};\nuse linfa_clustering::KMeans;\nuse ndarray::{arr2, ArrayBase, Ix2};\nuse rand::{distributions::Uniform, prelude::*};\n\nfn main() {\n    \u002F\u002F 1. 准备数据 (这里手动创建一个简单的 2D 数据集)\n    \u002F\u002F 实际使用中通常从文件或数据库加载为 ndarray::Array2\n    let data = arr2(&[\n        [1.0, 2.0],\n        [1.5, 1.8],\n        [5.0, 8.0],\n        [8.0, 8.0],\n        [1.0, 0.6],\n        [9.0, 11.0],\n    ]);\n\n    \u002F\u002F 2. 配置 K-Means 算法\n    \u002F\u002F 设置聚类数量为 2，随机种子为 42，最大迭代次数为 100\n    let params = KMeans::params(2)\n        .seed(42)\n        .max_n_iterations(100);\n\n    \u002F\u002F 3. 训练模型 (Fit)\n    \u002F\u002F fit 方法返回训练好的模型\n    let model = params.fit(&data).expect(\"KMeans fitting failed\");\n\n    \u002F\u002F 4. 预测\u002F获取聚类标签 (Predict)\n    let targets = model.predict(&data).expect(\"Prediction failed\");\n\n    println!(\"聚类中心:\\n{}\", model.centroids());\n    println!(\"数据点对应的聚类标签: {:?}\", targets);\n}\n```\n\n**运行项目:**\n```bash\ncargo run\n```\n\nLinfa 的 API 设计高度统一，大多数算法（如线性回归 `linfa-linear`、支持向量机 `linfa-svm`）均遵循 `params().fit()` 和 `model.predict()` 的模式，便于快速切换和组合不同的机器学习流程。","某物联网初创公司的后端团队正利用 Rust 构建高并发传感器数据分析服务，需要实时检测异常设备并预测故障趋势。\n\n### 没有 linfa 时\n- 团队被迫在 Rust 项目中通过 FFI 调用 Python 的 scikit-learn，导致部署包体积庞大且依赖环境复杂，违背了 Rust 原生编译的优势。\n- 缺乏统一的机器学习接口标准，不同算法由不同成员从零手写实现，代码风格割裂，维护成本极高。\n- 无法直接利用 Rust 强大的内存安全特性进行数据预处理，手动管理数组越界风险大，偶尔引发生产环境崩溃。\n- 模型训练与推理过程难以融入现有的异步运行时，阻塞主线程导致整体服务吞吐量下降。\n\n### 使用 linfa 后\n- 直接引入 linfa 及其子库（如 linfa-clustering 和 linfa-ensemble），纯 Rust 实现消除了外部语言依赖，生成了单一静态二进制文件，部署极其轻量。\n- 享受类似 scikit-learn 的统一 API 设计，团队成员可快速切换 K-Means 聚类或随机森林算法，代码复用率显著提升。\n- 借助 Rust 的类型系统和 linfa 的张量操作，在数据清洗阶段彻底杜绝了内存错误，保障了长期运行的稳定性。\n- 算法原生支持 Rust 生态，轻松与 Tokio 异步框架集成，实现了非阻塞的实时流式预测，大幅提升了系统响应速度。\n\nlinfa 让 Rust 开发者能在保持系统级性能与安全的同时，以极简的方式落地经典的机器学习应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frust-ml_linfa_739f5c57.png","rust-ml","Rust-ML","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Frust-ml_1776c8e9.png","",null,"https:\u002F\u002Frust-ml.zulipchat.com\u002F","https:\u002F\u002Fgithub.com\u002Frust-ml",[80,84,88],{"name":81,"color":82,"percentage":83},"Rust","#dea584",99.9,{"name":85,"color":86,"percentage":87},"Python","#3572A5",0,{"name":89,"color":90,"percentage":87},"Gnuplot","#f0a9f0",4618,319,"2026-04-18T13:23:06","Apache-2.0",4,"Linux, Windows, macOS","未说明",{"notes":99,"python":100,"dependencies":101},"该工具是基于 Rust 语言的机器学习库，非 Python 项目。默认使用纯 Rust 实现的线性代数后端，但可通过启用 'blas' 特性并选择特定后端（如 intel-mkl-system）来链接系统级的 BLAS\u002FLAPACK 库以加速计算。其中 Intel MKL 支持所有三大操作系统，而 OpenBLAS 和 Netlib 仅明确支持 Linux。","不适用 (基于 Rust)",[102,103],"Rust 工具链","BLAS\u002FLAPACK (可选: OpenBLAS, Netlib, Intel MKL)",[14],[106,107,108,109],"machine-learning","rust","algorithms","scientific-computing","2026-03-27T02:49:30.150509","2026-04-19T09:16:41.755933",[113,118,123,128,133,138],{"id":114,"question_zh":115,"answer_zh":116,"source_url":117},42308,"在 macOS 上运行 Cargo 时遇到 'Undefined symbols for architecture x86_64' (如 _dgelsd_, _cblas_sdot) 错误怎么办？","这是因为 `intel-mkl-static` crate 没有预构建的 macOS 库。解决方法有以下几种：\n1. 手动安装 Intel BLAS 库，并使用 `intel-mkl-system` 替代。\n2. 尝试使用 `netlib-static`。\n3. 等待项目更新（参考 Issue #147），未来版本将不再依赖外部 BLAS 库。\n注意：直接下载 `intel-mkl-tool` 可能会报 'Not Found' 错误，因此推荐上述替代方案。","https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fissues\u002F197",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},42309,"如何在不需要 LAPACK 依赖（例如在嵌入式环境）的情况下使用 Linfa 算法？","Linfa 正在提供不使用 LAPACK 例程的非加速算法实现。当禁用相应的功能标志（feature flags）时，可以激活这些实现。例如，高斯混合模型可以提供仅包含独立单变量高斯的第二实现。目前各 crate 对 LAPACK 的依赖情况如下：\n- linfa-ica: 对称特征值 (eigh), SVD\n- linfa-reduction: LOBPCG, eigh\n- linfa-clustering: Cholesky, 三角求解器\n- linfa-preprocessing: Cholesky, SVD, 逆矩阵\n- linfa-pls: SVD\n- linfa-linear: 最小二乘法\n- linfa-elasticnet: 逆矩阵\n非 LAPACK 实现正在开发中。","https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fissues\u002F147",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},42310,"使用 ndarray 0.16 版本时初始化 DatasetBase 报错 'trait `Records` is not implemented' 如何解决？","这是一个已知的兼容性问题，当项目使用 ndarray 0.16 时会发生此错误。该问题已在 Pull Request #371 中修复。请确保升级到包含此修复的最新版本或等待官方发布新版本。","https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fissues\u002F357",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},42311,"编译 `linfa-kernel` 失败，提示找不到 `mul` 方法 (error[E0599]) 怎么办？","这是由于 `sprs` 依赖库的版本兼容性问题导致的。临时解决方案是在你的 `Cargo.toml` 中强制指定 `sprs` 的版本为 0.11.1。添加以下配置：\n```\nsprs = \"=0.11.1\"\n```\n pinned 版本后通常可以解决编译错误并恢复正常构建。","https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fissues\u002F307",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},42312,"Linfa 文档中代码示例在移动端显示溢出或换行异常如何处理？","这是一个已知的前端展示问题，特别是在移动设备上代码片段会超出代码框右侧。维护者已注意到该问题并在部分提交中尝试修复溢出代码框的问题，但网站上的换行显示可能仍有异常。建议用户在本地构建文档查看（而非 doc.rs），因为本地版本可能已经包含了最新的修复。","https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fissues\u002F82",{"id":139,"question_zh":140,"answer_zh":141,"source_url":137},42313,"如何为 Linfa 的子 crate（如 linfa-bayes, linfa-hierarchical 等）贡献文档改进？","你可以参考 `linfa-clustering` 和 `linfa-elasticnet` 子 crate 的文档结构作为模板。具体的改进任务包括：\n1. 更新子 crate 文档，简要描述所用算法。\n2. 添加使用所提供模型的示例代码。\n3. 提供关于何时选择特定预测器（如朴素贝叶斯）的提示。\n4. 确保示例不仅存在于参数结构页面，也添加到子 crate 的主页面。\n建议在本地构建中查看现有文档，因为某些页面可能已更新但未同步到在线文档。",[143,148,153,158,163,168,173,178,183,188,193,198],{"id":144,"version":145,"summary_zh":146,"released_at":147},334412,"0.8.1","## 变更内容\n\nLinfa 0.8.1 版本在新的 `linfa-lars` crate 中新增了最小角回归算法，并在 `linfa-ensemble` 中新增了随机森林和 AdaBoost 算法。\n\n* `linfa-lars`: 由 @aswin-1111 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F421 中添加了最小角回归算法。\n* `linfa-ensemble`:\n  * 由 @ladezai 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F410 和 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F419 中将随机森林作为 `EnsembleLearner` 的一个子案例添加。\n  * 由 @rathideep22 和 @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F427 中添加了 AdaBoost 分类器。\n* `linfa-ica`: 由 @lmmx 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F426 中修复了缺失的指数函数。\n* `linfa`:\n  * 由 @ladezai 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F410 中为 `Dataset` 添加了带索引的自助抽样工具。\n  * 由 @rathideep22 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F422 中修复了 ndarray 0.16 和 0.17 版本不兼容的问题（0.17 不受支持）。\n\n## 新贡献者\n* @ladezai 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F410 中完成了首次贡献。\n* @rathideep22 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F422 中完成了首次贡献。\n* @aswin-1111 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F421 中完成了首次贡献。\n* @lmmx 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F426 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fcompare\u002F0.8.0...0.8.1","2025-12-23T14:19:12",{"id":149,"version":150,"summary_zh":151,"released_at":152},334413,"0.8.0","## 变更内容\n\n除了伯努利朴素贝叶斯分类器和自助聚合集成方法之外，Linfa 0.8.0 版本最显著的改进是增加了对 `ndarray` 0.16 的支持。\n\n* `linfa-bayes`：@wildart 和 @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F388 中添加了伯努利朴素贝叶斯实现。\n* `linfa-ensemble`：@jk1015 和 @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F392 中新增了集成方法库 `linfa-ensemble`。\n* `linfa-clustering`：@techyorzl 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F381 中为高斯混合模型添加了 `predict_proba()` 方法。\n* `linfa-preprocessing`：@marco-cloudflare 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F376 中为 CountVectorizer 添加了 `max_features` 参数和分词器。\n* `linfa-svm`：@relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F370 中修复了 SVR 的 `nu` 参数传递问题，并重构了 SVR 的参数化 API。\n* `linfa-pls`：@relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F380 中修复了 `linfa-pls` 算法的 `serde` 支持问题。\n* `linfa-nn`：@acgessler 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F391 中将 `kdtree` 升级至 0.7.0。\n* `linfa-trees`：@WilsonKuo 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F384 中将 `NodeIter` 中用于广度优先遍历的队列从 `Vec` 替换为 `VecDeque`，以实现更符合预期的行为。\n* `linfa`：\n  * @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F371 中升级到 `ndarray` 0.16。\n  * @oojo12 和 @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F373 中为 `Dataset` 添加了目标名称。\n  * @levkk 和 @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F374 中修复了混淆矩阵的问题。\n  * @Plutone11011 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F377 中修复了数据洗牌后原始特征和目标名称丢失的问题。\n  * @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F371 中将最低稳定 Rust 版本（MSRV）提升至 1.87.0。\n\n## 新贡献者\n* @Plutone11011 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F377 中完成了首次贡献。\n* @techyorzl 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F381 中完成了首次贡献。\n* @marco-cloudflare 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F376 中完成了首次贡献。\n* @WilsonKuo 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F384 中完成了首次贡献。\n* @acgessler 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F391 中完成了首次贡献。\n\n（我尽力记录了所有贡献者。如果遗漏了任何人，请随时联系我，我会相应更新发布说明）\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fcompare\u002F0.7.1...0.8.0","2025-09-30T09:43:40",{"id":154,"version":155,"summary_zh":156,"released_at":157},334414,"0.7.1","## 变更内容\n* 由 @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F322 中修复了 GMM 的协方差矩阵问题\n* [聚类] 由 @cyqsimon 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F324 中为所有公开项派生 `{Des,S}erialize` 实现\n* 将 linfa-preprocessing 的基准测试转换为 Criterion 格式 #274，由 @lucas-montes 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F314 中完成\n* 逻辑回归：二分类标签获取器，由 @DGPardo 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F325 中实现\n* 暴露 PCA 成分和列均值的引用，由 @hamishs 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F327 中完成\n* 添加 wasm-bindgen 功能以启用 argmin\u002Fwasm-bindgen，由 @atsuik 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F329 中实现\n* 改进 LinearRegression 的文档字符串，由 @rainij 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F330 中完成\n* 升级 ndarray-linalg 0.16 和 argmin 0.9.0，由 @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F331 中完成\n* 构建修复，由 @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F333 中完成\n* 新特性：实现随机投影，由 @GBathie 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F332 中实现\n* 减少内存分配，由 @cospectrum 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F350 中完成\n* 新特性：实现逆 PCA 函数，由 @tc-mateus 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F312 中实现\n* CI 维护，由 @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F368 中完成\n* 更新 README 以匹配示例中的文件名，由 @jesper-olsen 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F356 中完成\n* 修复文档：更新 `DbscanValidParams` 中 `tolerance` 的描述，由 @grevgeny 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F358 中完成\n* 修复文档：修正拼写错误，由 @Ab2nour 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F359 中完成\n* 发布版本 0.7.1，由 @relf 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F369 中完成\n\n## 新贡献者\n* @cyqsimon 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F324 中做出了首次贡献\n* @lucas-montes 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F314 中做出了首次贡献\n* @DGPardo 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F325 中做出了首次贡献\n* @hamishs 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F327 中做出了首次贡献\n* @atsuik 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F329 中做出了首次贡献\n* @rainij 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F330 中做出了首次贡献\n* @GBathie 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F332 中做出了首次贡献\n* @cospectrum 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F350 中做出了首次贡献\n* @tc-mateus 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F312 中做出了首次贡献\n* @jesper-olsen 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F356 中做出了首次贡献\n* @grevgeny 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F358 中做出了首次贡献\n* @Ab2nour 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F359 中做出了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fcompare\u002F0.7.0...0.7.1","2025-01-17T10:36:13",{"id":159,"version":160,"summary_zh":161,"released_at":162},334415,"0.7.0","## 变更内容\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F230 中将最低稳定版本提升至 1.57\n* 由 @wildart 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F223 中添加了等距回归功能\n* 由 @jorgehermo9 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F231 中修复了 p 范数的创建问题\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F235 中为 linfa-nn 的输出添加了 Send+Sync 特性\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F239 中修复了 Clippy 警告\n* 由 @InCogNiTo124 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F240 中改进了 CI 流程\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F241 中更新了 CI 中的操作系统镜像和检出动作\n* 由 @gkobeaga 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F243 中将 anyhow 更新至 1.0.58 版本\n* 由 @quettabit 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F244 中修复了 k-means 算法中的 `max_n_iterations` 参数问题\n* 由 @levkk 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F247 中为 LogisticRegression 添加了 serde 支持\n* 由 @gkobeaga 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F246 中自动生成功能内文档链接\n* 由 @bernardo-sb 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F250 中向回归指标中添加了 MAPE\n* 由 @oojo12 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F257 中从 linfa 聚类模块中移除了 BLAS 依赖\n* 由 @oojo12 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F261 中添加了 ICA 基准测试\n* 由 @oojo12 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F260 中生成了表格型数据集\n* 由 @oojo12 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F266 中启用了 convert_targets 方法\n* 由 @oojo12 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F267 中添加了一些基准测试指导\n* 由 @oojo12 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F271 中升级了 criterion 库\n* 由 @oojo12 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F253 中添加了 Iai OLS 基准测试\n* 由 @oojo12 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F263 中添加了 PLS 基准测试\n* 由 @oojo12 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F273 中为现有基准测试添加了 Pprof 性能分析\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F238 中添加了多任务 ElasticNet 支持\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F280 中使用 generate feature 更新了数据集文档\n* 由 @oojo12 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F276 中更新了 criterion 配置\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F283 中发布了 0.6.1 版本\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F284 中添加了从 CSV 文件读取数组的 API\n* 由 @stefan-k 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F289 中将 linfa-linear 中的 argmin 更新至 0.8.0 版本\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F292 中为 `linfa-preprocessing` 和 `linfa-bayes` 添加了 serde 支持\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F297 中修复了 Clippy 警告\n* 由 @tmokazaki 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F296 中使 k-means 模型可序列化\n* 由 @YuhanLiin 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F298 中移除了近似 DBSCAN 实现，并用类型别名替代\n* 由 @derekperkins 在 https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fpull\u002F302 中修复了 README.md 中的拼写错误\n* 由 @bytesnake 在 https:\u002F\u002Fgi 中重写了逻辑回归中的二分类标签分配","2025-01-07T08:03:05",{"id":164,"version":165,"summary_zh":166,"released_at":167},334416,"0.6.0","Linfa 0.6.0 版本通过使用纯 Rust 的线性代数库，移除了对外部 BLAS 库（如 `intel-mkl`）的强制依赖。同时，新增了朴素多项式贝叶斯和正则化跟随者算法。此外，`AsTargets` trait 被拆分为 `AsSingleTargets` 和 `AsMultiTargets`。\n\n## 不再需要 BLAS\n\n在 Linfa 的旧版本中，使用高级线性代数运算的算法 crate 需要链接到外部 BLAS 库，例如 Intel-MKL。这通常通过在构建时添加类似 `linfa\u002Fintel-mkl-static` 的特性标志来实现，但会显著增加编译时间。0.6.0 版本用纯 Rust 实现的所有必要线性代数运算替换了 BLAS 库，Linfa 默认使用这一实现。这意味着所有 Linfa crate 现在都可以无需额外特性标志而正常、快速地构建。不过，受影响的算法 crate 仍然可以选择链接到外部 BLAS 库。为此，需要启用该 crate 的 `blas` 特性，并同时启用对应外部 BLAS 库的特性标志。受影响的 crate 包括：\n\n* `linfa-ica`\n* `linfa-reduction`\n* `linfa-clustering`\n* `linfa-preprocessing`\n* `linfa-pls`\n* `linfa-linear`\n* `linfa-elasticnet`\n\n## 新算法\n\n多项式朴素贝叶斯是一类假设变量之间相互独立的朴素贝叶斯分类器。其优势在于，在最大似然训练下，具有闭式解，且拟合时间呈线性复杂度。该算法已添加到 `linfa-bayes` 中，示例可参见 [linfa-bayes\u002Fexamples\u002Fwinequality_multinomial.rs](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fblob\u002Fmaster\u002Falgorithms\u002Flinfa-bayes\u002Fexamples\u002Fwinequality_multinomial.rs)。\n\n[正则化跟随者算法（FTRL）](https:\u002F\u002Fwww.eecs.tufts.edu\u002F~dsculley\u002Fpapers\u002Fad-click-prediction.pdf) 是一种用于在线学习场景下点击率预测的线性模型。它是一种特殊的带有 sigmoid 函数的线性模型，采用 L1 和 L2 正则化。该算法包含在新近添加的 `linfa-ftrl` crate 中，示例可参见 [linfa-ftrl\u002Fexamples\u002Fwinequality.rs](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fblob\u002Fmaster\u002Falgorithms\u002Flinfa-ftrl\u002Fexamples\u002Fwinequality.rs)。\n\n## 区分单目标与多目标\n\n0.6.0 版本对 `AsTarget` trait 进行了重大调整，现已拆分为 `AsSingleTargets` 和 `AsMultiTargets`。此外，`Dataset*` 类型现在根据目标维度进行泛型参数化，不再始终使用二维数组。同时，仅适用于单目标数据的算法将不再接受多目标数据集作为输入。这一变化可能会导致调用相关算法的现有代码出现编译错误。解决方法非常简单：只需在传入数据集的类型参数末尾添加 `Ix1`，即可强制指定该数据集为单目标数据集。\n\n## 改进\n\n * 从 `KMeans` 和 `GaussianMixture` 中移除 `SeedableRng` trait 约束。\n * 将 Isaac RNG 的使用替换为 Xoshiro RNG。","2022-06-15T05:07:41",{"id":169,"version":170,"summary_zh":171,"released_at":172},334417,"0.5.1","Linfa 0.5.1 版本修复了先前版本中的错误和漏洞，并移除了 `Dataset` 类型上无用的 trait bound。请注意，此版本的提交位于 GitHub 仓库的 `0-5-1` 分支中。\n\n## 改进\n\n * 移除多个 `Dataset` 实现中的 `Float` trait bound，使非浮点数据集也可使用\n * 修复 0.5.0 版本中因依赖项的小版本不兼容更新而导致的构建错误\n * 修复 K-means 算法中的一个 bug：算法的终止条件计算有误\n * 修复单独构建 `linfa` 时因 `ndarray` 的特性选择不当而导致的构建失败\n","2022-03-01T04:01:59",{"id":174,"version":175,"summary_zh":176,"released_at":177},334418,"0.5.0","Linfa 0.5.0 版本新增了对 OPTICS 算法、多项式逻辑回归以及最近邻算法族的初步支持。此外，我们还改进了文档，并为所有算法引入了超参数检查机制。\n\n## 新算法\n\n[OPTICS](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOPTICS_algorithm) 是一种基于密度的聚类算法。它可以生成可达性图和聚类的层次结构。在无需预先假设数据分布的情况下分析数据是其常见的应用场景之一。该算法现已加入 `linfa-clustering` 模块，示例代码位于 [linfa-clustering\u002Fexamples\u002Foptics.rs](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fblob\u002Fmaster\u002Falgorithms\u002Flinfa-clustering\u002Fexamples\u002Foptics.rs)。\n\n将逻辑回归扩展到多项式分布，可以将其推广用于[多分类问题](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMultinomial_logistic_regression)。此版本为 `linfa-logistic` 模块增加了对多项式逻辑回归的支持，您可以在 [linfa-logistic\u002Fexamples\u002Fwinequality_multi.rs](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fblob\u002Fmaster\u002Falgorithms\u002Flinfa-logistic\u002Fexamples\u002Fwinequality_multi.rs) 中尝试相关示例。\n\n最近邻搜索用于查找给定样本的邻域点集。作为一种距离度量方法，它广泛应用于多个领域（例如聚类等）。此版本新增了一系列最近邻算法，包括 [Ball 树](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBall_tree)、[K-d 树](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FK-d_tree) 以及朴素的线性搜索。相关示例请参见下一节。\n\n## 改进\n\n * 在 `linfa-linear` 中使用 `ndarray-linalg` 提供的最小二乘求解器\n * 使聚类算法对距离度量更加通用\n * 将 `ndarray` 升级至 0.15 版本\n * 引入 `ParamGuard` 特性，用于显式和隐式参数检查（更多信息请参阅 [CONTRIBUTE.md](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fblob\u002Fmaster\u002FCONTRIBUTE.md#parameters-and-checking)）\n * 多处改进文档\n\n## 最近邻\n\n现在您可以从不断丰富的 NN 实现列表中进行选择。这一系列算法能够为 KMeans、DBSCAN 等提供高效的距离度量。以下示例展示了如何使用 KdTree 最近邻算法，查找观测集中与某个候选点距离在特定范围内的所有点。\n\n您可以显式地查询最近的点：\n\n```rust\n\u002F\u002F 使用欧几里得距离创建包含所有观测点的 KdTree 索引\nlet kdtree = CommonNearestNeighbour::KdTree.from_batch(observations, L2Dist)?;\nlet candidate = observations.row(2);\nlet points = kdtree.within_range(candidate.view(), range)?;\n```\n\n或者以隐式方式使用其中一种距离度量，此处以 KMeans 为例：\n\n```rust\nuse linfa_nn::distance::LInfDist;\n\nlet model = KMeans::params_with(3, rng, LInfDist)\n    .max_n_iterations(200)\n    .tolerance(1e-5)\n    .fit(&dataset)?;\n```","2021-10-21T15:07:49",{"id":179,"version":180,"summary_zh":181,"released_at":182},334419,"0.4.0","Linfa 0.4.0 版本引入了四种新算法，改进了 ICA 和 K-means 实现的文档，为 K-means 增加了更多基准测试，并升级到了 ndarray 的 0.14 版本。\n\n# 新算法\n\n本次发布新增了偏最小二乘回归（PLS）模型族（感谢 @relf）。该模型将观测变量和预测变量同时投影到潜在空间，并最大化它们之间的相关性。对于目标变量数量较多或自变量存在共线性的问题，与标准回归相比，PLS 能提供更好的性能。更多信息请参阅 `linfa-pls` 的文档。\n\n此外，本次还添加了一个 Barnes-Hut t-SNE 的封装实现。t-SNE 算法常用于数据可视化，它将高维空间中的数据映射到二维或三维空间中，通过最大化源分布与目标分布之间的 Kullback-Leibler 散度来实现这一目的。Barnes-Hut 近似方法在保持性能的同时，显著提升了运行效率。特别感谢 [github\u002Ffrjnn](https:\u002F\u002Fgithub.com\u002Ffrjnn\u002F) 提供的实现！\n\n还有一个新的预处理库，使得文本数据处理和数据归一化更加便捷（感谢 @Sauro98）。该库实现了用于文本预处理的 _count-vectorizer_ 和 _IT-IDF_ 归一化方法。针对信号数据的归一化方法包括线性缩放、范数归一化以及基于 PCA\u002FZCA\u002FCholesky 的白化处理。结合朴素贝叶斯模型的一个示例，在新闻数据集上对 `alt.atheism`、`talk.religion.misc`、`comp.graphics` 和 `sci.space` 四个类别进行预测时，F1 分数达到了 84%。\n\nPlatt 标度法可以将实值分类模型校准为两类概率输出，这在需要概率输出的支持向量机分类中非常有用。此外，还增加了一种多分类模型，它可以将多个二分类模型（例如经过校准的支持向量机模型）组合成一个单一的多分类模型。这些组合模型已被移至 `linfa\u002Fsrc\u002Fcomposing\u002F` 子目录下。\n\n# 改进\n\nKMeans 实现也得到了大量改进，这要归功于 @YuhanLiin。该实现针对离线训练进行了优化，新增了增量训练模式；而 KMeans++ 和 KMeans|| 初始化方法则能为中大型数据集提供良好的初始聚类中心。\n\n我们还升级到了 ndarray 的 0.14 版本，并引入了 `F::cast` 方法，以简化浮点数类型转换。`linfa::Fit` 的 trait 签名也被修改为始终返回 `Result` 类型，并且为 `linfa-logistic` 和 `linfa-reduction` 子 crate 添加了错误处理机制。\n\n在实际应用中，经常需要使用 k 折交叉验证来比较不同模型参数设置的效果。为此，我们新增了一个 `cross_validate` 函数，该函数接受折数、模型参数以及用于评估指标的闭包。它会自动执行 k 折交叉验证，并对各折的指标结果取平均值。为了比较不同…","2021-04-28T20:49:00",{"id":184,"version":185,"summary_zh":186,"released_at":187},334420,"0.3.1","在 Linfa 的本次发布中，文档得到了扩展，新增了示例，并改进了数据集的功能。不过并未添加新的算法。\n\n元问题 [#82](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fissues\u002F82) 对必要的文档改进进行了很好的概述，而在此版本中，测试、文档和示例都得到了显著的扩充。\n\n此外，数据集还新增了一些功能，引入了多目标数据集。现在可以对特征和样本进行自助采样，并且能够使用 k 折交叉验证来评估模型。我们还对核机器的相关实现进行了优化，并简化了其接口。\n\n回归指标的 trait 结构也得到了简化，并引入了轮廓系数，以便更方便地测试 K-Means 等算法。\n\n\n# 变更\n\n * 改进所有算法的文档，涉及多个提交\n * 在基础设施中添加了一个网站 (c8acc785b)\n * 添加了带复制和不带复制的 k 折交叉验证 (b0af80546f8)\n * 增加了特征命名功能和皮尔逊相关系数计算 (71989627f)\n * 改进了核函数的使用体验 (1a7982b973)\n * 改进了 `linfa-trees` 中的 TikZ 图形生成器 (9d71f603bbe)\n * 引入了多目标数据集 (b231118629)\n * 简化了回归指标并新增了聚类指标 (d0363a1fa8ef)\n\n# 示例\n\n现在可以使用 k 折交叉验证来进行模型评估。@Sauro98 实际上实现了两个版本：一个会将数据集复制为 k 个折，另一个则通过只复制验证集来避免过多的内存操作。例如，要使用 8 折交叉验证来测试一个模型：\n\n```rust\n\u002F\u002F 使用 F1 分数进行交叉验证\nlet f1_runs = dataset\n    .iter_fold(8, |v| params.fit(&v).unwrap())\n    .map(|(model, valid)| {\n        let cm = model\n            .predict(&valid)\n            .mapv(|x| x > Pr::even())\n            .confusion_matrix(&valid).unwrap();\n  \n        cm.f1_score()\n    })  \n    .collect::\u003CArray1\u003C_>>();\n  \n\u002F\u002F 计算平均值和标准差\nprintln!(\"F1 分数: {}±{}\",\n    f1_runs.mean().unwrap(),\n    f1_runs.std_axis(Axis(0), 0.0),\n); \n```","2021-03-11T09:31:50",{"id":189,"version":190,"summary_zh":191,"released_at":192},334421,"0.3.0","# 新算法\n * 由 [@Sauro98] 添加了近似 DBSCAN 到 `linfa-clustering` 中。\n * 由 [@VasanthakumarV] 添加了高斯朴素贝叶斯到 `linfa-bayes` 中。\n * 由 [@paulkoerbitz] 和 [@bytesnake] 添加了弹性网络线性回归到 `linfa-elasticnet` 中。\n\n# 变更\n * 为高斯混合模型添加了基准测试 (a3eede55)。\n * 修复了线性决策树中的错误，并添加了 TiKZ 树的生成器 (bfa5aebe7)。\n * 在所有 crate 中实现了基于特性标志的 serde 支持 (4f0b63bb)。\n * 实现了新的后端功能 (7296c9ec4)。\n * 引入了 `linfa-datasets` 以方便测试 (3cec12b4f)。\n * 将 `Dataset` 重命名为 `DatasetBase`，并引入了 `Dataset` 和 `DatasetView` (21dd579cf)。\n * 改进了内核测试和文档 (8e81a6d)。\n\n# 示例\n以下部分展示了一个小型示例，说明数据集如何与线性决策树的训练和测试交互。\n\n您可以加载一个数据集，对其进行随机打乱，然后将其划分为训练集和验证集：\n```rust\n\u002F\u002F 使用种子 42 初始化伪随机数生成器\nlet mut rng = Isaac64Rng::seed_from_u64(42);\n\u002F\u002F 加载 Iris 数据集，随机打乱并按 0.8 的比例划分\nlet (train, test) = linfa_datasets::iris()\n    .shuffle(&mut rng)\n    .split_with_ratio(0.8);\n```\n\n使用训练数据集可以训练一个线性决策树模型。这里使用熵作为衡量最佳分裂的标准：\n```rust\nlet entropy_model = DecisionTree::params()\n    .split_quality(SplitQuality::Entropy)\n    .max_depth(Some(100))\n    .min_weight_split(10.0)\n    .min_weight_leaf(10.0)\n    .fit(&train);\n```\n\n现在使用验证数据集来估计误差。为此，首先预测真实标签，然后通过混淆矩阵了解误差的类型：\n```rust\nlet cm = entropy_model\n    .predict(test.records().view())\n    .confusion_matrix(&test);\n\nprintln!(\"{:?}\", cm);\n\nprintln!(\n    \"使用熵准则的测试准确率：{:.2}%\",\n    100.0 * cm.accuracy()\n);\n```\n\n最后，您可以分析决策过程中使用了哪些特征，并将整棵树导出为 `TeX` 文件。该文件将包含一个 TiKZ 树，其中记录了分裂决策和不纯度改进的信息：\n```rust\nlet feats = entropy_model.features();\nprintln!(\"此树中训练使用的特征：{:?}\", feats);\n\nlet mut tikz = File::create(\"decision_tree_example.tex\").unwrap();\ntikz.write(gini_model.export_to_tikz().to_string().as_bytes())\n    .unwrap();\n```\n\n完整的示例可以在 [linfa-trees\u002Fexamples\u002Fdecision_tree.rs](https:\u002F\u002Fgithub.com\u002Frust-ml\u002Flinfa\u002Fblob\u002Fmaster\u002Flinfa-trees\u002Fexamples\u002Fdecision_tree.rs) 中找到。","2021-01-21T07:50:34",{"id":194,"version":195,"summary_zh":196,"released_at":197},334422,"0.2.1","Changes\r\n----------\r\n\r\n - remove feature flags, blocked by https:\u002F\u002Fgithub.com\u002Frust-lang\u002Fcargo\u002Fissues\u002F7915\r\n - make ready for crates.io","2020-11-29T17:11:29",{"id":199,"version":200,"summary_zh":201,"released_at":202},334423,"0.2.0","New algorithms\r\n-----------\r\n\r\n - Ordinary Linear Regression has been added to `linfa-linear` by [@Nimpruda] and [@paulkoerbitz]\r\n - Generalized Linear Models has been added to `linfa-linear` by [@VasanthakumarV]\r\n - Linear decision trees were added to `linfa-trees` by [@mossbanay]\r\n - Fast independent component analysis (ICA) has been added to `linfa-ica` by [@VasanthakumarV]\r\n - Principal Component Analysis and Diffusion Maps have been added to `linfa-reduction` by [@bytesnake]\r\n - Support Vector Machines has been added to `linfa-svm` by [@bytesnake]\r\n - Logistic regression has been added to `linfa-logistic` by [@paulkoerbitz]\r\n - Hierarchical agglomerative clustering has been added to `linfa-hierarchical` by [@bytesnake]\r\n - Gaussian Mixture Models has been added to `linfa-clustering` by [@relf]\r\n\r\nChanges\r\n----------\r\n\r\n - Common metrics for classification and regression have been added\r\n - A new dataset interface simplifies the work with targets and labels\r\n - New traits for `Transformer`, `Fit` and `IncrementalFit` standardizes the interface\r\n - Switched to Github Actions for better integration","2020-11-26T14:49:55"]