[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-johannfaouzi--pyts":3,"tool-johannfaouzi--pyts":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":81,"owner_twitter":82,"owner_website":83,"owner_url":83,"languages":84,"stars":89,"forks":90,"last_commit_at":91,"license":92,"difficulty_score":93,"env_os":94,"env_gpu":95,"env_ram":94,"env_deps":96,"category_tags":106,"github_topics":107,"view_count":23,"oss_zip_url":82,"oss_zip_packed_at":82,"status":16,"created_at":114,"updated_at":115,"faqs":116,"releases":146},3547,"johannfaouzi\u002Fpyts","pyts","A Python package for time series classification","pyts 是一个专为时间序列分类设计的 Python 开源库，旨在让这一复杂任务变得简单易懂。它主要解决了在处理随时间变化的数据（如传感器读数、股票走势或生物信号）时，用户难以快速应用先进算法进行准确分类的痛点。通过提供丰富的数据预处理工具、实用函数以及多种业界领先算法的实现，pyts 帮助用户高效地完成从数据变换到模型构建的全流程。\n\n这款工具特别适合数据科学家、机器学习研究人员以及需要处理时序数据的 Python 开发者使用。无论是学术探索还是工业级应用，pyts 都能提供强有力的支持。其独特的技术亮点在于深度集成了 Numba 进行代码加速优化，显著提升了计算效率，同时保持了与 Scikit-Learn 生态系统的高度兼容，使得用户可以像使用常规机器学习模型一样轻松调用时间序列算法。此外，pyts 还内置了多种时间序列变换工具，能够灵活应对不同场景下的特征提取需求。凭借清晰的文档和活跃的社区维护，pyts 已成为时间序列分析领域值得信赖的得力助手。","[![Build Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjohannfaouzi_pyts_readme_3323fe13e747.png)](https:\u002F\u002Fdev.azure.com\u002Fjohannfaouzi0034\u002Fjohannfaouzi\u002F_build\u002Flatest?definitionId=1&branchName=main)\r\n[![Documentation Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjohannfaouzi_pyts_readme_13d664e1afd7.png)](https:\u002F\u002Fpyts.readthedocs.io\u002F)\r\n[![Codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fjohannfaouzi\u002Fpyts\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fjohannfaouzi\u002Fpyts)\r\n[![PyPI - Python Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fpyts.svg)](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fpyts.svg)\r\n[![PyPI version](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpyts.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpyts)\r\n[![Conda Version](https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fvn\u002Fconda-forge\u002Fpyts.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fpyts)\r\n[![CodeQL](https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Fworkflows\u002FCodeQL\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Factions?query=workflow%3ACodeQL)\r\n[![DOI](https:\u002F\u002Fzenodo.org\u002Fbadge\u002FDOI\u002F10.5281\u002Fzenodo.1244152.svg)](https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.1244152)\r\n\r\n## pyts: a Python package for time series classification\r\n\r\npyts is a Python package for time series classification. It\r\naims to make time series classification easily accessible by providing\r\npreprocessing and utility tools, and implementations of\r\nstate-of-the-art algorithms. Most of these algorithms transform time series,\r\nthus pyts provides several tools to perform these transformations.\r\n\r\n\r\n### Installation\r\n\r\n#### Dependencies\r\n\r\npyts requires:\r\n\r\n- Python (>= 3.8)\r\n- NumPy (>= 1.22.4)\r\n- SciPy (>= 1.8.1)\r\n- Scikit-Learn (>= 1.2.0)\r\n- Joblib (>= 1.1.1)\r\n- Numba (>= 0.55.2)\r\n\r\nTo run the examples Matplotlib (>=2.0.0) is required.\r\n\r\n\r\n#### User installation\r\n\r\nIf you already have a working installation of numpy, scipy, scikit-learn,\r\njoblib and numba, you can easily install pyts using ``pip``\r\n\r\n    pip install pyts\r\n\r\nor ``conda`` via the ``conda-forge`` channel\r\n\r\n    conda install -c conda-forge pyts\r\n\r\nYou can also get the latest version of pyts by cloning the repository\r\n\r\n    git clone https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts.git\r\n    cd pyts\r\n    pip install .\r\n\r\n\r\n#### Testing\r\n\r\nAfter installation, you can launch the test suite from outside the source\r\ndirectory using pytest:\r\n\r\n    pytest pyts\r\n\r\n\r\n### Changelog\r\n\r\nSee the [changelog](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Fstable\u002Fchangelog.html)\r\nfor a history of notable changes to pyts.\r\n\r\n### Development\r\n\r\nThe development of this package is in line with the one of the scikit-learn\r\ncommunity. Therefore, you can refer to their\r\n[Development Guide](https:\u002F\u002Fscikit-learn.org\u002Fstable\u002Fdevelopers\u002F). A slight\r\ndifference is the use of Numba instead of Cython for optimization.\r\n\r\n### Documentation\r\n\r\nThe section below gives some information about the implemented algorithms in pyts.\r\nFor more information, please have a look at the\r\n[HTML documentation available via ReadTheDocs](https:\u002F\u002Fpyts.readthedocs.io\u002F).\r\n\r\n### Citation\r\n\r\nIf you use pyts in a scientific publication, we would appreciate\r\ncitations to the following [paper](http:\u002F\u002Fwww.jmlr.org\u002Fpapers\u002Fv21\u002F19-763.html):\r\n```\r\nJohann Faouzi and Hicham Janati. pyts: A python package for time series classification.\r\nJournal of Machine Learning Research, 21(46):1−6, 2020.\r\n```\r\n\r\nBibtex entry:\r\n```\r\n@article{JMLR:v21:19-763,\r\n  author  = {Johann Faouzi and Hicham Janati},\r\n  title   = {pyts: A Python Package for Time Series Classification},\r\n  journal = {Journal of Machine Learning Research},\r\n  year    = {2020},\r\n  volume  = {21},\r\n  number  = {46},\r\n  pages   = {1-6},\r\n  url     = {http:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv21\u002F19-763.html}\r\n}\r\n```\r\n\r\n### Implemented features\r\n\r\n**Note: the content described in this section corresponds to the main branch\r\n(i.e., the latest version), and not the latest released version. You may have to\r\ninstall the latest version to use some of these features.**\r\n\r\npyts consists of the following modules:\r\n\r\n- `approximation`: This module provides implementations of algorithms that\r\napproximate time series. Implemented algorithms are\r\n[Piecewise Aggregate Approximation](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.approximation.PiecewiseAggregateApproximation.html),\r\n[Symbolic Aggregate approXimation](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.approximation.SymbolicAggregateApproximation.html),\r\n[Discrete Fourier Transform](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.approximation.DiscreteFourierTransform.html),\r\n[Multiple Coefficient Binning](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.approximation.MultipleCoefficientBinning.html) and\r\n[Symbolic Fourier Approximation](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.approximation.SymbolicFourierApproximation.html).\r\n\r\n- `bag_of_words`: This module provide tools to transform time series into bags\r\nof words. Implemented algorithms are\r\n[WordExtractor](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.bag_of_words.WordExtractor.html) and\r\n[BagOfWords](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.bag_of_words.BagOfWords.html).\r\n\r\n\r\n- `classification`: This module provides implementations of algorithms that\r\ncan classify time series. Implemented algorithms are\r\n[KNeighborsClassifier](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.KNeighborsClassifier.html),\r\n[SAXVSM](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.SAXVSM.html),\r\n[BOSSVS](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.BOSSVS.html),\r\n[LearningShapelets](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.LearningShapelets.html),\r\n[TimeSeriesForest](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.TimeSeriesForest.html) and\r\n[TSBF](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.TSBF.html).\r\n\r\n- `datasets`: This module provides utilities to make or load toy datasets,\r\nas well as fetching datasets from the\r\n[UEA & UCR Time Series Classification Repository](http:\u002F\u002Fwww.timeseriesclassification.com).\r\n\r\n- `decomposition`: This module provides implementations of algorithms that\r\ndecompose a time series into several time series. The only implemented\r\nalgorithm is\r\n[Singular Spectrum Analysis](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.decomposition.SingularSpectrumAnalysis.html).\r\n\r\n- `image`: This module provides implementations of algorithms that transform\r\ntime series into images. Implemented algorithms are\r\n[Recurrence Plot](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.image.RecurrencePlot.html),\r\n[Gramian Angular Field](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.image.GramianAngularField.html) and\r\n[Markov Transition Field](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.image.MarkovTransitionField.html).\r\n\r\n- `metrics`: This module provides implementations of metrics that are specific\r\nto time series. Implemented metrics are\r\n[Dynamic Time Warping](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.metrics.dtw.html)\r\nwith several variants and the\r\n[BOSS](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.metrics.boss.html)\r\nmetric.\r\n\r\n- `multivariate`: This modules provides utilities to deal with multivariate\r\ntime series. Available tools are\r\n[MultivariateTransformer](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.multivariate.transformation.MultivariateTransformer.html) and\r\n[MultivariateClassifier](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.multivariate.classification.MultivariateClassifier.html)\r\nto transform and classify multivariate time series using tools for univariate\r\ntime series respectively, as well as\r\n[JointRecurrencePlot](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.multivariate.image.JointRecurrencePlot.html) and\r\n[WEASEL+MUSE](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.multivariate.transformation.WEASELMUSE.html).\r\n\r\n- `preprocessing`: This module provides most of the scikit-learn preprocessing\r\ntools but applied sample-wise (i.e. to each time series independently) instead\r\nof feature-wise, as well as an\r\n[imputer](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.preprocessing.InterpolationImputer.html)\r\nof missing values using interpolation. More information is available at the\r\n[pyts.preprocessing API documentation](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fapi.html#module-pyts.preprocessing).\r\n\r\n- `transformation`: This module provides implementations of algorithms that\r\ntransform a data set of time series with shape `(n_samples, n_timestamps)` into\r\na data set with shape `(n_samples, n_extracted_features)`. Implemented algorithms are\r\n[BagOfPatterns](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.transformation.BagOfPatterns.html),\r\n[BOSS](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.transformation.BOSS.html),\r\n[ShapeletTransform](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.transformation.ShapeletTransform.html),\r\n[WEASEL](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.transformation.WEASEL.html) and\r\n[ROCKET](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.transformation.ROCKET.html).\r\n\r\n- `utils`: a simple module with\r\n[utility functions](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fapi.html#module-pyts.utils).\r\n\r\n## License\r\nThe contents of this repository is under a [BSD 3-Clause License](https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Fblob\u002Fmain\u002FLICENSE.txt).\r\n","[![构建状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjohannfaouzi_pyts_readme_3323fe13e747.png)](https:\u002F\u002Fdev.azure.com\u002Fjohannfaouzi0034\u002Fjohannfaouzi\u002F_build\u002Flatest?definitionId=1&branchName=main)\r\n[![文档状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjohannfaouzi_pyts_readme_13d664e1afd7.png)](https:\u002F\u002Fpyts.readthedocs.io\u002F)\r\n[![Codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fjohannfaouzi\u002Fpyts\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fjohannfaouzi\u002Fpyts)\r\n[![PyPI - Python 版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fpyts.svg)](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fpyversions\u002Fpyts.svg)\r\n[![PyPI 版本](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpyts.svg)](https:\u002F\u002Fbadge.fury.io\u002Fpy\u002Fpyts)\r\n[![Conda 版本](https:\u002F\u002Fimg.shields.io\u002Fconda\u002Fvn\u002Fconda-forge\u002Fpyts.svg)](https:\u002F\u002Fanaconda.org\u002Fconda-forge\u002Fpyts)\r\n[![CodeQL](https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Fworkflows\u002FCodeQL\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Factions?query=workflow%3ACodeQL)\r\n[![DOI](https:\u002F\u002Fzenodo.org\u002Fbadge\u002FDOI\u002F10.5281\u002Fzenodo.1244152.svg)](https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.1244152)\r\n\r\n## pyts: 用于时间序列分类的 Python 包\r\n\r\npyts 是一个用于时间序列分类的 Python 包。它旨在通过提供预处理和实用工具，以及最先进的算法实现，使时间序列分类更加易于访问。这些算法大多会对时间序列进行转换，因此 pyts 提供了多种工具来执行这些转换。\r\n\r\n\r\n### 安装\r\n\r\n#### 依赖项\r\n\r\npyts 需要以下依赖项：\r\n\r\n- Python (>= 3.8)\r\n- NumPy (>= 1.22.4)\r\n- SciPy (>= 1.8.1)\r\n- Scikit-Learn (>= 1.2.0)\r\n- Joblib (>= 1.1.1)\r\n- Numba (>= 0.55.2)\r\n\r\n要运行示例，还需要 Matplotlib (>=2.0.0)。\r\n\r\n\r\n#### 用户安装\r\n\r\n如果您已经拥有可用的 numpy、scipy、scikit-learn、joblib 和 numba 安装，可以使用 ``pip`` 轻松安装 pyts：\r\n\r\n    pip install pyts\r\n\r\n或者通过 ``conda-forge`` 通道使用 ``conda`` 安装：\r\n\r\n    conda install -c conda-forge pyts\r\n\r\n您也可以通过克隆仓库获取 pyts 的最新版本：\r\n\r\n    git clone https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts.git\r\n    cd pyts\r\n    pip install .\r\n\r\n\r\n#### 测试\r\n\r\n安装完成后，您可以使用 pytest 从源代码目录外启动测试套件：\r\n\r\n    pytest pyts\r\n\r\n\r\n### 更改日志\r\n\r\n请参阅 [更改日志](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Fstable\u002Fchangelog.html)，了解 pyts 的重要变更历史。\r\n\r\n### 开发\r\n\r\n该包的开发遵循 scikit-learn 社区的开发流程。因此，您可以参考他们的\r\n[开发指南](https:\u002F\u002Fscikit-learn.org\u002Fstable\u002Fdevelopers\u002F)。一个细微的区别是，在优化方面使用 Numba 而不是 Cython。\r\n\r\n### 文档\r\n\r\n下文提供了有关 pyts 中实现的算法的一些信息。如需更多信息，请参阅\r\n[通过 ReadTheDocs 提供的 HTML 文档](https:\u002F\u002Fpyts.readthedocs.io\u002F)。\r\n\r\n### 引用\r\n\r\n如果您在科学出版物中使用 pyts，我们非常感谢您引用以下论文：\r\n```\r\nJohann Faouzi 和 Hicham Janati. pyts: 用于时间序列分类的 Python 包。\r\n机器学习研究期刊，21(46):1−6, 2020.\r\n```\r\n\r\nBibTeX 条目如下：\r\n```\r\n@article{JMLR:v21:19-763,\r\n  author  = {Johann Faouzi 和 Hicham Janati},\r\n  title   = {pyts: 用于时间序列分类的 Python 包},\r\n  journal = {机器学习研究期刊},\r\n  year    = {2020},\r\n  volume  = {21},\r\n  number  = {46},\r\n  pages   = {1-6},\r\n  url     = {http:\u002F\u002Fjmlr.org\u002Fpapers\u002Fv21\u002F19-763.html}\r\n}\r\n```\n\n### 已实现的功能\n\n**注意：本节描述的内容对应于主分支（即最新版本），而非最新发布的版本。您可能需要安装最新版本才能使用其中部分功能。**\n\npyts 包含以下模块：\n\n- `approximation`：该模块提供了用于近似时间序列的算法实现。已实现的算法包括：\n  [分段聚合近似](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.approximation.PiecewiseAggregateApproximation.html)、\n  [符号聚合近似](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.approximation.SymbolicAggregateApproximation.html)、\n  [离散傅里叶变换](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.approximation.DiscreteFourierTransform.html)、\n  [多系数分箱](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.approximation.MultipleCoefficientBinning.html) 和\n  [符号傅里叶近似](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.approximation.SymbolicFourierApproximation.html)。\n\n- `bag_of_words`：该模块提供了将时间序列转换为词袋的工具。已实现的算法包括：\n  [词提取器](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.bag_of_words.WordExtractor.html) 和\n  [词袋](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.bag_of_words.BagOfWords.html)。\n\n- `classification`：该模块提供了用于对时间序列进行分类的算法实现。已实现的算法包括：\n  [K近邻分类器](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.KNeighborsClassifier.html)、\n  [SAXVSM](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.SAXVSM.html)、\n  [BOSSVS](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.BOSSVS.html)、\n  [学习形状子串](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.LearningShapelets.html)、\n  [时间序列森林](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.TimeSeriesForest.html) 和\n  [TSBF](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.classification.TSBF.html)。\n\n- `datasets`：该模块提供了创建或加载玩具数据集的工具，以及从\n  [UEA & UCR 时间序列分类存储库](http:\u002F\u002Fwww.timeseriesclassification.com) 获取数据集的功能。\n\n- `decomposition`：该模块提供了将时间序列分解为多个时间序列的算法实现。目前仅实现了一个算法：\n  [奇异谱分析](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.decomposition.SingularSpectrumAnalysis.html)。\n\n- `image`：该模块提供了将时间序列转换为图像的算法实现。已实现的算法包括：\n  [递归图](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.image.RecurrencePlot.html)、\n  [角Gram矩阵图像](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.image.GramianAngularField.html) 和\n  [马尔可夫转移场](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.image.MarkovTransitionField.html)。\n\n- `metrics`：该模块提供了专用于时间序列的度量方法的实现。已实现的度量包括：\n  [动态时间规整](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.metrics.dtw.html)，并包含多种变体，以及\n  [BOSS 度量](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.metrics.boss.html)。\n\n- `multivariate`：该模块提供了处理多元时间序列的工具。可用的工具有：\n  [多元变换器](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.multivariate.transformation.MultivariateTransformer.html) 和\n  [多元分类器](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.multivariate.classification.MultivariateClassifier.html)，分别用于利用单变量时间序列的工具来转换和分类多元时间序列；此外还有：\n  [联合递归图](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.multivariate.image.JointRecurrencePlot.html) 和\n  [WEASEL+MUSE](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.multivariate.transformation.WEASELMUSE.html)。\n\n- `preprocessing`：该模块提供了大多数 scikit-learn 预处理工具，但这些工具是按样本逐个应用的（即对每个时间序列独立处理），而不是按特征处理。此外，还提供了一个使用插值法填补缺失值的\n  [插值填充器](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.preprocessing.InterpolationImputer.html)。更多信息请参阅\n  [pyts.preprocessing API 文档](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fapi.html#module-pyts.preprocessing)。\n\n- `transformation`：该模块提供了将形状为 `(n_samples, n_timestamps)` 的时间序列数据集转换为形状为 `(n_samples, n_extracted_features)` 的数据集的算法实现。已实现的算法包括：\n  [模式词袋](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.transformation.BagOfPatterns.html)、\n  [BOSS](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.transformation.BOSS.html)、\n  [形状子串变换](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.transformation.ShapeletTransform.html)、\n  [WEASEL](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.transformation.WEASEL.html) 和\n  [ROCKET](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fgenerated\u002Fpyts.transformation.ROCKET.html)。\n\n- `utils`：一个包含\n  [实用函数](https:\u002F\u002Fpyts.readthedocs.io\u002Fen\u002Flatest\u002Fapi.html#module-pyts.utils) 的简单模块。\n\n## 许可证\n本仓库的内容采用 [BSD 3-Clause 许可证](https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Fblob\u002Fmain\u002FLICENSE.txt) 许可。","# pyts 快速上手指南\n\npyts 是一个专为**时间序列分类**设计的 Python 包。它提供了丰富的预处理工具、实用函数以及多种最先进（SOTA）分类算法的实现，旨在让时间序列分析变得更加简单高效。\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux, macOS 或 Windows\n*   **Python 版本**：>= 3.8\n*   **核心依赖库**（安装 pyts 时会自动检查或安装）：\n    *   NumPy (>= 1.22.4)\n    *   SciPy (>= 1.8.1)\n    *   Scikit-Learn (>= 1.2.0)\n    *   Joblib (>= 1.1.1)\n    *   Numba (>= 0.55.2)\n*   **可选依赖**：若需运行示例代码绘制图表，需安装 Matplotlib (>= 2.0.0)。\n\n> **国内开发者提示**：由于部分依赖（如 Numba）编译较复杂，建议使用国内镜像源加速安装过程。\n\n## 2. 安装步骤\n\n您可以选择通过 `pip` 或 `conda` 进行安装。推荐优先使用国内镜像源以提升下载速度。\n\n### 方式一：使用 pip 安装（推荐）\n\n使用清华大学或阿里云镜像源安装：\n\n```bash\npip install pyts -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n或者使用阿里云镜像：\n\n```bash\npip install pyts -i https:\u002F\u002Fmirrors.aliyun.com\u002Fpypi\u002Fsimple\u002F\n```\n\n### 方式二：使用 conda 安装\n\n如果您使用 Anaconda 或 Miniconda，可以通过 `conda-forge` 频道安装（国内用户可配置 conda 国内源）：\n\n```bash\nconda install -c conda-forge pyts\n```\n\n### 方式三：从源码安装（获取最新版）\n\n如需体验最新开发版功能：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts.git\ncd pyts\npip install .\n```\n\n### 验证安装\n\n安装完成后，可通过运行测试套件验证是否成功：\n\n```bash\npytest pyts\n```\n\n## 3. 基本使用\n\npyts 的 API 设计风格与 `scikit-learn` 高度一致，主要包含数据加载、变换（特征提取）和分类三个步骤。\n\n以下是一个最简单的示例：加载数据集，使用 **ROCKET** 算法进行特征变换，并使用 **KNN** 进行分类。\n\n```python\nfrom pyts.datasets import load_gunpoint\nfrom pyts.transformation import ROCKET\nfrom pyts.classification import KNeighborsClassifier\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score\n\n# 1. 加载示例数据集 (GunPoint)\n# X 的形状为 (n_samples, n_timestamps), y 为标签\nX, y = load_gunpoint(return_X_y=True)\n\n# 划分训练集和测试集\nX_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)\n\n# 2. 特征变换：使用 ROCKET 将时间序列转换为特征向量\nrocket = ROCKET()\nX_train_transformed = rocket.fit_transform(X_train)\nX_test_transformed = rocket.transform(X_test)\n\n# 3. 分类：使用 KNN 分类器\nclf = KNeighborsClassifier(n_neighbors=1)\nclf.fit(X_train_transformed, y_train)\n\n# 4. 预测与评估\ny_pred = clf.predict(X_test_transformed)\naccuracy = accuracy_score(y_test, y_pred)\n\nprint(f\"Classification Accuracy: {accuracy:.4f}\")\n```\n\n### 核心模块简介\n\n*   **`pyts.datasets`**: 加载内置玩具数据集或从 UEA & UCR 仓库获取数据。\n*   **`pyts.transformation`**: 包含 ROCKET, WEASEL, ShapeletTransform 等特征提取算法。\n*   **`pyts.classification`**: 提供各类时间序列分类器，如 LearningShapelets, TimeSeriesForest 等。\n*   **`pyts.preprocessing`**: 针对时间序列样本级的预处理工具（如插值填补缺失值）。\n*   **`pyts.image`**: 将时间序列转换为图像（如格拉姆角场 GAF、马尔可夫转移场 MTF），便于使用 CNN 处理。","某工业预测性维护团队正在利用振动传感器数据，构建算法以自动识别旋转机械（如电机、风机）的早期故障模式。\n\n### 没有 pyts 时\n- **算法复现困难**：团队需手动从零编写 DTW（动态时间规整）或 Shapelets 等复杂时序分类算法，代码量大且极易出错。\n- **预处理繁琐**：缺乏统一的工具对原始传感器数据进行重采样、分段或标准化，导致数据清洗阶段耗时占整个项目的 60% 以上。\n- **性能瓶颈明显**：纯 Python 实现的距离计算在百万级时间序列点上运行极慢，无法在产线要求的分钟内完成模型训练与推理。\n- **集成成本高**：自研算法难以直接对接 Scikit-Learn 的管道（Pipeline），导致交叉验证和参数调优流程支离破碎。\n\n### 使用 pyts 后\n- **开箱即用**：直接调用 pyts 内置的 BOSS、WEASEL 等前沿分类器，几行代码即可复现顶会论文级别的算法效果。\n- **流程标准化**：利用其专用的预处理模块（如 PAA 近似、滑动窗口分割），快速将原始波形转化为标准特征矩阵。\n- **加速显著**：借助 Numba 底层加速，大规模时序距离计算速度提升数十倍，满足实时故障预警的时效要求。\n- **无缝生态**：pyts 分类器完全兼容 Scikit-Learn 接口，可轻松嵌入现有机器学习工作流，实现自动化网格搜索与模型评估。\n\npyts 将复杂的时序分类任务从“造轮子”转变为“搭积木”，让工程师能专注于业务逻辑而非底层算法实现。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjohannfaouzi_pyts_7f4de55a.png","johannfaouzi","Johann Faouzi","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjohannfaouzi_c308209d.png","Assistant Professor in Computer Science at ENSAI. Interested in machine learning and Python programming.","ENSAI","Rennes, France","johann.faouzi@gmail.com",null,"https:\u002F\u002Fgithub.com\u002Fjohannfaouzi",[85],{"name":86,"color":87,"percentage":88},"Python","#3572A5",100,1872,180,"2026-04-01T10:46:47","BSD-3-Clause",1,"未说明","不需要 GPU",{"notes":97,"python":98,"dependencies":99},"该工具专注于时间序列分类，使用 Numba 进行优化而非 Cython。可通过 pip 或 conda-forge 安装。若需运行示例代码，需额外安装 Matplotlib。",">=3.8",[100,101,102,103,104,105],"NumPy>=1.22.4","SciPy>=1.8.1","Scikit-Learn>=1.2.0","Joblib>=1.1.1","Numba>=0.55.2","Matplotlib>=2.0.0 (运行示例必需)",[13],[108,109,110,111,112,113],"python","classification","machine-learning","time-series-classification","time-series-analysis","time-series","2026-03-27T02:49:30.150509","2026-04-06T07:13:42.000035",[117,122,127,132,136,141],{"id":118,"question_zh":119,"answer_zh":120,"source_url":121},16252,"Shapelet Transform 是否适用于无标签的时间序列数据（如异常检测）？","不适用。学习 Shapelet（形状基元）需要标签，属于监督学习方法。如果您只有一个时间序列且没有标签，想要进行无监督的异常检测，那么学习 Shapelet 的方法并不相关。除非您的数据片段拥有对应的标签，否则无法使用此方法。","https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Fissues\u002F135",{"id":123,"question_zh":124,"answer_zh":125,"source_url":126},16253,"在使用 MTF（马尔可夫转移场）时遇到 'bins must be monotonically increasing or decreasing' 错误怎么办？","这是一个已修复的 Bug。请升级 pyts 到版本 0.7.5 或更高版本即可解决。您可以运行以下命令进行升级：\npip install --upgrade pyts\n或者指定版本安装：\npip install pyts==0.7.5","https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Fissues\u002F20",{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},16254,"pyts 库支持“宽格式”（wide format）数据吗？文档中的 (samples, timestamps) 是什么意思？","pyts 的数据输入格式中，最后一个轴始终代表时间。如果您有多个单变量时间序列，输入形状应为 (sensor, time)；如果您有一个多变量时间序列，形状应为 (1, sensor, time)。如果您只有一条多变量时间序列且没有多个样本，将无法执行监督学习，因为该库主要针对单变量时间序列分类，多变量分类的工具较少。对于每个时间步都有标签的预测任务（如二元时间序列回归），pyts 目前没有提供专用工具。","https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Fissues\u002F91",{"id":133,"question_zh":134,"answer_zh":135,"source_url":126},16255,"如何在本地修改 pyts 源代码并立即生效？","您可以通过以下步骤在本地编辑代码并实时生效：\n1. Fork 或 Clone 仓库到本地。\n2. 在项目根目录下以可编辑模式安装包：\npip install -e .\n这样您对代码的任何修改都会直接生效，无需重新安装包。这种方法适合需要自定义功能或测试修复的场景。",{"id":137,"question_zh":138,"answer_zh":139,"source_url":140},16256,"如何运行 pyts 的单元测试？","推荐使用 pytest 运行测试。首先确保安装了 pytest（可在 setup.py 中添加 tests_require = [\"pytest\"]），然后在项目根目录或指定路径运行以下命令：\npytest pyts\n这比使用 python setup.py test 更简便且推荐。","https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Fissues\u002F3",{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},16257,"运行 MTF 示例时出现 FutureWarning 关于非元组序列索引的警告，该如何处理？","该警告是由于使用了过时的索引方式（非元组序列进行多维索引）。虽然警告本身不一定会导致程序崩溃，但建议升级 pyts 到最新版本，维护者通常会在后续版本中修复此类弃用警告以确保兼容性。如果当前版本未修复，可参考 Issue #20 中的方法升级到 0.7.5 或更新版本，或自行克隆仓库修复代码中的索引写法（将 arr[seq] 改为 arr[tuple(seq)]）。","https:\u002F\u002Fgithub.com\u002Fjohannfaouzi\u002Fpyts\u002Fissues\u002F9",[147,152,157,162,167,171,175,180],{"id":148,"version":149,"summary_zh":150,"released_at":151},98557,"v0.13.0","pyts 的新版本发布了！本次发布的主要亮点如下：\n\n- 增加对 Python 3.10 和 3.11 的支持，并移除对 Python 3.7 的支持。\n\n- 更新依赖库的最低版本要求：\n  * NumPy (>= 1.22.4)\n  * SciPy (>= 1.8.1)\n  * Scikit-Learn (>= 1.2.0)\n  * Joblib (>= 1.1.1)\n  * Numba (>= 0.55.2)\n\n- 新增一个示例，展示如何使用 `pyts.transformation.BOSS` 变换结合不同度量标准进行时间序列聚类（由 Lucas Plagwitz 提供）。\n\n- 在 *奇异谱分析* 中新增自动组件分组功能，用于趋势-季节性分解，并附有相应示例（由 Lucas Plagwitz 提供）。\n\n- 在 `pyts.decomposition.SingularSpectrumAnalysis` 中新增两个参数：\n  * `chunksize`：允许将输入的所有时间序列分块进行分解计算（速度会稍慢，但内存占用更少）；\n  * `n_jobs`：允许并行运行每个分块的分解过程。\n\n- 将 `pyts.classification.LearningShapelets` 中用于计算初始 Shapelet 的 K-means 算法的初始化次数设置为 10 次，以避免与 scikit-learn 的默认值发生冲突。\n\n- 在 `pyts.classification.TimeSeriesForest` 和 `pyts.classification.TSBF` 中，将 `base_estimator_` 属性替换为 `estimator_`，以匹配 scikit-learn 的最新变更。","2023-06-18T12:34:19",{"id":153,"version":154,"summary_zh":155,"released_at":156},98558,"v0.12.0","pyts 的新版本发布了！本次发布的主要亮点如下：\n\n- 增加对 Python 3.9 的支持，并移除对 Python 3.6 的支持。\n\n- 新增 *时间序列森林* 算法，实现为 `pyts.classification.TimeSeriesForest`。\n\n- 新增 *时间序列特征包* 算法，实现为 `pyts.classification.TSBF`。\n\n- 将 `scikit-learn` 的混入类替换为 `pyts` 的混入类，以统一文档字符串的格式。\n\n- 更新示例库中“时间序列图像化”部分的示例。\n\n- 移除时间序列离散化过程中的一些限制条件（如分箱数量、方差较低的时间序列等），这些限制将影响以下类：\n\n  + `pyts.preprocessing.KBinsDiscretizer`\n  + `pyts.approximation.SymbolicAggregateApproximation`\n  + `pyts.bag_of_words.BagOfWords`\n  + `pyts.classification.SAXVSM`\n\n- 移除用于不同动态时间规整变体的专用函数（所有 `dtw_*` 函数），仅保留主函数 `pyts.metrics.dtw`。","2021-10-31T13:50:40",{"id":158,"version":159,"summary_zh":160,"released_at":161},98559,"v0.11.0","pyts 发布了新版本！本次发布的主要亮点如下：\n- 增加对 Python 3.8 的支持，并移除对 Python 3.5 的支持。\n\n- 重新实现 *BagOfWords* 算法，使其与原始论文中的描述一致。旧版的 *BagOfWords* 现已作为 `pyts.bag_of_words` 模块中的 *WordExtractor* 提供。\n\n- 使用新版 *BagOfWords* 更新 *SAXVSM* 分类器。\n\n- 在 `pyts.transformation` 模块中新增 *BagOfPatterns* 算法。\n\n- 在 `pyts.transformation` 模块中新增 *ROCKET* 算法。\n\n- 在 `pyts.classification` 模块中新增 *LearningShapelets* 算法。\n\n- 弃用动态时间规整的相关函数（所有 ``dtw_*`` 函数），仅保留主函数 `pyts.metrics.dtw`。","2020-03-21T12:41:33",{"id":163,"version":164,"summary_zh":165,"released_at":166},98560,"v0.10.0","这个新版本在源代码层面进行了两项重大更新：动态时间规整（DTW）函数 now 支持不等长时间序列，并新增了一个参数，用于处理成本矩阵已预先计算的情况；在转换模块中新增了 Shapelet 变换算法。持续集成现已迁移到 Azure Pipelines，不再使用 Travis 和 Appveyor。文档也经过全面重构，内容更加详尽。","2019-12-09T17:28:11",{"id":168,"version":169,"summary_zh":82,"released_at":170},98561,"v0.9.0","2019-09-27T08:15:03",{"id":172,"version":173,"summary_zh":82,"released_at":174},98562,"v0.7.3","2019-02-11T09:47:42",{"id":176,"version":177,"summary_zh":178,"released_at":179},98563,"v0.7.0","本次新版本带来了许多新功能。代码的层级结构进行了调整，增加了更多模块，使代码结构更加清晰。已实现算法的代码得到了优化，并且新增了更多算法。","2018-05-22T15:05:22",{"id":181,"version":182,"summary_zh":183,"released_at":184},98564,"v0.6","首次发布","2018-05-09T13:12:27"]