[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-rasbt--mlxtend":3,"tool-rasbt--mlxtend":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 真正成长为懂上",145895,2,"2026-04-08T11:32:59",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108111,"2026-04-08T11:23:26",[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},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":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":10,"last_commit_at":59,"category_tags":60,"status":17},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,"2026-04-06T11:19:32",[35,15,13,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":72,"owner_website":77,"owner_url":78,"languages":79,"stars":88,"forks":89,"last_commit_at":90,"license":91,"difficulty_score":92,"env_os":93,"env_gpu":94,"env_ram":94,"env_deps":95,"category_tags":102,"github_topics":104,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":112,"updated_at":113,"faqs":114,"releases":145},5609,"rasbt\u002Fmlxtend","mlxtend","A library of extension and helper modules for Python's data analysis and machine learning libraries.","mlxtend（Machine Learning Extensions）是一个专为 Python 数据科学与机器学习生态打造的实用工具库。它并非替代主流框架，而是作为 scikit-learn 等库的强力补充，提供了一系列在日常建模任务中高频使用但原生库未直接包含的扩展模块。\n\n在机器学习工作流中，开发者常面临模型集成复杂、特征工程手段有限以及结果可视化不够直观等痛点。mlxtend 有效解决了这些问题：它内置了便捷的堆叠（Stacking）和投票（Voting）分类器，让多模型融合变得简单高效；提供了丰富的特征选择与提取技术；更拥有强大的可视化功能，能一键绘制决策区域、混淆矩阵及模型分析图表，帮助直观理解算法表现。此外，它还支持包括 Apriori 算法在内的频繁模式挖掘，适用于关联规则分析场景。\n\n这款工具特别适合数据科学家、机器学习工程师及科研研究人员使用。无论是需要快速验证集成学习效果的算法开发者，还是希望深入探索数据特征的研究者，都能从中获益。其代码风格简洁统一，文档详尽且示例丰富，能够无缝融入现有的 Python 数据分析流程，显著提升从实验原型到结果展示的开发效率。","[![DOI](https:\u002F\u002Fjoss.theoj.org\u002Fpapers\u002F10.21105\u002Fjoss.00638\u002Fstatus.svg)](https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00638)\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fmlxtend.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fmlxtend)\n[![Anaconda-Server Badge](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fmlxtend\u002Fbadges\u002Fversion.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fmlxtend)\n[![Build status](https:\u002F\u002Fci.appveyor.com\u002Fapi\u002Fprojects\u002Fstatus\u002F7vx20e0h5dxcyla2\u002Fbranch\u002Fmaster?svg=true)](https:\u002F\u002Fci.appveyor.com\u002Fproject\u002Frasbt\u002Fmlxtend\u002Fbranch\u002Fmaster)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Frasbt\u002Fmlxtend\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Frasbt\u002Fmlxtend)\n![Python 3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3-blue.svg)\n![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-BSD-blue.svg)\n[![Discuss](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdiscuss-github-blue.svg)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fdiscussions)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frasbt_mlxtend_readme_30f3efddc533.png\" alt=\"mlxtend logo\" width=\"300px\">\n\n**Mlxtend (machine learning extensions) is a Python library of useful tools for the day-to-day data science tasks.**\nIt is primarily used for:\n- Ensemble methods such as stacking and voting classifiers\n- Feature selection and feature extraction techniques\n- Visualization utilities (e.g., decision regions, confusion matrices)\n- Plotting helpers for model analysis\n- Frequent pattern mining, including the Apriori algorithm for association rule mining\n\n\n\u003Cbr>\n\nSebastian Raschka 2014-2026\n\n\u003Cbr>\n\n## Links\n\n- **Documentation:** [https:\u002F\u002Frasbt.github.io\u002Fmlxtend](https:\u002F\u002Frasbt.github.io\u002Fmlxtend)\n- PyPI: [https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fmlxtend](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fmlxtend)\n- Changelog: [https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002FCHANGELOG](https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002FCHANGELOG)\n- Contributing: [https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002FCONTRIBUTING](https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002FCONTRIBUTING)\n- Questions? Check out the [GitHub Discussions board](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fdiscussions)\n\n\u003Cbr>\n\u003Cbr>\n\n## Installing mlxtend\n\n#### PyPI\n\nTo install mlxtend, just execute  \n\n```bash\npip install mlxtend  \n```\n\nAlternatively, you could download the package manually from the Python Package Index [https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fmlxtend](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fmlxtend), unzip it, navigate into the package, and use the command:\n\n```bash\npython setup.py install\n```\n\n#### Conda\nIf you use conda, to install mlxtend just execute\n\n```bash\nconda install -c conda-forge mlxtend \n```\n\n#### Dev Version\n\nThe mlxtend version on PyPI may always be one step behind; you can install the latest development version from the GitHub repository by executing\n\n```bash\npip install git+git:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend.git#egg=mlxtend\n```\n\nOr, you can fork the GitHub repository from https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend and install mlxtend from your local drive via\n\n```bash\npython setup.py install\n```\n\n\u003Cbr>\n\u003Cbr>\n\n## Examples\n\n```python\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport matplotlib.gridspec as gridspec\nimport itertools\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.svm import SVC\nfrom sklearn.ensemble import RandomForestClassifier\nfrom mlxtend.classifier import EnsembleVoteClassifier\nfrom mlxtend.data import iris_data\nfrom mlxtend.plotting import plot_decision_regions\n\n# Initializing Classifiers\nclf1 = LogisticRegression(random_state=0)\nclf2 = RandomForestClassifier(random_state=0)\nclf3 = SVC(random_state=0, probability=True)\neclf = EnsembleVoteClassifier(clfs=[clf1, clf2, clf3], weights=[2, 1, 1], voting='soft')\n\n# Loading some example data\nX, y = iris_data()\nX = X[:,[0, 2]]\n\n# Plotting Decision Regions\ngs = gridspec.GridSpec(2, 2)\nfig = plt.figure(figsize=(10, 8))\n\nfor clf, lab, grd in zip([clf1, clf2, clf3, eclf],\n                         ['Logistic Regression', 'Random Forest', 'RBF kernel SVM', 'Ensemble'],\n                         itertools.product([0, 1], repeat=2)):\n    clf.fit(X, y)\n    ax = plt.subplot(gs[grd[0], grd[1]])\n    fig = plot_decision_regions(X=X, y=y, clf=clf, legend=2)\n    plt.title(lab)\nplt.show()\n```\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frasbt_mlxtend_readme_62f4d648549c.png)\n\n---\n\nIf you use mlxtend as part of your workflow in a scientific publication, please consider citing the mlxtend repository with the following DOI:\n\n\n```\n@article{raschkas_2018_mlxtend,\n  author       = {Sebastian Raschka},\n  title        = {MLxtend: Providing machine learning and data science \n                  utilities and extensions to Python’s  \n                  scientific computing stack},\n  journal      = {The Journal of Open Source Software},\n  volume       = {3},\n  number       = {24},\n  month        = apr,\n  year         = 2018,\n  publisher    = {The Open Journal},\n  doi          = {10.21105\u002Fjoss.00638},\n  url          = {https:\u002F\u002Fjoss.theoj.org\u002Fpapers\u002F10.21105\u002Fjoss.00638}\n}\n```\n\n- Raschka, Sebastian (2018) MLxtend: Providing machine learning and data science utilities and extensions to Python's scientific computing stack.\nJ Open Source Softw 3(24).\n\n---\n\n## License\n\n- This project is released under a permissive new BSD open source license ([LICENSE-BSD3.txt](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fblob\u002Fmaster\u002FLICENSE-BSD3.txt)) and commercially usable. There is no warranty; not even for merchantability or fitness for a particular purpose.\n- In addition, you may use, copy, modify and redistribute all artistic creative works (figures and images) included in this distribution under the directory\naccording to the terms and conditions of the Creative Commons Attribution 4.0 International License.  See the file [LICENSE-CC-BY.txt](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fblob\u002Fmaster\u002FLICENSE-CC-BY.txt) for details. (Computer-generated graphics such as the plots produced by matplotlib fall under the BSD license mentioned above).\n\n## Contact\n\nThe best way to ask questions is via the [GitHub Discussions channel](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fdiscussions). In case you encounter usage bugs, please don't hesitate to use the [GitHub's issue tracker](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues) directly. \n","[![DOI](https:\u002F\u002Fjoss.theoj.org\u002Fpapers\u002F10.21105\u002Fjoss.00638\u002Fstatus.svg)](https:\u002F\u002Fdoi.org\u002F10.21105\u002Fjoss.00638)\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fmlxtend.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fmlxtend)\n[![Anaconda-Server Badge](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fmlxtend\u002Fbadges\u002Fversion.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fmlxtend)\n[![Build status](https:\u002F\u002Fci.appveyor.com\u002Fapi\u002Fprojects\u002Fstatus\u002F7vx20e0h5dxcyla2\u002Fbranch\u002Fmaster?svg=true)](https:\u002F\u002Fci.appveyor.com\u002Fproject\u002Frasbt\u002Fmlxtend\u002Fbranch\u002Fmaster)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Frasbt\u002Fmlxtend\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Frasbt\u002Fmlxtend)\n![Python 3](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-3-blue.svg)\n![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-BSD-blue.svg)\n[![Discuss](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdiscuss-github-blue.svg)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fdiscussions)\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frasbt_mlxtend_readme_30f3efddc533.png\" alt=\"mlxtend logo\" width=\"300px\">\n\n**Mlxtend（机器学习扩展库）是一个用于日常数据科学任务的实用工具Python库。**\n它主要用于：\n- 集成方法，如堆叠和投票分类器\n- 特征选择和特征提取技术\n- 可视化工具（例如决策区域、混淆矩阵）\n- 模型分析的绘图辅助函数\n- 频繁模式挖掘，包括用于关联规则挖掘的Apriori算法\n\n\n\u003Cbr>\n\n塞巴斯蒂安·拉斯奇卡 2014-2026\n\n\u003Cbr>\n\n## 链接\n\n- **文档：** [https:\u002F\u002Frasbt.github.io\u002Fmlxtend](https:\u002F\u002Frasbt.github.io\u002Fmlxtend)\n- PyPI： [https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fmlxtend](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fmlxtend)\n- 更改日志： [https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002FCHANGELOG](https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002FCHANGELOG)\n- 贡献指南： [https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002FCONTRIBUTING](https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002FCONTRIBUTING)\n- 有问题？请查看 [GitHub 讨论区](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fdiscussions)\n\n\u003Cbr>\n\u003Cbr>\n\n## 安装 mlxtend\n\n#### PyPI\n\n要安装 mlxtend，只需执行以下命令：\n\n```bash\npip install mlxtend  \n```\n\n或者，您也可以从 Python 包索引 [https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fmlxtend](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002Fmlxtend) 手动下载该包，解压缩后进入包目录，并使用以下命令：\n\n```bash\npython setup.py install\n```\n\n#### Conda\n如果您使用 conda，只需执行以下命令即可安装 mlxtend：\n\n```bash\nconda install -c conda-forge mlxtend \n```\n\n#### 开发版本\nPyPI 上的 mlxtend 版本可能总是落后一步；您可以从 GitHub 仓库安装最新的开发版本，执行以下命令：\n\n```bash\npip install git+git:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend.git#egg=mlxtend\n```\n\n或者，您也可以从 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend 分支出一个副本，并通过本地驱动器安装 mlxtend：\n\n```bash\npython setup.py install\n```\n\n\u003Cbr>\n\u003Cbr>\n\n## 示例\n\n```python\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport matplotlib.gridspec as gridspec\nimport itertools\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.svm import SVC\nfrom sklearn.ensemble import RandomForestClassifier\nfrom mlxtend.classifier import EnsembleVoteClassifier\nfrom mlxtend.data import iris_data\nfrom mlxtend.plotting import plot_decision_regions\n\n# 初始化分类器\nclf1 = LogisticRegression(random_state=0)\nclf2 = RandomForestClassifier(random_state=0)\nclf3 = SVC(random_state=0, probability=True)\neclf = EnsembleVoteClassifier(clfs=[clf1, clf2, clf3], weights=[2, 1, 1], voting='soft')\n\n# 加载示例数据\nX, y = iris_data()\nX = X[:,[0, 2]]\n\n# 绘制决策区域\ngs = gridspec.GridSpec(2, 2)\nfig = plt.figure(figsize=(10, 8))\n\nfor clf, lab, grd in zip([clf1, clf2, clf3, eclf],\n                         ['逻辑回归', '随机森林', 'RBF核支持向量机', '集成'],\n                         itertools.product([0, 1], repeat=2)):\n    clf.fit(X, y)\n    ax = plt.subplot(gs[grd[0], grd[1]])\n    fig = plot_decision_regions(X=X, y=y, clf=clf, legend=2)\n    plt.title(lab)\nplt.show()\n```\n\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frasbt_mlxtend_readme_62f4d648549c.png)\n\n---\n\n如果您在科学出版物的工作流程中使用了 mlxtend，请考虑引用 mlxtend 仓库，并附上以下 DOI：\n\n\n```\n@article{raschkas_2018_mlxtend,\n  author       = {Sebastian Raschka},\n  title        = {MLxtend: 提供机器学习和数据科学实用工具及扩展，以增强 Python 的科学计算栈},\n  journal      = {开源软件期刊},\n  volume       = {3},\n  number       = {24},\n  month        = apr,\n  year         = 2018,\n  publisher    = {开放期刊},\n  doi          = {10.21105\u002Fjoss.00638},\n  url          = {https:\u002F\u002Fjoss.theoj.org\u002Fpapers\u002F10.21105\u002Fjoss.00638}\n}\n```\n\n- Raschka, Sebastian (2018) MLxtend：为 Python 的科学计算栈提供机器学习和数据科学实用工具及扩展。\nJ Open Source Softw 3(24).\n\n---\n\n## 许可证\n\n- 本项目采用宽松的新 BSD 开源许可证（[LICENSE-BSD3.txt](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fblob\u002Fmaster\u002FLICENSE-BSD3.txt)）发布，可供商业使用。不提供任何担保，甚至不保证适销性或特定用途的适用性。\n- 此外，您可以根据知识共享署名 4.0 国际许可协议的条款和条件，使用、复制、修改和再分发本发行版目录下包含的所有艺术创作作品（图表和图像）。详细信息请参阅文件 [LICENSE-CC-BY.txt](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fblob\u002Fmaster\u002FLICENSE-CC-BY.txt)。（由 matplotlib 等工具生成的计算机图形则适用上述 BSD 许可证。）\n\n## 联系方式\n\n提问的最佳方式是通过 [GitHub 讨论区](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fdiscussions)。如果遇到使用中的错误，请随时直接使用 [GitHub 的问题跟踪器](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues)。","# mlxtend 快速上手指南\n\n**mlxtend (machine learning extensions)** 是一个专为日常数据科学任务设计的 Python 库。它提供了丰富的工具，主要用于集成学习（如堆叠和投票分类器）、特征选择与提取、可视化辅助（如决策区域、混淆矩阵）以及频繁模式挖掘（如 Apriori 算法）。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS, 或 Windows\n*   **Python 版本**：Python 3.x\n*   **前置依赖**：\n    *   `numpy`\n    *   `scipy`\n    *   `scikit-learn`\n    *   `matplotlib`\n    *   `pandas`\n\n> **提示**：如果您使用 Anaconda 发行版，上述大部分依赖已预装。\n\n## 安装步骤\n\n您可以选择通过 PyPI 或 Conda 进行安装。**国内用户推荐使用国内镜像源以加速下载。**\n\n### 方法一：使用 pip 安装（推荐）\n\n使用清华大学或阿里云镜像源安装稳定版：\n\n```bash\npip install mlxtend -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n或者使用默认源：\n\n```bash\npip install mlxtend\n```\n\n### 方法二：使用 Conda 安装\n\n如果您使用 Conda 包管理器：\n\n```bash\nconda install -c conda-forge mlxtend\n```\n\n### 方法三：安装开发版本\n\n如果需要体验最新功能（可能包含未发布的修复），可从 GitHub 安装：\n\n```bash\npip install git+git:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend.git#egg=mlxtend\n```\n\n## 基本使用\n\n以下示例演示了如何使用 `mlxtend` 构建一个**集成投票分类器 (EnsembleVoteClassifier)**，并绘制不同模型的**决策区域**。\n\n该示例结合了逻辑回归、随机森林和 SVM，并展示了如何可视化它们的分类边界。\n\n```python\nimport numpy as np\nimport matplotlib.pyplot as plt\nimport matplotlib.gridspec as gridspec\nimport itertools\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.svm import SVC\nfrom sklearn.ensemble import RandomForestClassifier\nfrom mlxtend.classifier import EnsembleVoteClassifier\nfrom mlxtend.data import iris_data\nfrom mlxtend.plotting import plot_decision_regions\n\n# 1. 初始化基础分类器\nclf1 = LogisticRegression(random_state=0)\nclf2 = RandomForestClassifier(random_state=0)\nclf3 = SVC(random_state=0, probability=True)\n\n# 2. 创建集成投票分类器 (软投票，权重分别为 2, 1, 1)\neclf = EnsembleVoteClassifier(clfs=[clf1, clf2, clf3], weights=[2, 1, 1], voting='soft')\n\n# 3. 加载示例数据 (鸢尾花数据集)，仅使用前两个特征中的第 1 和第 3 列\nX, y = iris_data()\nX = X[:,[0, 2]]\n\n# 4. 设置绘图布局\ngs = gridspec.GridSpec(2, 2)\nfig = plt.figure(figsize=(10, 8))\n\n# 5. 训练模型并绘制决策区域\nfor clf, lab, grd in zip([clf1, clf2, clf3, eclf],\n                         ['Logistic Regression', 'Random Forest', 'RBF kernel SVM', 'Ensemble'],\n                         itertools.product([0, 1], repeat=2)):\n    clf.fit(X, y)\n    ax = plt.subplot(gs[grd[0], grd[1]])\n    fig = plot_decision_regions(X=X, y=y, clf=clf, legend=2)\n    plt.title(lab)\n\nplt.show()\n```\n\n运行上述代码后，您将看到一个包含四个子图的窗口，分别展示了三个单一模型和一个集成模型在二维空间中的决策边界。","某电商数据团队正在构建用户流失预测模型，试图通过融合逻辑回归、随机森林和 SVM 等多种算法来提升预测准确率，并需要向业务部门直观展示不同模型的决策边界差异。\n\n### 没有 mlxtend 时\n- **集成建模繁琐**：手动编写代码实现多个分类器的投票机制（Voting），需自行处理概率加权平均与硬投票逻辑，容易出错且难以维护。\n- **可视化重复劳动**：为了对比不同模型在二维特征空间的表现，必须为每个模型单独编写复杂的 Matplotlib 代码来绘制决策区域，耗时耗力。\n- **特征分析受限**：缺乏内置的工具快速评估特征子集对模型性能的影响，只能依赖基础库进行低效的循环测试。\n- **结果呈现割裂**：无法在一个统一的图表网格中并排展示基模型与集成模型的效果，导致汇报时图表分散，说服力不足。\n\n### 使用 mlxtend 后\n- **一键集成学习**：直接调用 `EnsembleVoteClassifier`，仅需几行代码即可配置软\u002F硬投票及权重，瞬间完成多模型融合，大幅降低开发门槛。\n- **高效决策可视化**：利用 `plot_decision_regions` 函数，自动绘制出清晰的决策边界图，支持自定义图例与样式，将数小时的绘图工作缩短至分钟级。\n- **灵活模型对比**：结合 Matplotlib 的 GridSpec，轻松在同一画布上并排展示逻辑回归、随机森林、SVM 及集成模型的决策区域，差异一目了然。\n- **扩展算法丰富**：内置 Apriori 等关联规则挖掘算法及堆叠分类器，无需从零造轮子，即可快速尝试更高级的特征提取与模型架构。\n\nmlxtend 将原本碎片化、高门槛的机器学习工程步骤封装为简洁易用的模块，让数据科学家能专注于策略优化而非底层代码实现。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Frasbt_mlxtend_62f4d648.png","rasbt","Sebastian Raschka","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Frasbt_4eb76c31.jpg","AI Research Engineer working on LLMs.",null,"https:\u002F\u002Fsebastianraschka.com","https:\u002F\u002Fgithub.com\u002Frasbt",[80,84],{"name":81,"color":82,"percentage":83},"Python","#3572A5",99.7,{"name":85,"color":86,"percentage":87},"TeX","#3D6117",0.3,5129,901,"2026-04-08T10:29:07","NOASSERTION",1,"Linux, macOS, Windows","未说明",{"notes":96,"python":97,"dependencies":98},"该库主要用于日常数据科学任务（如集成学习、特征选择、可视化等），基于 scikit-learn 生态。可通过 PyPI (pip) 或 Conda (conda-forge) 安装。代码示例显示其依赖 numpy 和 matplotlib 进行数据处理与绘图。","3+",[99,100,101],"numpy","matplotlib","scikit-learn",[103,14,16],"其他",[105,106,107,108,109,110,111],"python","machine-learning","data-science","data-mining","association-rules","supervised-learning","unsupervised-learning","2026-03-27T02:49:30.150509","2026-04-09T01:24:24.110606",[115,120,125,130,135,140],{"id":116,"question_zh":117,"answer_zh":118,"source_url":119},25469,"安装 mlxtend 后导入时出现 'ModuleNotFoundError: No module named mlxtend' 错误怎么办？","这通常是因为 Python 环境版本不匹配或依赖冲突。请尝试以下解决方案：\n1. 升级安装：运行 `pip install mlxtend --upgrade`\n2. 如果仍有问题，尝试忽略依赖直接安装：`pip install mlxtend --no-deps`\n3. 确保您使用的 Python 解释器（例如在 Jupyter Notebook 中）与执行 pip 安装命令的环境一致。","https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F399",{"id":121,"question_zh":122,"answer_zh":123,"source_url":124},25470,"使用 apriori 算法时返回空 DataFrame (Empty dataframe) 是什么原因？","这通常是因为数据中包含缺失值 (NaN)。apriori 函数要求输入数据只能包含 True, False, 0, 1。\n解决方案：在调用 apriori 之前，对数据进行填充处理，将 NaN 替换为 0。代码示例：`basket_sets = basket_set.fillna(0)`。此外，建议检查数据的 dtype 并确保没有非布尔或非数值类型的异常值。","https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F583",{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},25471,"StackingCVClassifier 如何对新测试数据进行预测？是否需要平均化结果？","不需要对结果进行平均化。StackingCVClassifier 的预测逻辑如下：\n1. 对于训练集，通过交叉验证生成元特征（meta-features）。\n2. 对于新的测试数据，直接使用所有基分类器在整个训练集上拟合后的模型来生成元特征，然后输入到元分类器中进行预测。\n因此，测试阶段的处理流程与训练阶段生成元特征的逻辑不同，直接调用 `.predict()` 或 `.predict_proba()` 即可，无需手动计算平均值。","https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F489",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},25472,"RFECV (sklearn) 和 SFS (mlxtend 向后选择) 的结果为什么会有差异？","两者结果存在差异是正常的，主要原因包括：\n1. 随机种子设置：确保模型和交叉验证 (CV) 的随机种子 (random_seed) 已固定，以减少方差带来的波动。\n2. 评估机制不同：RFECV 基于特征重要性进行剔除，而 SFS 基于提供的评估指标（如准确率）逐步移除特征。\n3. 数据缩放：某些实现中可能涉及样本沿特征的滚动缩放以保持同质性。\n如果固定了随机种子后差异仍然很大，可能是由于数据本身的高方差导致的。","https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F582",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},25473,"在使用 StackingCVClassifier 进行交叉验证时遇到 'ValueError: all the input arrays must have same number of dimensions' 错误如何解决？","该错误通常发生在元分类器（meta-classifier）处理基分类器输出的概率或预测值时维度不匹配。特别是在多分类问题中使用 `use_probas=True` 时，基分类器输出的概率数组维度可能与标签维度不一致。\n解决方法：\n1. 检查是否使用了支持 `predict_proba` 的分类器。\n2. 如果是多分类问题，确保元分类器能够处理多维输入，或者尝试关闭 `use_probas` 改用预测类别。\n3. 更新 mlxtend 到最新版本，因为早期版本的此问题已被修复。","https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F170",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},25474,"Sequential Feature Selection (SFS) 如何处理经过 One-Hot 编码的分类特征？会单独选择某个虚拟变量吗？","默认情况下，SFS 会将 One-Hot 编码后的每一列视为独立的特征，因此可能会出现只选择了某个分类特征的部分虚拟变量（例如 3 列中选了 2 列）的情况，这在逻辑上是不合理的。\n目前库中没有内置机制强制将同一组虚拟变量作为一个整体进行选择。建议在预处理阶段自行管理特征分组，或者在业务逻辑层面解释结果时注意这一点。这是一个已知的使用场景限制。","https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F502",[146,151,156,161,166,171,176,181,186,191,196,201,206,211,216,221,226,231,236,241],{"id":147,"version":148,"summary_zh":149,"released_at":150},162796,"v0.24.0","## 变更\n\n- 与最新版本的 scikit-learn（1.8.0）和 pandas（2.3.3）兼容\n- [`mlxtend\u002Fclassifier\u002Fstacking_cv_classification.py`](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fblob\u002Fmaster\u002Fmlxtend\u002Fclassifier\u002Fstacking_cv_classification.py) 和 [`mlxtend\u002Fregressor\u002Fstacking_cv_regression.py`](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fblob\u002Fmaster\u002Fmlxtend\u002Fregressor\u002Fstacking_cv_regression.py)\n      - 修改了 `meta_features`，通过在 `cross_val_predict` 中动态选择使用 `fit_params` 或 `params`，确保与 scikit-learn 1.4 及以上版本的兼容性。","2025-12-13T22:32:44",{"id":152,"version":153,"summary_zh":154,"released_at":155},162797,"v0.23.4","## 变更内容\n* 修复（测试）：将 `np.float_` 替换为 `np.float64`，由 @Bot-wxt1221 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1119 中完成\n* 修复关联规则的最新版本，由 @zazass8 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1121 中完成\n* v0.23.4 版本发布准备工作，由 @rasbt 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1122 中完成\n\n## 新贡献者\n* @Bot-wxt1221 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1119 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fcompare\u002Fv0.23.3...v0.23.4","2025-01-26T16:02:11",{"id":157,"version":158,"summary_zh":159,"released_at":160},162798,"v0.23.3","## 变更内容\n* 由 @d-kleine 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1113 中改进了时间序列分割的 `plot_splits` 函数。\n* 由 @d-kleine 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1111 中更新了 `publish` CI\u002FCD 工作流。\n* 由 @Haider010 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1104 中更新了 `exhaustive_feature_selector.py` 文件。\n* 修复：关联规则方法的代码示例存在执行…问题，由 @MarceloNunesAlves 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1115 中修复。\n* 版本 v0.23.3，由 @rasbt 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1116 中发布。\n\n## 新贡献者\n* @Haider010 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1104 中做出了首次贡献。\n* @MarceloNunesAlves 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1115 中做出了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fcompare\u002Fv0.23.2...v0.23.3","2024-11-15T00:42:29",{"id":162,"version":163,"summary_zh":164,"released_at":165},162799,"v0.23.2","## 变更内容\n* 由 @carlsmedstad 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1076 中提出：构建的 wheel 包中不再包含测试文件\n* 由 @danickblouin 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1084 中修复：OneRClassifier 笔记本中的拼写错误\n* 由 @rasbt 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1089 中更新：持续集成配置\n* 由 @it176131 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1091 中发现：最新版本的 scikit-learn 导致多个单元测试失败\n* 由 @it176131 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1087 中实现：将 scikit-learn 的 `set_output` 方法集成到 `TransactionEncoder`\n* 由 @fkdosilovic 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1081 中重构：bias_variance_decomposition 测试\n* 由 @tanmaychimurkar 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1057 中修正：fpgrowth.ipynb 中的一些小错别字\n* 由 @fkdosilovic 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1080 中使用：scipy 的分解方法用于 PCA\n* 由 @UltraArceus3 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1099 中添加：Jaccard、Certainty 和 Kulczynski 关联规则度量指标\n* 由 @zazass8 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1106 中实现：支持缺失值的 FPGrowth\u002FFPMax 和关联规则（#1004）\n* 由 @d-kleine 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1107 中为 SFS finalize_fit() 添加对 numpy >= 2.0 的支持\n* 由 @d-kleine 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1109 中修复：_calc_score，以确保与 *scikit-learn* 版本兼容\n* 由 @d-kleine 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1108 中更新：CI\u002FCD 工作流\n* 由 @rasbt 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1110 中添加：PyPI 部署工作流\n\n## 新贡献者\n* @carlsmedstad 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1076 中完成了首次贡献\n* @danickblouin 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1084 中完成了首次贡献\n* @it176131 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1091 中完成了首次贡献\n* @fkdosilovic 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1081 中完成了首次贡献\n* @tanmaychimurkar 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1057 中完成了首次贡献\n* @UltraArceus3 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1099 中完成了首次贡献\n* @zazass8 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1106 中完成了首次贡献\n* @d-kleine 在 https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1107 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fcompare\u002Fv0.23.1...v0.23.2","2024-11-05T14:14:47",{"id":167,"version":168,"summary_zh":169,"released_at":170},162800,"v0.23.1","### 版本 0.23.1（2024年1月5日）\n\n##### 变更\n\n- 更新了对 `distutils` 的依赖，以支持 Python 3.12 及更高版本（[[#1072](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1072)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1072)，由 [[peanutsee](https:\u002F\u002Fgithub.com\u002Fpeanutsee)](https:\u002F\u002Fgithub.com\u002Fpeanutsee) 提供）","2024-01-05T08:47:39",{"id":172,"version":173,"summary_zh":174,"released_at":175},162801,"v0.23.0","##### 下载\n\n- [[源代码 (zip)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Farchive\u002Fv0.21.1.zip)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Farchive\u002Fv0.21.1.zip)\n\n- [[源代码 (tar.gz)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Farchive\u002Fv0.22.1.tar.gz)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Farchive\u002Fv0.22.1.tar.gz)\n\n##### 变更\n\n- 处理 NumPy 的弃用警告，使 mlxtend 与 NumPy 1.24 兼容\n- 修改了测试中 sklearn 的 `LinearRegression` 模型的签名，移除了已弃用的 `normalize` 参数。([[#1036](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1036)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1036))\n- 添加 `pyproject.toml` 文件以支持 PEP 518 构建 ([[#1065](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1065)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1065)，由 [[jmahlik](https:\u002F\u002Fgithub.com\u002Fjmahlik)](https:\u002F\u002Fgithub.com\u002Fjmahlik) 提供)\n- 修复了从 sdist 安装失败的问题 ([[#1065](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1065)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1065)，由 [[jmahlik](https:\u002F\u002Fgithub.com\u002Fjmahlik)](https:\u002F\u002Fgithub.com\u002Fjmahlik) 提供)\n- 将配置转换为 `pyproject.toml` 格式 ([[#1065](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1065)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1065)，由 [[jmahlik](https:\u002F\u002Fgithub.com\u002Fjmahlik)](https:\u002F\u002Fgithub.com\u002Fjmahlik) 提供)\n- 由于现代环境中对 `dlib` 的支持较差，移除了包含人脸识别功能的 `mlxtend.image` 子模块。\n\n##### 新特性与改进\n\n- 文档中增加了关于如何使用 `SequentialFeatureSelector` 和多分类 ROC AUC 的说明。","2023-09-23T14:54:16",{"id":177,"version":178,"summary_zh":179,"released_at":180},162802,"v0.22.0","##### 变更\n\n- 当 [`ExhaustiveFeatureSelector`](https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002Fuser_guide\u002Ffeature_selection\u002FExhaustiveFeatureSelector\u002F) 在 `n_jobs == 1` 的情况下运行时，现已禁用 joblib，这使得在启用 `verbose` 模式时能够获得更即时（实时）的反馈。([#985](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F985) 由 [Nima Sarajpoor](https:\u002F\u002Fgithub.com\u002FNimaSarajpoor) 提出)\n- 禁用了 [`EnsembleVoteClassifier`](https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002Fuser_guide\u002Fclassifier\u002FEnsembleVoteClassifier\u002F) 中不必要的警告消息 ([#941](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F941))\n- 修复了多处文档问题 ([#849](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F849) 和 [#951](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F951)，由 [Lekshmanan Natarajan](https:\u002F\u002Fgithub.com\u002Fzuari1993) 负责)\n- 修复了“在 GitHub 上编辑”按钮的问题 ([#1024](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F1024))\n\n##### 新特性与改进\n\n- [`mlxtend.frequent_patterns.association_rules`](https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002Fuser_guide\u002Ffrequent_patterns\u002Fassociation_rules\u002F) 函数新增了一种度量指标——Zhang 指标，该指标可同时衡量关联性和非关联性。([#980](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F980))\n- 对 [`mlxtend.frequent_patterns.fpmax`](https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002Fuser_guide\u002Ffrequent_patterns\u002Fassociation_rules\u002F) 的内部代码进行了优化，避免将稀疏 DataFrame 转换为密集型 NumPy 数组。([#1000](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1000)，由 [Tim Kellogg](https:\u002F\u002Fgithub.com\u002Ftkellogg) 负责)\n- [`plot_decision_regions`](https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002Fuser_guide\u002Fplotting\u002Fplot_decision_regions\u002F) 函数现新增了 `n_jobs` 参数，用于并行化计算。在一个特定的应用场景中，针对一个小数据集，在本地拥有 36 核的高性能计算实例上，速度提升了 21 倍（从 449 秒缩短至 21 秒）。([#998](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F998)，由 [Khalid ElHaj](https:\u002F\u002Fgithub.com\u002FNe-oL) 负责)\n- 添加了 [`mlxtend.frequent_patterns.hmine`](https:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002Fuser_guide\u002Ffrequent_patterns\u002Fhmine\u002F) 算法及其文档，用于使用 H-Mine 算法挖掘频繁项集。([#1020](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F1020)，由 [Fatih Sen](https:\u002F\u002Fgithub.com\u002Ffatihsen20) 负责)","2023-04-02T18:57:58",{"id":182,"version":183,"summary_zh":184,"released_at":185},162803,"v0.21.0","##### 新功能与改进\r\n\r\n- `mlxtend.evaluate.feature_importance_permutation` 函数新增了 `feature_groups` 参数，可将用户指定的特征组视为单个特征，这对于独热编码后的特征非常有用。([#955](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F955))\r\n- `mlxtend.feature_selection.ExhaustiveFeatureSelector` 和 `SequentialFeatureSelector` 也增加了对 `feature_groups` 的支持，其行为与上述描述类似。([#957](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F957) 和 [#965](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F965)，由 [Nima Sarajpoor](https:\u002F\u002Fgithub.com\u002FNimaSarajpoor) 提供)\r\n\r\n##### 变更\r\n\r\n- 由于冗余且为简化代码库，已从 `ExhaustiveFeatureSelector` 中移除 `custom_feature_names` 参数。[ExhaustiveFeatureSelector 的文档](http:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002Fuser_guide\u002Ffeature_selection\u002FExhaustiveFeatureSelector\u002F) 说明了如何使用 pandas DataFrame 实现相同的行为和结果。([#957](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F957))\r\n\r\n##### 错误修复\r\n\r\n- 无\r\n","2022-09-17T17:35:28",{"id":187,"version":188,"summary_zh":189,"released_at":190},162804,"v0.20.0","#### 新功能与改进\n\n##### 下载\n\n- [源代码 (zip)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Farchive\u002Fv0.20.0.zip)\n\n- [源代码 (tar.gz)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Farchive\u002Fv0.20.0.tar.gz)\n\n\n\n##### 新功能与改进\n\n- `mlxtend.evaluate.bootstrap_point632_score` 现在支持 `fit_params` 参数。([#861](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F861))\n- `mlxtend\u002Fplotting\u002Fdecision_regions.py` 函数现在提供 `contourf_kwargs` 参数，允许用户通过 matplotlib 自定义决策边界样式。([#881](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F881)，由 [[pbloem](https:\u002F\u002Fgithub.com\u002Fpbloem)] 提供)\n- 为 `mlxtend.plotting.plot_confusion_matrix` 添加了 `norm_colormap` 参数，以支持对颜色映射进行归一化处理，例如使用 `matplotlib.colors.LogNorm()`。([#895](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F895))\n- 新增 `GroupTimeSeriesSplit` 类，用于时间序列任务的评估，相比 scikit-learn 的 `TimeSeriesSplit` 支持自定义分组及更多参数。([#915](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F915)，由 [Dmitry Labazkin](https:\u002F\u002Fgithub.com\u002Flabdmitriy) 提供)\n\n##### 变更\n\n- 由于与较新版本软件包存在兼容性问题，已移除 six.py 中的部分函数，因此 mlxtend 可能不再支持 Python 2.7。\n- 作为内部优化措施以加快单元测试速度，现采用 GitHub 工作流进行单元测试，并移除了 Travis CI 和 Appveyor 的集成钩子。\n- 改进了 `mlxtend.plotting.heatmap` 和 `mlxtend.plotting.plot_confusion_matrix` 中坐标轴标签的旋转效果。([#872](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F872))\n- 修复了 McNemar 检验相关文档中的多处拼写错误。\n- 当频繁模式挖掘函数 `apriori`、`fpmax` 和 `fpgrowth` 接收非布尔类型的数组时，会发出警告。([#934](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F934)，由 [NimaSarajpoor](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues?q=is%3Apr+is%3Aopen+author%3ANimaSarajpoor) 提供)\n\n##### 错误修复\n\n- 修复了在某些颜色映射下 `heatmap` 中标签难以辨认的问题。([#852](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F852))\n- 修复了在 `mlxtend.plotting.plot_confusion_matrix` 中传递字符串形式类别名称时出现的问题。([#894](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F894))","2022-05-27T02:02:36",{"id":192,"version":193,"summary_zh":194,"released_at":195},162805,"v0.19.0","### 版本 0.19.0（2021年9月2日）\n\n##### 新特性\n\n- 在 `mlxtend.evaluate.accuracy_score` 中新增了第二种“平衡准确率”计算方式（“balanced”），与现有的“average”选项并列，用于计算类似 scikit-learn 风格的平衡准确率。([#764](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F764))\n- 在 `mlxtend.plotting` 模块中新增了 `scatter_hist` 函数，用于生成散点直方图。([#757](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F757)，由 [Maitreyee Mhasaka](https:\u002F\u002Fgithub.com\u002FMaitreyee1) 提供)\n- `mlxtend.evaluate.permutation_test` 函数现在接受 `paired` 参数，以支持配对排列\u002F随机化检验。([#768](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F768))\n- `StackingCVRegressor` 现在也支持多维目标，类似于 `StackingRegressor`，只需通过 `StackingCVRegressor(..., multi_output=True)` 即可实现。([#802](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F802)，由 [Marco Tiraboschi](ChromaticIsobar) 提供)\n\n##### 变更\n\n- 更新了单元测试，以兼容 scikit-learn 0.24.1。([#774](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F774))\n- `StackingRegressor` 现在要求在目标为多维时显式设置 `StackingRegressor(..., multi_output=True)`，以便更好地进行输入验证。([#802](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F802))\n- 移除了 `plot_decision_regions` 中已弃用的 `res` 参数。([#803](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F803))\n- 为 `plot_learning_curves` 添加了 `title_fontsize` 参数，用于控制标题字体大小；同时绘图样式现已采用 matplotlib 的默认设置。([#818](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F818))\n- 内部更改：在 `mlxtend.plotting.plot_decision_regions` 的散点图高亮显示中，将 `'c': ''` 替换为 `'c': 'none'`，以保持与 Matplotlib 3.4 及更高版本的兼容性。([#822](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F822))\n- 为 `mlxtend.plotting.plot_confusion_matrix` 函数添加了 `fontcolor_threshold` 参数，作为手动确定字体颜色阈值的额外选项。([#827](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F827))\n- 如果传递了一个空的频繁项集 DataFrame，`frequent_patterns.association_rules` 现在会抛出 `ValueError` 异常。([#843](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F843))\n- 在 `mlxtend.evaluate.bootstrap_point632_score` 函数中实现的 .632 和 .632+ 自助法，现在使用整个训练集来计算重代入权重项，而不是每轮都使用一个新的自助样本作为内部训练集。([#844](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F844))\n\n##### 错误修复\n\n- 修复了 SequentialFeatureSelector 文档中的一个拼写错误。([#835](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F835)，由 [João Pedro Zanlorensi Cardoso](https:\u002F\u002Fgithub.com\u002Fjoaozanlorensi) 提供)","2021-09-02T23:54:04",{"id":197,"version":198,"summary_zh":199,"released_at":200},162806,"0.18.0","##### New Features\r\n\r\n- The `bias_variance_decomp` function now supports optional `fit_params` for the estimators that are fit on bootstrap samples. ([#748](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F748))\r\n- The `bias_variance_decomp` function now supports Keras estimators. ([#725](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F725) via [@hanzigs](https:\u002F\u002Fgithub.com\u002Fhanzigs))\r\n- Adds new `mlxtend.classifier.OneRClassifier` (One Rule Classfier) class, a simple rule-based classifier that is often used as a performance baseline or simple interpretable model. ([#726](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F726)\r\n- Adds new `create_counterfactual` method for creating counterfactuals to explain model predictions.  ([#740](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F740))\r\n\r\n\r\n##### Changes\r\n\r\n- `permutation_test` (`mlxtend.evaluate.permutation`) ìs corrected to give the proportion of permutations whose statistic is *at least as extreme* as the one observed. ([#721](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F721) via [Florian Charlier](https:\u002F\u002Fgithub.com\u002FDarthTrevis))\r\n- Fixes the McNemar confusion matrix layout to match the convention (and documentation), swapping the upper left and lower right cells. ([#744](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F744) via [mmarius](https:\u002F\u002Fgithub.com\u002Fmmarius))\r\n\r\n##### Bug Fixes\r\n\r\n- The loss in `LogisticRegression` for logging purposes didn't include the L2 penalty for the first weight in the weight vector (this is not the bias unit). However, since this loss function was only used for logging purposes, and the gradient remains correct, this does not have an effect on the main code. ([#741](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F741))\r\n- Fixes a bug in `bias_variance_decomp` where when the `mse` loss was used, downcasting to integers caused imprecise results for small numbers. ([#749](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F749))\r\n","2020-11-26T04:12:23",{"id":202,"version":203,"summary_zh":204,"released_at":205},162807,"0.17.3","##### New Features\r\n\r\n- Add `predict_proba` kwarg to bootstrap methods, to allow bootstrapping of scoring functions that take in probability values. ([#700](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F700) via [Adam Li](https:\u002F\u002Fgithub.com\u002Fadam2392))\r\n- Add a `cell_values` parameter to `mlxtend.plotting.heatmap()` to optionally suppress cell annotations by setting `cell_values=False`. ([#703](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F700)\r\n\r\n##### Changes\r\n\r\n- Implemented both `use_clones` and `fit_base_estimators` (previously `refit` in `EnsembleVoteClassifier`) for `EnsembleVoteClassifier` and `StackingClassifier`. ([#670](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F670) via [Katrina Ni](https:\u002F\u002Fgithub.com\u002Fnilichen))\r\n- Switched to using raw strings for regex in `mlxtend.text` to prevent deprecation warning in Python 3.8 ([#688](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F688))\r\n- Slice data in sequential forward selection before sending to parallel backend, reducing memory consumption.\r\n\r\n##### Bug Fixes\r\n\r\n- Fixes axis DeprecationWarning in matplotlib v3.1.0 and newer. ([#673](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F673))\r\n- Fixes an issue with using `meshgrid` in `no_information_rate` function used by the `bootstrap_point632_score` function for the .632+ estimate. ([#688](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F688))\r\n- Fixes an issue in `fpmax` that could lead to incorrect support values. ([#692](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F692) via [Steve Harenberg](https:\u002F\u002Fgithub.com\u002Fharenbergsd))\r\n","2020-07-28T02:35:32",{"id":207,"version":208,"summary_zh":209,"released_at":210},162808,"v0.17.2","\r\n##### New Features\r\n\r\n- -\r\n\r\n##### Changes\r\n\r\n- The previously deprecated `OnehotTransactions` has been removed in favor of the `TransactionEncoder.`\r\n- Removed `SparseDataFrame` support in frequent pattern mining functions in favor of pandas >=1.0's new way for working sparse data. If you used `SparseDataFrame` formats, please see pandas' migration guide at https:\u002F\u002Fpandas.pydata.org\u002Fpandas-docs\u002Fstable\u002Fuser_guide\u002Fsparse.html#migrating ([#667](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F667))\r\n\r\n\r\n##### Bug Fixes\r\n\r\n- -\r\n","2020-02-24T21:48:32",{"id":212,"version":213,"summary_zh":214,"released_at":215},162809,"v0.17.1","\r\n##### New Features\r\n\r\n- The `SequentialFeatureSelector` now supports using pre-specified feature sets via the `fixed_features` parameter. ([#578](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F578))\r\n- Adds a new `accuracy_score` function to `mlxtend.evaluate` for computing basic classifcation accuracy, per-class accuracy, and average per-class accuracy. ([#624](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F624) via [Deepan Das](https:\u002F\u002Fgithub.com\u002Fdeepandas11))\r\n- `StackingClassifier` and `StackingCVClassifier`now have a `decision_function` method, which serves as a preferred choice over `predict_proba` in calculating roc_auc and average_precision scores when the meta estimator is a linear model or support vector classifier. ([#634](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F634) via [Qiang Gu](https:\u002F\u002Fgithub.com\u002Fqiagu))\r\n\r\n##### Changes\r\n\r\n- Improve the runtime performance for the `apriori` frequent itemset generating function when `low_memory=True`. Setting `low_memory=False` (default) is still faster for small itemsets, but `low_memory=True` can be much faster for large itemsets and requires less memory.  Also, input validation for  `apriori`, ̀ fpgrowth` and `fpmax` takes a significant amount of time when input pandas DataFrame is large; this is now dramatically reduced when input contains boolean values (and not zeros\u002Fones), which is the case when using `TransactionEncoder`. ([#619](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F619) via [Denis Barbier](https:\u002F\u002Fgithub.com\u002Fdbarbier))\r\n- Add support for newer sparse pandas DataFrame for frequent itemset algorithms. Also, input validation for  `apriori`, ̀ fpgrowth` and `fpmax` runs much faster on sparse DataFrame when input pandas DataFrame contains integer values. ([#621](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F621) via [Denis Barbier](https:\u002F\u002Fgithub.com\u002Fdbarbier))\r\n- Let `fpgrowth` and `fpmax` directly work on sparse DataFrame, they were previously converted into dense Numpy arrays. ([#622](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F622) via [Denis Barbier](https:\u002F\u002Fgithub.com\u002Fdbarbier))\r\n\r\n##### Bug Fixes\r\n- Fixes a bug in `mlxtend.plotting.plot_pca_correlation_graph` that caused the explaind variances not summing up to 1. Also, improves the runtime performance of the correlation computation and adds a missing function argument for the explained variances (eigenvalues) if users provide their own principal components. ([#593](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F593) via [Gabriel Azevedo Ferreira](https:\u002F\u002Fgithub.com\u002FGabriel-Azevedo-Ferreira))\r\n- Behavior of `fpgrowth` and `apriori` consistent for edgecases such as `min_support=0`. ([#573](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F573) via [Steve Harenberg](https:\u002F\u002Fgithub.com\u002Fharenbergsd))\r\n- `fpmax` returns an empty data frame now instead of raising an error if the frequent itemset set is empty. ([#573](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F573) via [Steve Harenberg](https:\u002F\u002Fgithub.com\u002Fharenbergsd))\r\n- Fixes and issue in `mlxtend.plotting.plot_confusion_matrix`, where the font-color choice for medium-dark cells was not ideal and hard to read. [#588](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F588) via [sohrabtowfighi](https:\u002F\u002Fgithub.com\u002Fsohrabtowfighi))\r\n- The `svd` mode of `mlxtend.feature_extraction.PrincipalComponentAnalysis` now also *n-1* degrees of freedom instead of *n* d.o.f. when computing the eigenvalues to match the behavior of `eigen`. [#595](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F595)\r\n- Disable input validation for `StackingCVClassifier` because it causes issues if pipelines are used as input. [#606](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F606)\r\n","2020-01-29T03:33:40",{"id":217,"version":218,"summary_zh":219,"released_at":220},162810,"v0.17.0","\r\n##### New Features\r\n\r\n- Added an enhancement to the existing `iris_data()` such that both the UCI Repository version of the Iris dataset as well as the corrected, original\r\n  version of the dataset can be loaded, which has a slight difference in two data points (consistent with Fisher's paper; this is also the same as in R). (via [#539](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F532) via [janismdhanbad](https:\u002F\u002Fgithub.com\u002Fjanismdhanbad))\r\n- Added optional `groups` parameter to `SequentialFeatureSelector` and `ExhaustiveFeatureSelector` `fit()` methods for forwarding to sklearn CV ([#537](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F537) via [arc12](https:\u002F\u002Fgithub.com\u002Fqiaguhttps:\u002F\u002Fgithub.com\u002Farc12))\r\n- Added a new `plot_pca_correlation_graph` function to the `mlxtend.plotting` submodule for plotting a PCA correlation graph. ([#544](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F544) via [Gabriel-Azevedo-Ferreira](https:\u002F\u002Fgithub.com\u002Fqiaguhttps:\u002F\u002Fgithub.com\u002FGabriel-Azevedo-Ferreira))\r\n- Added a `zoom_factor` parameter to the `mlxten.plotting.plot_decision_region` function that allows users to zoom in and out of the decision region plots. ([#545](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F545))\r\n- Added a function `fpgrowth` that implements the FP-Growth algorithm for mining frequent itemsets as a drop-in replacement for the existing `apriori` algorithm. ([#550](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F550) via [Steve Harenberg](https:\u002F\u002Fgithub.com\u002Fharenbergsd))\r\n- New `heatmap` function in `mlxtend.plotting`.  ([#552](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F552))\r\n- Added a function `fpmax` that implements the FP-Max algorithm for mining maximal itemsets as a drop-in replacement for the `fpgrowth` algorithm. ([#553](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F553) via [Steve Harenberg](https:\u002F\u002Fgithub.com\u002Fharenbergsd))\r\n- New `figsize` parameter for the `plot_decision_regions` function in `mlxtend.plotting`. ([#555](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F555) via [Mirza Hasanbasic](https:\u002F\u002Fgithub.com\u002Fkazyka))\r\n- New `low_memory` option for the `apriori` frequent itemset generating function. Setting `low_memory=False` (default) uses a substantially optimized version of the algorithm that is 3-6x faster than the original implementation (`low_memory=True`). ([#567](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F567) via [jmayse](https:\u002F\u002Fgithub.com\u002Fjmayse))\r\n\r\n##### Changes\r\n\r\n- Now uses the latest joblib library under the hood for multiprocessing instead of `sklearn.externals.joblib`. ([#547](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F547))\r\n- Changes to `StackingCVClassifier` and `StackingCVRegressor` such that first-level models are allowed to generate output of non-numeric type. ([#562](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F562))\r\n\r\n\r\n##### Bug Fixes\r\n\r\n- Fixed documentation of `iris_data()` under `iris.py` by adding a note about differences in the iris data in R and UCI machine learning repo.\r\n- Make sure that if the `'svd'` mode is used in PCA, the number of eigenvalues is the same as when using `'eigen'` (append 0's zeros in that case) ([#565](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F565))","2019-07-19T18:16:51",{"id":222,"version":223,"summary_zh":224,"released_at":225},162811,"v0.16.0","##### New Features\r\n\r\n- `StackingCVClassifier` and `StackingCVRegressor` now support `random_state` parameter, which, together with `shuffle`, controls the randomness in the cv splitting. ([#523](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F523) via [Qiang Gu](https:\u002F\u002Fgithub.com\u002Fqiaguhttps:\u002F\u002Fgithub.com\u002Fqiagu))\r\n- `StackingCVClassifier` and `StackingCVRegressor` now have a new `drop_last_proba` parameter. It drops the last \"probability\" column in the feature set since if `True`,\r\n        because it is redundant: p(y_c) = 1 - p(y_1) + p(y_2) + ... + p(y_{c-1}). This can be useful for meta-classifiers that are sensitive to perfectly collinear features. ([#532](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F532))\r\n- Other stacking estimators, including `StackingClassifier`, `StackingCVClassifier` and `StackingRegressor`, support grid search over the `regressors` and even a single base regressor. ([#522](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F522) via [Qiang Gu](https:\u002F\u002Fgithub.com\u002Fqiaguhttps:\u002F\u002Fgithub.com\u002Fqiagu))\r\n- Adds multiprocessing support to `StackingCVClassifier`. ([#522](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F522) via [Qiang Gu](https:\u002F\u002Fgithub.com\u002Fqiaguhttps:\u002F\u002Fgithub.com\u002Fqiagu))\r\n- Adds multiprocessing support to `StackingCVRegressor`. ([#512](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F512) via [Qiang Gu](https:\u002F\u002Fgithub.com\u002Fqiaguhttps:\u002F\u002Fgithub.com\u002Fqiagu))\r\n-  Now, the `StackingCVRegressor` also enables grid search over the `regressors` and even a single base regressor. When there are level-mixed parameters, `GridSearchCV` will try to replace hyperparameters in a top-down order (see the [documentation](http:\u002F\u002Frasbt.github.io\u002Fmlxtend\u002Fuser_guide\u002Fregressor\u002FStackingCVRegressor\u002F) for examples details). ([#515](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F512) via [Qiang Gu](https:\u002F\u002Fgithub.com\u002Fqiaguhttps:\u002F\u002Fgithub.com\u002Fqiagu))\r\n- Adds a `verbose` parameter to `apriori` to show the current iteration number as well as the itemset size currently being sampled. ([#519](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F519)\r\n- Adds an optional `class_name` parameter to the confusion matrix function to display class names on the axis as tick marks. ([#487](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F487) via [sandpiturtle](https:\u002F\u002Fgithub.com\u002Fqiaguhttps:\u002F\u002Fgithub.com\u002Fsandpiturtle))\r\n\r\n##### Changes\r\n\r\n- Due to new features, restructuring, and better scikit-learn support (for `GridSearchCV`, etc.) the `StackingCVRegressor`'s meta regressor is now being accessed via `'meta_regressor__*` in the parameter grid. E.g., if a `RandomForestRegressor` as meta- egressor was previously tuned via `'randomforestregressor__n_estimators'`, this has now changed to `'meta_regressor__n_estimators'`. ([#515](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F512) via [Qiang Gu](https:\u002F\u002Fgithub.com\u002Fqiaguhttps:\u002F\u002Fgithub.com\u002Fqiagu))\r\n- The same change mentioned above is now applied to other stacking estimators, including `StackingClassifier`, `StackingCVClassifier` and `StackingRegressor`. ([#522](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F522) via [Qiang Gu](https:\u002F\u002Fgithub.com\u002Fqiaguhttps:\u002F\u002Fgithub.com\u002Fqiagu))\r\n\r\n##### Bug Fixes\r\n\r\n- The `feature_selection.ColumnSelector` now also supports column names of type `int` (in addition to `str` names) if the input is a pandas DataFrame.  ([#500](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F500) via [tetrar124](https:\u002F\u002Fgithub.com\u002Ftetrar124)\r\n- Fix unreadable labels in `plot_confusion_matrix` for imbalanced datasets if `show_absolute=True` and `show_normed=True`. ([#504](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F504))\r\n- Raises a more informative error if a `SparseDataFrame` is passed to `apriori` and the dataframe has integer column names that don't start with `0` due to current limitations of the `SparseDataFrame` implementation in pandas. ([#503](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F503))\r\n- SequentialFeatureSelector now supports DataFrame as input for all operating modes (forward\u002Fbackward\u002Ffloating). [#506](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F506)\r\n- `mlxtend.evaluate.feature_importance_permutation` now correctly accepts scoring functions with proper function signature as `metric` argument. [#528](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F528)\r\n","2019-05-12T06:42:15",{"id":227,"version":228,"summary_zh":229,"released_at":230},162812,"v0.15.0","##### New Features\r\n\r\n- Adds a new transformer class to `mlxtend.image`, `EyepadAlign`, that aligns face images based on the location of the eyes. ([#466](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F466) by [Vahid Mirjalili](https:\u002F\u002Fgithub.com\u002Fvmirly))\r\n- Adds a new function, `mlxtend.evaluate.bias_variance_decomp` that decomposes the loss of a regressor or classifier into bias and variance terms. ([#470](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F470))\r\n- Adds a `whitening` parameter to `PrincipalComponentAnalysis`, to optionally whiten the transformed data such that the features have unit variance. ([#475](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F475))\r\n\r\n##### Changes\r\n\r\n- Changed the default solver in `PrincipalComponentAnalysis` to `'svd'` instead of `'eigen'` to improve numerical stability. ([#474](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F474))\r\n- The `mlxtend.image.extract_face_landmarks` now returns `None` if no facial landmarks were detected instead of an array of all zeros. ([#466](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F466))\r\n\r\n\r\n##### Bug Fixes\r\n\r\n- The eigenvectors maybe have not been sorted in certain edge cases if solver was `'eigen'` in `PrincipalComponentAnalysis` and `LinearDiscriminantAnalysis`. ([#477](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F477), [#478](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F478))","2019-01-19T23:49:35",{"id":232,"version":233,"summary_zh":234,"released_at":235},162813,"v0.14.0","##### New Features\r\n\r\n- Added a `scatterplotmatrix` function to the `plotting` module. ([#437](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F437))\r\n- Added `sample_weight` option to `StackingRegressor`, `StackingClassifier`, `StackingCVRegressor`, `StackingCVClassifier`, `EnsembleVoteClassifier`. ([#438](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F438))\r\n- Added a `RandomHoldoutSplit` class to perform a random train\u002Fvalid split without rotation in `SequentialFeatureSelector`, scikit-learn `GridSearchCV` etc. ([#442](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F442))\r\n- Added a `PredefinedHoldoutSplit` class to perform a train\u002Fvalid split, based on user-specified indices, without rotation in `SequentialFeatureSelector`, scikit-learn `GridSearchCV` etc. ([#443](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F443))\r\n- Created a new `mlxtend.image` submodule for working on image processing-related tasks. ([#457](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F457))\r\n- Added a new convenience function `extract_face_landmarks` based on `dlib` to `mlxtend.image`. ([#458](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F458))\r\n- Added a `method='oob'` option to the `mlxtend.evaluate.bootstrap_point632_score` method to compute the classic out-of-bag bootstrap estimate ([#459](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F459))\r\n- Added a `method='.632+'` option to the `mlxtend.evaluate.bootstrap_point632_score` method to compute the .632+ bootstrap estimate that addresses the optimism bias of the .632 bootstrap ([#459](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F459))\r\n- Added a new `mlxtend.evaluate.ftest` function to perform an F-test for comparing the accuracies of two or more classification models. ([#460](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F460))\r\n- Added a new `mlxtend.evaluate.combined_ftest_5x2cv` function to perform an combined 5x2cv F-Test for comparing the performance of two models. ([#461](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F461))\r\n- Added a new `mlxtend.evaluate.difference_proportions` test for comparing two proportions (e.g., classifier accuracies) ([#462](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F462))\r\n\r\n\r\n##### Changes\r\n\r\n- Addressed deprecations warnings in NumPy 0.15. ([#425](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F425))\r\n- Because of complications in PR ([#459](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F459)), Python 2.7 was now dropped; since official support for Python 2.7 by the Python Software Foundation is ending in approx. 12 months anyways, this re-focussing will hopefully free up some developer time with regard to not having to worry about backward compatibility\r\n\r\n##### Bug Fixes\r\n\r\n- Fixed an issue with a missing import in `mlxtend.plotting.plot_confusion_matrix`. ([#428](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F428))","2018-11-10T04:33:03",{"id":237,"version":238,"summary_zh":239,"released_at":240},162814,"0.13.0","### Version 0.13.0 (07\u002F20\u002F2018)\r\n\r\n##### New Features\r\n\r\n- A meaningful error message is now raised when a cross-validation generator is used with `SequentialFeatureSelector`. ([#377](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F377))\r\n- The `SequentialFeatureSelector` now accepts custom feature names via the `fit` method for more interpretable feature subset reports. ([#379](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F379))\r\n- The `SequentialFeatureSelector` is now also compatible with Pandas DataFrames and uses DataFrame column-names for more interpretable feature subset reports. ([#379](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F379))\r\n- `ColumnSelector` now works with Pandas DataFrames columns. ([#378](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F378) by [Manuel Garrido](https:\u002F\u002Fgithub.com\u002Fmanugarri))\r\n- The `ExhaustiveFeatureSelector` estimator in `mlxtend.feature_selection` now is safely stoppable mid-process by control+c. ([#380](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F380))\r\n- Two new functions, `vectorspace_orthonormalization` and `vectorspace_dimensionality` were added to `mlxtend.math` to use the Gram-Schmidt process to convert a set of linearly independent vectors into a set of orthonormal basis vectors, and to compute the dimensionality of a vectorspace, respectively. ([#382](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F382))\r\n- `mlxtend.frequent_patterns.apriori` now supports pandas `SparseDataFrame`s to generate frequent itemsets. ([#404](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F404) via [Daniel Morales](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F404))\r\n- The `plot_confusion_matrix` function now has the ability to show normalized confusion matrix coefficients in addition to or instead of absolute confusion matrix coefficients with or without a colorbar. The text display method has been changed so that the full range of the colormap is used. The default size is also now set based on the number of classes.\r\n- Added support for merging the meta features with the original input features in `StackingRegressor` (via `use_features_in_secondary`) like it is already supported in the other Stacking classes. ([#418](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F418))\r\n- Added a `support_only` to the `association_rules` function, which allow constructing association rules (based on the support metric only) for cropped input DataFrames that don't contain a complete set of antecedent and consequent support values. ([#421](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F421))\r\n\r\n##### Changes\r\n\r\n- Itemsets generated with `apriori` are now `frozenset`s ([#393](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F393) by [William Laney](https:\u002F\u002Fgithub.com\u002FWLaney) and [#394](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F394))\r\n- Now raises an error if a input DataFrame to `apriori` contains non 0, 1, True, False values. [#419](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F419))\r\n\r\n##### Bug Fixes\r\n\r\n- Allow mlxtend estimators to be cloned via scikit-learn's `clone` function. ([#374](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F374))\r\n- Fixes bug to allow the correct use of `refit=False` in `StackingRegressor` and `StackingCVRegressor`  ([#384](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F384) and ([#385](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F385)) by [selay01](https:\u002F\u002Fgithub.com\u002Fselay01))\r\n- Allow `StackingClassifier` to work with sparse matrices when `use_features_in_secondary=True`  ([#408](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F408) by [Floris Hoogenbook](https:\u002F\u002Fgithub.com\u002FFlorisHoogenboom))\r\n- Allow `StackingCVRegressor` to work with sparse matrices when `use_features_in_secondary=True`  ([#416](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F416))\r\n- Allow `StackingCVClassifier` to work with sparse matrices when `use_features_in_secondary=True`  ([#417](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F417))","2018-07-21T02:06:26",{"id":242,"version":243,"summary_zh":244,"released_at":245},162815,"v0.12.0","##### Downloads\r\n\r\n- [Source code (zip)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Farchive\u002Fv0.12.0.zip)\r\n- [Source code (tar.gz)](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Farchive\u002Fv0.12.0.tar.gz)\r\n\r\n##### New Features\r\n\r\n-  A new `feature_importance_permuation` function to compute the feature importance in classifiers and regressors via the *permutation importance* method ([#358](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F358))\r\n-  The fit method of the `ExhaustiveFeatureSelector` now optionally accepts `**fit_params` for the estimator that is used for the feature selection. ([#354](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F354) by Zach Griffith)\r\n-  The fit method of the `SequentialFeatureSelector` now optionally accepts\r\n`**fit_params` for the estimator that is used for the feature selection. ([#350](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F350) by Zach Griffith)\r\n\r\n\r\n##### Changes\r\n\r\n\r\n- Replaced `plot_decision_regions` colors by a colorblind-friendly palette and adds contour lines for decision regions. ([#348](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F348))\r\n- All stacking estimators now raise `NonFittedErrors` if any method for inference is called prior to fitting the estimator. ([#353](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fissues\u002F353))\r\n- Renamed the `refit` parameter of both the `StackingClassifier` and `StackingCVClassifier` to `use_clones` to be more explicit and less misleading. ([#368](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F368))\r\n\r\n\r\n##### Bug Fixes\r\n\r\n- Various changes in the documentation and documentation tools to fix formatting issues ([#363](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F363))\r\n- Fixes a bug where the `StackingCVClassifier`'s meta features were not stored in the original order when `shuffle=True` ([#370](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F370))\r\n- Many documentation improvements, including links to the User Guides in the API docs ([#371](https:\u002F\u002Fgithub.com\u002Frasbt\u002Fmlxtend\u002Fpull\u002F371))\r\n","2018-04-21T18:13:51"]