[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-justmarkham--scikit-learn-videos":3,"tool-justmarkham--scikit-learn-videos":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":81,"owner_website":82,"owner_url":83,"languages":84,"stars":93,"forks":94,"last_commit_at":95,"license":81,"difficulty_score":96,"env_os":97,"env_gpu":98,"env_ram":98,"env_deps":99,"category_tags":107,"github_topics":108,"view_count":23,"oss_zip_url":81,"oss_zip_packed_at":81,"status":16,"created_at":115,"updated_at":116,"faqs":117,"releases":158},2151,"justmarkham\u002Fscikit-learn-videos","scikit-learn-videos","Jupyter notebooks from the scikit-learn video series","scikit-learn-videos 是一套专为机器学习初学者打造的开源视频教程配套资源，包含 10 节总时长 4.5 小时的视频课程及对应的 Jupyter Notebook 代码实例。它旨在解决新手在学习 Python 机器学习时面临的“理论难懂、代码难上手”的痛点，通过循序渐进的方式，引导用户从理解机器学习基本概念起步，逐步掌握环境搭建、数据加载、模型训练、评估对比以及完整的数据科学流水线构建。\n\n这套资源特别适合希望系统入门机器学习的开发者、数据科学学生及相关领域的研究人员。其独特亮点在于“视听结合”的学习模式：用户既可以观看视频理解原理，又能直接运行并修改配套的 Notebook 代码进行实战演练。内容涵盖经典的鸢尾花数据集案例、K 近邻算法、线性回归等核心知识点，并展示了如何协同使用 pandas、seaborn 和 scikit-learn 库。此外，仓库代码已更新至较新的 Python 3.9 和 scikit-learn 版本，确保了学习环境的现代性与兼容性，是夯实机器学习基础的优质免费教材。","# Introduction to Machine Learning with scikit-learn\n\nThis video series will teach you how to solve Machine Learning problems using Python's popular scikit-learn library. There are **10 video tutorials** totaling 4.5 hours, each with a corresponding **Jupyter notebook**.\n\nYou can [watch the entire series](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A) on YouTube and [view all of the notebooks](http:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-videos\u002Ftree\u002Fmaster\u002F) using nbviewer.\n\nThe series is also available as a [free online course](https:\u002F\u002Fcourses.dataschool.io\u002Fintroduction-to-machine-learning-with-scikit-learn) that includes updated content, quizzes, and a certificate of completion.\n\n[![Watch the first tutorial video](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjustmarkham_scikit-learn-videos_readme_658f88f23bc2.png)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=elojMnjn4kk&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=1 \"Watch the first tutorial video\")\n\n**Note:** The notebooks in this repository have been updated to use Python 3.9.1 and scikit-learn 0.23.2. The original notebooks (shown in the video) used Python 2.7 and scikit-learn 0.16, and can be downloaded from the [archive branch](https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos\u002Ftree\u002Farchive). You can read about how I updated the code in this [blog post](https:\u002F\u002Fwww.dataschool.io\u002Fhow-to-update-your-scikit-learn-code-for-2018\u002F).\n\n## Table of Contents\n\n1. What is Machine Learning, and how does it work? ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=elojMnjn4kk&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=1), [notebook](01_machine_learning_intro.ipynb))\n    - What is Machine Learning?\n    - What are the two main categories of Machine Learning?\n    - What are some examples of Machine Learning?\n    - How does Machine Learning \"work\"?\n\n2. Setting up Python for Machine Learning: scikit-learn and Jupyter Notebook ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=IsXXlYVBt1M&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=2), [notebook](02_machine_learning_setup.ipynb))\n    - What are the benefits and drawbacks of scikit-learn?\n    - How do I install scikit-learn?\n    - How do I use the Jupyter Notebook?\n    - What are some good resources for learning Python?\n\n3. Getting started in scikit-learn with the famous iris dataset ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=hd1W4CyPX58&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=3), [notebook](03_getting_started_with_iris.ipynb))\n    - What is the famous iris dataset, and how does it relate to Machine Learning?\n    - How do we load the iris dataset into scikit-learn?\n    - How do we describe a dataset using Machine Learning terminology?\n    - What are scikit-learn's four key requirements for working with data?\n\n4. Training a Machine Learning model with scikit-learn ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=RlQuVL6-qe8&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=4), [notebook](04_model_training.ipynb))\n    - What is the K-nearest neighbors classification model?\n    - What are the four steps for model training and prediction in scikit-learn?\n    - How can I apply this pattern to other Machine Learning models?\n\n5. Comparing Machine Learning models in scikit-learn ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0pP4EwWJgIU&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=5), [notebook](05_model_evaluation.ipynb))\n    - How do I choose which model to use for my supervised learning task?\n    - How do I choose the best tuning parameters for that model?\n    - How do I estimate the likely performance of my model on out-of-sample data?\n\n6. Data science pipeline: pandas, seaborn, scikit-learn ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3ZWuPVWq7p4&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=6), [notebook](06_linear_regression.ipynb))\n    - How do I use the pandas library to read data into Python?\n    - How do I use the seaborn library to visualize data?\n    - What is linear regression, and how does it work?\n    - How do I train and interpret a linear regression model in scikit-learn?\n    - What are some evaluation metrics for regression problems?\n    - How do I choose which features to include in my model?\n\n7. Cross-validation for parameter tuning, model selection, and feature selection ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=6dbrR-WymjI&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=7), [notebook](07_cross_validation.ipynb))\n    - What is the drawback of using the train\u002Ftest split procedure for model evaluation?\n    - How does K-fold cross-validation overcome this limitation?\n    - How can cross-validation be used for selecting tuning parameters, choosing between models, and selecting features?\n    - What are some possible improvements to cross-validation?\n\n8. Efficiently searching for optimal tuning parameters ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Gol_qOgRqfA&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=8), [notebook](08_grid_search.ipynb))\n    - How can K-fold cross-validation be used to search for an optimal tuning parameter?\n    - How can this process be made more efficient?\n    - How do you search for multiple tuning parameters at once?\n    - What do you do with those tuning parameters before making real predictions?\n    - How can the computational expense of this process be reduced?\n\n9. Evaluating a classification model ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=85dtiMz9tSo&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=9), [notebook](09_classification_metrics.ipynb))\n    - What is the purpose of model evaluation, and what are some common evaluation procedures?\n    - What is the usage of classification accuracy, and what are its limitations?\n    - How does a confusion matrix describe the performance of a classifier?\n    - What metrics can be computed from a confusion matrix?\n    - How can you adjust classifier performance by changing the classification threshold?\n    - What is the purpose of an ROC curve?\n    - How does Area Under the Curve (AUC) differ from classification accuracy?\n\n10. Building a Machine Learning workflow ([video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=irHhDMbw3xo&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=10), [notebook](10_categorical_features.ipynb))\n    - Why should you use a Pipeline?\n    - How do you encode categorical features with OneHotEncoder?\n    - How do you apply OneHotEncoder to selected columns with ColumnTransformer?\n    - How do you build and cross-validate a Pipeline?\n    - How do you make predictions on new data using a Pipeline?\n    - Why should you use scikit-learn (rather than pandas) for preprocessing?\n\n## Bonus Video\n\nAt the PyCon 2016 conference, I taught a **3-hour tutorial** that builds upon this video series and focuses on **text-based data**. You can watch the [tutorial video](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ZiKMIuYidY0&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=11) on YouTube.\n\nHere are the topics I covered:\n\n1. Model building in scikit-learn (refresher)\n2. Representing text as numerical data\n3. Reading a text-based dataset into pandas\n4. Vectorizing our dataset\n5. Building and evaluating a model\n6. Comparing models\n7. Examining a model for further insight\n8. Practicing this workflow on another dataset\n9. Tuning the vectorizer (discussion)\n\nVisit this [GitHub repository](https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fpycon-2016-tutorial) to access the tutorial notebooks and many other recommended resources.\n","# 使用 scikit-learn 入门机器学习\n\n本系列视频将教你如何使用 Python 中流行的 scikit-learn 库来解决机器学习问题。共有 **10 个视频教程**，总时长 4.5 小时，每个视频都配有相应的 **Jupyter 笔记本**。\n\n你可以在 YouTube 上 [观看整个系列](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A)，并使用 nbviewer 在线 [查看所有笔记本](http:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-videos\u002Ftree\u002Fmaster\u002F)。\n\n该系列还以 [免费在线课程](https:\u002F\u002Fcourses.dataschool.io\u002Fintroduction-to-machine-learning-with-scikit-learn) 的形式提供，包含更新的内容、测验以及结业证书。\n\n[![观看第一个教程视频](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjustmarkham_scikit-learn-videos_readme_658f88f23bc2.png)](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=elojMnjn4kk&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=1 \"观看第一个教程视频\")\n\n**注意：** 此仓库中的笔记本已更新为使用 Python 3.9.1 和 scikit-learn 0.23.2。原始笔记本（视频中展示的）使用的是 Python 2.7 和 scikit-learn 0.16，可以从 [archive 分支](https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos\u002Ftree\u002Farchive)下载。你可以阅读这篇 [博客文章](https:\u002F\u002Fwww.dataschool.io\u002Fhow-to-update-your-scikit-learn-code-for-2018\u002F)了解我是如何更新代码的。\n\n## 目录\n\n1. 什么是机器学习？它是如何工作的？([视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=elojMnjn4kk&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=1), [笔记本](01_machine_learning_intro.ipynb))\n    - 什么是机器学习？\n    - 机器学习的两大主要类别是什么？\n    - 机器学习有哪些例子？\n    - 机器学习是如何“工作”的？\n\n2. 为机器学习搭建 Python 环境：scikit-learn 和 Jupyter Notebook ([视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=IsXXlYVBt1M&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=2), [笔记本](02_machine_learning_setup.ipynb))\n    - scikit-learn 有哪些优点和缺点？\n    - 如何安装 scikit-learn？\n    - 如何使用 Jupyter Notebook？\n    - 有哪些好的 Python 学习资源？\n\n3. 使用著名的 iris 数据集入门 scikit-learn ([视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=hd1W4CyPX58&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=3), [笔记本](03_getting_started_with_iris.ipynb))\n    - 什么是著名的 iris 数据集？它与机器学习有什么关系？\n    - 我们如何将 iris 数据集加载到 scikit-learn 中？\n    - 如何用机器学习术语描述一个数据集？\n    - scikit-learn 对数据处理有哪四个关键要求？\n\n4. 使用 scikit-learn 训练机器学习模型 ([视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=RlQuVL6-qe8&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=4), [笔记本](04_model_training.ipynb))\n    - 什么是 K 近邻分类模型？\n    - scikit-learn 中模型训练和预测的四个步骤是什么？\n    - 我如何将这一模式应用到其他机器学习模型上？\n\n5. 在 scikit-learn 中比较机器学习模型 ([视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0pP4EwWJgIU&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=5), [笔记本](05_model_evaluation.ipynb))\n    - 如何选择适合我的监督学习任务的模型？\n    - 如何为该模型选择最佳的超参数？\n    - 如何估计我的模型在未见数据上的表现？\n\n6. 数据科学流水线：pandas、seaborn、scikit-learn ([视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3ZWuPVWq7p4&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=6), [笔记本](06_linear_regression.ipynb))\n    - 如何使用 pandas 库将数据读入 Python？\n    - 如何使用 seaborn 库可视化数据？\n    - 什么是线性回归？它是如何工作的？\n    - 如何在 scikit-learn 中训练和解释线性回归模型？\n    - 回归问题有哪些评估指标？\n    - 如何选择要包含在模型中的特征？\n\n7. 用于调参、模型选择和特征选择的交叉验证 ([视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=6dbrR-WymjI&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=7), [笔记本](07_cross_validation.ipynb))\n    - 使用训练\u002F测试集划分进行模型评估有什么缺点？\n    - K 折交叉验证如何克服这一局限？\n    - 交叉验证可以用来进行超参数搜索、模型选择和特征选择吗？\n    - 交叉验证还有哪些可能的改进方法？\n\n8. 高效地搜索最优超参数 ([视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Gol_qOgRqfA&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=8), [笔记本](08_grid_search.ipynb))\n    - 如何利用 K 折交叉验证来搜索最优超参数？\n    - 如何使这一过程更加高效？\n    - 如何同时搜索多个超参数？\n    - 在进行实际预测之前，应该如何处理这些超参数？\n    - 如何降低这一过程的计算开销？\n\n9. 评估分类模型 ([视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=85dtiMz9tSo&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=9), [笔记本](09_classification_metrics.ipynb))\n    - 模型评估的目的是什么？常见的评估方法有哪些？\n    - 分类准确率的用途是什么？它有哪些局限性？\n    - 混淆矩阵如何描述分类器的性能？\n    - 可以从混淆矩阵中计算哪些指标？\n    - 如何通过调整分类阈值来改善分类器性能？\n    - ROC 曲线的用途是什么？\n    - 曲线下的面积（AUC）与分类准确率有何不同？\n\n10. 构建机器学习工作流 ([视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=irHhDMbw3xo&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=10), [笔记本](10_categorical_features.ipynb))\n    - 为什么应该使用 Pipeline？\n    - 如何使用 OneHotEncoder 对分类特征进行编码？\n    - 如何使用 ColumnTransformer 将 OneHotEncoder 应用于选定的列？\n    - 如何构建并交叉验证一个 Pipeline？\n    - 如何使用 Pipeline 对新数据进行预测？\n    - 为什么在预处理阶段应该使用 scikit-learn 而不是 pandas？\n\n## 附加视频\n\n在 2016 年的 PyCon 大会上，我主讲了一门 **3 小时的教程**，它以本系列视频为基础，重点讲解基于文本的数据处理。你可以在 YouTube 上观看该教程视频：[教程视频](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ZiKMIuYidY0&list=PL5-da3qGB5ICeMbQuqbbCOQWcS6OYBr5A&index=11)。\n\n以下是我在课程中涵盖的主题：\n\n1. 在 scikit-learn 中构建模型（复习）\n2. 将文本表示为数值数据\n3. 将基于文本的数据集读入 pandas\n4. 对数据集进行向量化\n5. 构建并评估模型\n6. 比较不同模型\n7. 深入分析模型以获取更多见解\n8. 在另一个数据集上实践这一工作流程\n9. 调优向量化器（讨论）\n\n请访问这个 [GitHub 仓库](https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fpycon-2016-tutorial)，以获取教程笔记本及许多其他推荐资源。","# scikit-learn-videos 快速上手指南\n\n本指南基于 **scikit-learn-videos** 开源项目，旨在帮助开发者通过 10 个视频教程和对应的 Jupyter Notebook，快速掌握使用 Python 的 scikit-learn 库解决机器学习问题。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Windows、macOS 或 Linux 均可。\n*   **Python 版本**：推荐安装 **Python 3.9.1** 或更高版本（原视频基于 Python 2.7，但仓库代码已更新至 Python 3）。\n*   **核心依赖库**：\n    *   `scikit-learn` (版本 0.23.2 或更高)\n    *   `pandas` (用于数据处理)\n    *   `matplotlib` & `seaborn` (用于数据可视化)\n    *   `jupyter` (用于运行交互式笔记本)\n*   **网络环境**：需要访问 YouTube 观看视频教程，或访问 GitHub 下载源码。国内用户建议使用镜像源加速包安装。\n\n## 安装步骤\n\n### 1. 安装 Python 环境\n如果您尚未安装 Python，建议下载并安装 [Anaconda](https:\u002F\u002Fwww.anaconda.com\u002F) 发行版，它预装了上述大部分科学计算库。若使用原生 Python，请确保已安装 `pip`。\n\n### 2. 安装依赖包\n打开终端（Terminal）或命令提示符（CMD），执行以下命令安装所需库。**国内用户推荐使用清华或阿里镜像源以加速下载**：\n\n```bash\npip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple scikit-learn pandas matplotlib seaborn jupyter notebook\n```\n\n### 3. 获取教程代码\n克隆项目仓库到本地，以便运行配套的 Jupyter Notebook：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos.git\ncd scikit-learn-videos\n```\n\n### 4. 启动 Jupyter Notebook\n进入目录后，启动 Notebook 服务：\n\n```bash\njupyter notebook\n```\n浏览器将自动打开，您可以点击对应的 `.ipynb` 文件（如 `01_machine_learning_intro.ipynb`）开始学习。\n\n## 基本使用\n\n本项目的核心是通过代码复现视频中的机器学习流程。以下是一个基于教程第 3 和第 4 部分的**最小化使用示例**，演示如何加载经典的鸢尾花（Iris）数据集并训练一个 K-近邻（KNN）分类模型。\n\n请在 Jupyter Notebook 中新建一个单元格，运行以下代码：\n\n```python\n# 1. 导入必要的库\nfrom sklearn.datasets import load_iris\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score\n\n# 2. 加载数据集\niris = load_iris()\nX = iris.data       # 特征数据\ny = iris.target     # 标签数据\n\n# 3. 划分训练集和测试集 (测试集占 20%)\nX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n\n# 4. 初始化模型 (使用 K=1 的 KNN 分类器)\nknn = KNeighborsClassifier(n_neighbors=1)\n\n# 5. 训练模型\nknn.fit(X_train, y_train)\n\n# 6. 进行预测\ny_pred = knn.predict(X_test)\n\n# 7. 评估模型准确率\naccuracy = accuracy_score(y_test, y_pred)\nprint(f\"Model Accuracy: {accuracy:.2f}\")\n\n# 8. 对新数据进行预测示例\n# 假设有一朵新花：花萼长 5.0, 宽 2.9, 花瓣长 1.0, 宽 0.2\nnew_sample = [[5.0, 2.9, 1.0, 0.2]]\nprediction = knn.predict(new_sample)\nprint(f\"Predicted class: {iris.target_names[prediction][0]}\")\n```\n\n**后续学习建议：**\n按照仓库中的 `Table of Contents` 顺序，依次打开 `01_` 到 `10_` 开头的 Notebook 文件，结合对应的 YouTube 视频教程（需网络条件）或免费在线课程进行深入系统学习。","某电商公司的数据分析师小李需要快速构建一个用户流失预测模型，但他对机器学习算法的具体实现流程和参数调优缺乏系统经验。\n\n### 没有 scikit-learn-videos 时\n- 面对散乱的官方文档，难以理解从数据加载到模型训练的标准四步流程，代码编写频频报错。\n- 不清楚如何科学地对比不同算法（如 KNN 与逻辑回归）的效果，只能凭感觉盲目尝试。\n- 缺乏对超参数调优和交叉验证的直观认识，导致模型在测试集上表现不佳，泛化能力弱。\n- 不知道如何结合 pandas 和 seaborn 进行高效的数据探索与可视化，数据分析链路断裂。\n- 自学成本极高，花费数天时间摸索基础概念，严重拖慢了项目交付进度。\n\n### 使用 scikit-learn-videos 后\n- 跟随第 4 节教程，迅速掌握了 scikit-learn 统一的“拟合 - 预测”接口规范，代码一次性运行成功。\n- 利用第 5 节关于模型评估的视频，学会了使用交叉验证和网格搜索，科学选出了最优模型及参数。\n- 通过第 6 节实战案例，顺畅打通了\"pandas 清洗 - seaborn 可视化 - scikit-learn 建模”的完整数据流水线。\n- 借助配套的 Jupyter Notebook 直接复用经过验证的代码模板，将原本需要数天的调研工作压缩至几小时。\n- 视频中关于过拟合与欠拟合的生动讲解，帮助小李快速避坑，显著提升了模型的预测准确率。\n\nscikit-learn-videos 通过“视频讲解 + 可执行代码”的双重引导，将抽象的机器学习理论转化为可落地的工程实践，极大降低了入门门槛并提升了开发效率。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjustmarkham_scikit-learn-videos_658f88f2.png","justmarkham","Kevin Markham","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjustmarkham_104a3a00.png","Founder of Data School","Data School","Asheville, NC, USA",null,"https:\u002F\u002Fcourses.dataschool.io","https:\u002F\u002Fgithub.com\u002Fjustmarkham",[85,89],{"name":86,"color":87,"percentage":88},"Jupyter Notebook","#DA5B0B",99.6,{"name":90,"color":91,"percentage":92},"CSS","#663399",0.4,3783,2534,"2026-04-04T06:41:37",1,"","未说明",{"notes":100,"python":101,"dependencies":102},"该工具为机器学习教学视频系列的配套 Jupyter Notebook。原始视频基于 Python 2.7 和 scikit-learn 0.16，但仓库中的代码已更新为 Python 3.9.1 和 scikit-learn 0.23.2。旧版本代码可在 archive 分支找到。课程涵盖数据预处理、模型训练、评估及管道构建等基础内容，主要依赖 pandas 进行数据处理，seaborn 进行可视化。","3.9.1",[103,104,105,106],"scikit-learn==0.23.2","pandas","seaborn","jupyter",[13,54,51],[109,110,111,112,113,114],"scikit-learn","machine-learning","data-science","jupyter-notebook","tutorial","python","2026-03-27T02:49:30.150509","2026-04-06T06:53:20.530317",[118,123,128,133,138,143,148,153],{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},9914,"如何在 scikit-learn 中显示 KNN 模型的准确率或概率？","对于单个样本，可以调用 `predict_proba(X)` 获取概率分数。对于测试集的整体准确率，可以调用 `score(X, y)` 方法，它会返回平均准确率。例如：`knn.score(X_test, y_test)`。","https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos\u002Fissues\u002F17",{"id":124,"question_zh":125,"answer_zh":126,"source_url":127},9915,"为什么运行 Notebook 时出现 'unable to contact kernel' 或 'None kernel is not available' 错误？","这通常是由于 Notebook 文件与当前安装的 Jupyter 版本不兼容导致的。维护者通常会更新 Notebook 文件以解决此问题。如果遇到此错误，请尝试拉取仓库的最新版本（git pull），或者在 Jupyter 中手动选择一个可用的内核（Kernel > Change kernel）。","https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos\u002Fissues\u002F6",{"id":129,"question_zh":130,"answer_zh":131,"source_url":132},9916,"cross_val_score 输出的准确率是小数（如 0.966），乘以样本数后不是整数，这是什么意思？","`cross_val_score` 返回的是归一化的准确率（0 到 1 之间）。如果是 10 折交叉验证，每个折叠的得分是该折叠内正确预测的比例。最终输出的小数是这 10 个分数的平均值。如果你想直接获得正确预测的样本数量而不是比例，可以在使用 `accuracy_score` 时设置参数 `normalize=False`，即 `accuracy_score(y_true, y_pred, normalize=False)`。","https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos\u002Fissues\u002F5",{"id":134,"question_zh":135,"answer_zh":136,"source_url":137},9917,"如何解读 scikit-learn 混淆矩阵中的 TP、FP、TN 和 FN？","scikit-learn 默认按标签排序输出混淆矩阵（通常是负类在前，正类在后）。对于一个二分类矩阵 `[[30, 5], [2, 42]]`：\n- 左上角 (30) 是 TN (真负例)\n- 右上角 (5) 是 FP (假正例)\n- 左下角 (2) 是 FN (假负例)\n- 右下角 (42) 是 TP (真正例)\n注意不要将 FP 和 FN 的位置搞反。","https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos\u002Fissues\u002F4",{"id":139,"question_zh":140,"answer_zh":141,"source_url":142},9918,"为什么调用 Pandas 的 value_counts() 方法时报错 'numpy.ndarray object has no attribute value_counts'？","这是因为 `train_test_split` 返回的数据类型取决于输入数据的类型以及 scikit-learn 的版本。较旧版本的 scikit-learn 总是返回 NumPy 数组，而数组没有 `value_counts()` 方法（这是 Pandas Series 的方法）。解决方法是将数据转换为 Pandas Series 后再调用，例如：`pd.Series(y_test).value_counts()`，或者确保输入给 `train_test_split` 的是 Pandas 对象并使用较新版本的 scikit-learn。","https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos\u002Fissues\u002F3",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},9919,"运行代码时出现格式化字符串的类型错误（TypeError），如何解决？","当使用 `{}` 格式化字符串且传入的数据包含非字符串类型（如列表或数字）时可能会报错。解决方案是显式地将该数据转换为字符串。例如，将 `print('{:^9} {} {:^25}'.format(iteration, data[0], data[1]))` 修改为 `print('{:^9} {} {:^25}'.format(iteration, data[0], str(data[1])))`。","https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos\u002Fissues\u002F10",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},9920,"教程中的 CSV 文件加载失败或列名发生变化怎么办？","如果原始数据源的 URL 失效或文件头（headers）发生变化，建议不要直接使用外部 URL。维护者通常会将原始数据文件的副本添加到仓库的 `data` 子目录中。请修改代码指向本地文件路径，例如：`pd.read_csv('data\u002FAdvertising.csv')`。如果是列名大小写问题（如 'TV' 变为 'tv'），请相应调整代码中的列名引用。","https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos\u002Fissues\u002F13",{"id":154,"question_zh":155,"answer_zh":156,"source_url":157},9921,"读取 UCI 数据集 URL 时出错或数据格式有问题如何解决？","如果原始 UCI URL 失效或文件包含注释行导致读取错误，可以使用社区提供的备用 GitHub Gist URL，并在 `read_csv` 中添加 `comment='#'` 参数来忽略注释行。例如：`pd.read_csv(url, header=None, names=col_names, comment='#')`。最好还是使用仓库中提供的本地数据副本以避免网络问题。","https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-videos\u002Fissues\u002F15",[]]