[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-justmarkham--scikit-learn-tips":3,"tool-justmarkham--scikit-learn-tips":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 真正成长为懂上",142651,2,"2026-04-06T23:34:12",[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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107888,"2026-04-06T11:32:50",[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":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":87,"forks":88,"last_commit_at":89,"license":79,"difficulty_score":90,"env_os":91,"env_gpu":92,"env_ram":92,"env_deps":93,"category_tags":99,"github_topics":101,"view_count":32,"oss_zip_url":79,"oss_zip_packed_at":79,"status":17,"created_at":106,"updated_at":107,"faqs":108,"releases":127},4914,"justmarkham\u002Fscikit-learn-tips","scikit-learn-tips",":robot::zap: 50 scikit-learn tips","scikit-learn-tips 是一个专为提升机器学习实战能力而设计的开源学习资源库，由数据科学专家 Just Markham 精心整理。它汇集了 50 个针对 Python 主流机器学习库 scikit-learn 的实用技巧，旨在帮助用户解决从数据预处理到模型构建过程中的常见痛点与误区。\n\n许多开发者在使用 scikit-learn 时，往往对核心概念（如 fit 与 transform 的区别）、复杂流程（如使用 ColumnTransformer 对不同列应用不同处理）以及类别特征编码等细节感到困惑，导致代码效率低下或出现数据泄露风险。scikit-learn-tips 通过短小精悍的视频教程、可交互的 Jupyter Notebook 代码示例以及社交媒体上的深入讨论，将这些抽象概念转化为直观易懂的操作指南。例如，它不仅演示了如何正确处理训练集与测试集的转换逻辑，还对比了使用 scikit-learn 而非 pandas 进行预处理的专业优势。\n\n这套资源特别适合具有一定 Python 基础的数据科学家、机器学习工程师以及正在进阶的学习者。无论你是希望规范代码习惯的开发者","scikit-learn-tips 是一个专为提升机器学习实战能力而设计的开源学习资源库，由数据科学专家 Just Markham 精心整理。它汇集了 50 个针对 Python 主流机器学习库 scikit-learn 的实用技巧，旨在帮助用户解决从数据预处理到模型构建过程中的常见痛点与误区。\n\n许多开发者在使用 scikit-learn 时，往往对核心概念（如 fit 与 transform 的区别）、复杂流程（如使用 ColumnTransformer 对不同列应用不同处理）以及类别特征编码等细节感到困惑，导致代码效率低下或出现数据泄露风险。scikit-learn-tips 通过短小精悍的视频教程、可交互的 Jupyter Notebook 代码示例以及社交媒体上的深入讨论，将这些抽象概念转化为直观易懂的操作指南。例如，它不仅演示了如何正确处理训练集与测试集的转换逻辑，还对比了使用 scikit-learn 而非 pandas 进行预处理的专业优势。\n\n这套资源特别适合具有一定 Python 基础的数据科学家、机器学习工程师以及正在进阶的学习者。无论你是希望规范代码习惯的开发者，还是想要深入理解算法底层逻辑的研究人员，都能从中获得启发。其独特的“视频 + 代码 + 社区互动”三位一体学习模式，让枯燥的技术细节变得生动有趣，是掌握 scikit-learn 最佳实践的高效途径。","# 🤖⚡ scikit-learn tips\n\nNew tips are posted on [LinkedIn](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fjustmarkham\u002F), [Twitter](https:\u002F\u002Ftwitter.com\u002Fjustmarkham), and [Facebook](https:\u002F\u002Fwww.facebook.com\u002FDataScienceSchool\u002F).\n\n👉 [Sign up to receive 2 video tips by email every week!](https:\u002F\u002Fscikit-learn.tips) 👈\n\n## List of all tips\n\nClick \u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\"> to discuss the tip on **LinkedIn**, click \u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\"> to view the **Jupyter notebook** for a tip, or click \u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\"> to watch the tip video on **YouTube:**\n\n\\# | Description | Links\n--- | --- | ---\n1 | Use `ColumnTransformer` to apply different preprocessing to different columns | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6645311881470885889-F-dm\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F01_column_transformer.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=NGq8wnH5VSo&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=1\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n2 | Seven ways to select columns using `ColumnTransformer` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6645666737507352576-J3fh\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F02_select_columns.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sCt4LVD5hPc&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=2\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n3 | What is the difference between \"fit\" and \"transform\"? | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6646039996639825920-DwUd\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=g2XsZdwbCCs&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=3\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n4 | Use \"fit_transform\" on training data, but \"transform\" (only) on testing\u002Fnew data | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6646386464672272385-hGk2\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=6as06vtXNL8&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=4\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n5 | Four reasons to use scikit-learn (not pandas) for ML preprocessing | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6646739773820059648-CfMc\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=yv4adDGcFE8&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=5\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n6 | Encode categorical features using `OneHotEncoder` or `OrdinalEncoder` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6647897085251239936-w587\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F06_encode_categorical_features.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0w78CHM_ubM&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=6\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n7 | Handle unknown categories with `OneHotEncoder` by encoding them as zeros | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6648203250950553600-IpGr\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F07_handle_unknown_categories.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=bA6mYC1a_Eg&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=7\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n8 | Use `Pipeline` to chain together multiple steps | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6648570918979325952-vrWw\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F08_pipeline.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=1Y6O9nCo0-I&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=8\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n9 | Add a missing indicator to encode \"missingness\" as a feature | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6648932419095322624-hH5F\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F09_add_missing_indicator.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=DKmDJJzayZw&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=9\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n10 | Set a \"random_state\" to make your code reproducible | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6649289189365989376-8QbM\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F10_random_state.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=WAdrXVnOTIM&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=10\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n11 | Impute missing values using `KNNImputer` or `IterativeImputer` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6650374643419090944-GHyR\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F11_new_imputers.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=m_qKhnaYZlc&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=11\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n12 | What is the difference between `Pipeline` and `make_pipeline`? | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6650753557052088320-cEJB\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F12_pipeline_vs_make_pipeline.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=lkFwwquv_ss&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=12\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n13 | Examine the intermediate steps in a `Pipeline` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6651109694704279553-K-xY\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F13_examine_pipeline_steps.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=UrV8PLm2Ynk&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=13\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n14 | `HistGradientBoostingClassifier` natively supports missing values | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6651478075181711360-oyoW\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F14_handle_missing_values.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=jbc6BPQEM3o&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=14\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n15 | Three reasons not to use drop='first' with `OneHotEncoder` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6651812212270788609-lhE1\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=NYtwyvyvDEk&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=15\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n16 | Use `cross_val_score` and `GridSearchCV` on a `Pipeline` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6652964623681142786-x34T\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F16_pipeline_cross_validation.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=f_xB7kbZR_g&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=16\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n17 | Try `RandomizedSearchCV` if `GridSearchCV` is taking too long | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6653289531778887680-5YA1\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F17_randomized_search.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Q5dH5mOQ_ik&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=17\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n18 | Display `GridSearchCV` or `RandomizedSearchCV` results in a DataFrame | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-pandas-machinelearning-activity-6653654769267208192-h5qv\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F18_hyperparameter_search_results.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ct7W4Zs63VE&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=18\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n19 | Important tuning parameters for `LogisticRegression` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6654000730321534976-Um6C\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3LQbbvt5Ass&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=19\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n20 | Plot a confusion matrix | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6654398086783213568-fb8p\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F20_plot_confusion_matrix.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=QRFMgKdF-Ug&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=20\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n21 | Compare multiple ROC curves in a single plot | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6655489426082316288-yVzb\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F21_plot_roc_curve.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Vc-qn5VcJmw&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=21\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n22 | Use the correct methods for each type of `Pipeline` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6655822391479980033-KUqD\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=46ZiVrYeSTg&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=22\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n23 | Display the intercept and coefficients for a linear model | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6656171291986456576-4vSf\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F23_linear_model_coefficients.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=JmYR283vCdw&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=23\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n24 | Visualize a decision tree two different ways | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6656534743049392128-J7-r\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F24_decision_tree_visualization.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=EMcNjJ6Gj8w&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=24\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n25 | Prune a decision tree to avoid overfitting | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6656901820478210048-h2IN\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F25_decision_tree_pruning.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ioQ2Ahi-I_M&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=25\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n26 | Use stratified sampling with `train_test_split` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6658009817619185665-hICv\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F26_stratified_train_test_split.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Zcjl8xPLmPw&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=26\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n27 | Two ways to impute missing values for a categorical feature | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6658368383425347588-tiW-\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F27_impute_categorical_features.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=k3KrhjvaCq0&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=27\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n28 | Save a model or `Pipeline` using joblib | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6660528924725964800-U7I3\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F28_joblib.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=L5OVCoAemAk&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=28\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n29 | Vectorize two text columns in a `ColumnTransformer` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6661254380647440384-4maW\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F29_vectorize_two_columns.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=HyP5MvlmbRc&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=29\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n30 | Four ways to examine the steps of a `Pipeline` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6661979233897771009-sE0Q\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F30_examine_pipeline_steps.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=IhUID_sD3hE&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=30\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n31 | Shuffle your dataset when using `cross_val_score` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6663830752553250816-7Wf0\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F31_kfold_shuffle.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Ld8-_WP0G90&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=31\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n32 | Use AUC to evaluate multiclass problems | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6665599921917353984-9Xda\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F32_multiclass_auc.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=-s-KdkYmCaA&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=32\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n33 | Use `FunctionTransformer` to convert functions into transformers | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6666323912193822721-Xzg3\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F33_function_transformer.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=s1gL82BxKos&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=33\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n34 | Add feature selection to a `Pipeline` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6666768001813110784-zX-i\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F34_feature_selection.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=BMBVwV8iarc&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=34\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n35 | Don't use `.values` when passing a pandas object to scikit-learn | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6667045088918597632-jUK2\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F35_pass_pandas_object.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=f3HIw8o21Ao&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=35\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n36 | Most parameters should be passed as keyword arguments | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6670749637198123008-7Syk\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F36_keyword_arguments.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=oIcS_pvNtpo&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=36\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n37 | Create an interactive diagram of a `Pipeline` in Jupyter | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6671044463227490304-bT0u\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F37_pipeline_diagram.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_UKYxucD1Io&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=37\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n38 | Get the feature names output by a `ColumnTransformer` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6671411158060277760-Bg82\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F38_get_feature_names.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=NxLfpcfGzns&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=38\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n39 | Load a toy dataset into a DataFrame | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6671768842949283840-JkTU\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F39_toy_dataset.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=aMLLY9T3HPQ&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=39\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n40 | Estimators only print parameters that have been changed | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6672157401648631808-g85G\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F40_print_changed_only.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=9MW6Vpzbock&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=40\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n41 | Drop the first category from binary features (only) with `OneHotEncoder` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6675807352677117952-hhss\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F41_drop_if_binary.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=6EtfLjKhIec&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=41\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n42 | Passthrough some columns and drop others in a `ColumnTransformer` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6676145879545712640-BQAU\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F42_passthrough_or_drop.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=vHGRXuOtFnE&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=42\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n43 | Use `OrdinalEncoder` instead of `OneHotEncoder` with tree-based models | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6704054381291163648-pL-P\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F43_ordinal_encoding_for_trees.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=n_x40CdPZss&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=43\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n44 | Speed up `GridSearchCV` using parallel processing | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6704396461938933760-EdTH\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F44_parallel_processing.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=QqFGKVieywY&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=44\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n45 | Create feature interactions using `PolynomialFeatures` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6704770161905401856-iG8X\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F45_feature_interactions.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=unP3rCfzROk&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=45\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n46 | Ensemble multiple models using `VotingClassifer` or `VotingRegressor` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6706193770704175104-4W7e\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F46_ensembling.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2lq2k6J3GW4&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=46\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n47 | Tune the parameters of a `VotingClassifer` or `VotingRegressor` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6706562127303442433-XSiW\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F47_ensemble_tuning.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=fvY3InlnOh8&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=47\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n48 | Access part of a `Pipeline` using slicing | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6706912855742140416-cDYz\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F48_pipeline_slicing.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sMlsd2CnIf4&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=48\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n49 | Tune multiple models simultaneously with `GridSearchCV` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6707287625881022465-UUwO\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F49_tune_multiple_models.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=v2QpvCJ1ar8&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=49\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n50 | Adapt this pattern to solve many Machine Learning problems | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6707651810888421377-pTs8\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F50_simple_ml_pattern.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gd-TZut-oto&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=50\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n\nYou can interact with all of these notebooks online using **Binder:** \u003Ca href=\"https:\u002F\u002Fmybinder.org\u002Fv2\u002Fgh\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fmaster?filepath=notebooks%2F\">\u003Cimg src=\"icons\u002Fbinder.svg\" align=\"top\">\u003C\u002Fa>\n\n**Note:** Some of the tips do not include any code, and can only be viewed on LinkedIn.\n\n## Who creates these tips?\n\nHi! I'm Kevin Markham, the founder of [Data School](https:\u002F\u002Fwww.dataschool.io). I've been teaching data science in Python since 2014. I create these tips because I love using scikit-learn and I want to help others use it more effectively.\n\n## How can I get better at scikit-learn?\n\nI teach three courses:\n\n- **Course 1:** [Introduction to Machine Learning in Python with scikit-learn](https:\u002F\u002Fcourses.dataschool.io\u002Fintroduction-to-machine-learning-with-scikit-learn) (4 hours, free)\n- **Course 2:** [Building an Effective Machine Learning Workflow with scikit-learn](https:\u002F\u002Fcourses.dataschool.io\u002Fbuilding-an-effective-machine-learning-workflow-with-scikit-learn) (8 hours, paid)\n- **Course 3:** [Machine Learning with Text in Python](https:\u002F\u002Fwww.dataschool.io\u002Flearn\u002F) (14 hours, paid)\n\n👉 [Find out which course is right for you!](https:\u002F\u002Fwww.dataschool.io\u002Fml-courses\u002F) 👈\n\n## Do you have any other tips?\n\nYes! In 2019, I posted [100 pandas tricks](https:\u002F\u002Fwww.dataschool.io\u002Fpython-pandas-tips-and-tricks\u002F). I also created a video featuring my [top 25 pandas tricks](https:\u002F\u002Fwww.dataschool.io\u002Fpython-pandas-tricks\u002F).\n\n*© 2020-2021 [Data School](https:\u002F\u002Fwww.dataschool.io). All rights reserved.*\n","# 🤖⚡ scikit-learn 小贴士\n\n新小贴士会发布在 [LinkedIn](https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fjustmarkham\u002F)、[Twitter](https:\u002F\u002Ftwitter.com\u002Fjustmarkham) 和 [Facebook](https:\u002F\u002Fwww.facebook.com\u002FDataScienceSchool\u002F) 上。\n\n👉 [立即注册，每周通过电子邮件收到 2 条视频小贴士！](https:\u002F\u002Fscikit-learn.tips) 👈\n\n## 所有小贴士列表\n\n点击 \u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\"> 在 **LinkedIn** 上讨论该小贴士，点击 \u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\"> 查看某条小贴士的 **Jupyter 笔记本**，或点击 \u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\"> 在 **YouTube** 上观看该小贴士的视频：\n\n\\# | Description | Links\n--- | --- | ---\n1 | Use `ColumnTransformer` to apply different preprocessing to different columns | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6645311881470885889-F-dm\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F01_column_transformer.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=NGq8wnH5VSo&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=1\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n2 | Seven ways to select columns using `ColumnTransformer` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6645666737507352576-J3fh\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F02_select_columns.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sCt4LVD5hPc&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=2\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n3 | What is the difference between \"fit\" and \"transform\"? | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6646039996639825920-DwUd\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=g2XsZdwbCCs&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=3\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n4 | Use \"fit_transform\" on training data, but \"transform\" (only) on testing\u002Fnew data | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6646386464672272385-hGk2\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=6as06vtXNL8&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=4\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n5 | Four reasons to use scikit-learn (not pandas) for ML preprocessing | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6646739773820059648-CfMc\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=yv4adDGcFE8&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=5\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n6 | Encode categorical features using `OneHotEncoder` or `OrdinalEncoder` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6647897085251239936-w587\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F06_encode_categorical_features.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=0w78CHM_ubM&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=6\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n7 | Handle unknown categories with `OneHotEncoder` by encoding them as zeros | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6648203250950553600-IpGr\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F07_handle_unknown_categories.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=bA6mYC1a_Eg&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=7\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n8 | Use `Pipeline` to chain together multiple steps | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6648570918979325952-vrWw\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F08_pipeline.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=1Y6O9nCo0-I&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=8\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n9 | Add a missing indicator to encode \"missingness\" as a feature | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6648932419095322624-hH5F\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F09_add_missing_indicator.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=DKmDJJzayZw&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=9\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n10 | Set a \"random_state\" to make your code reproducible | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6649289189365989376-8QbM\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F10_random_state.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=WAdrXVnOTIM&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=10\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n11 | Impute missing values using `KNNImputer` or `IterativeImputer` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6650374643419090944-GHyR\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F11_new_imputers.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=m_qKhnaYZlc&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=11\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n12 | What is the difference between `Pipeline` and `make_pipeline`? | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6650753557052088320-cEJB\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F12_pipeline_vs_make_pipeline.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=lkFwwquv_ss&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=12\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n13 | Examine the intermediate steps in a `Pipeline` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6651109694704279553-K-xY\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F13_examine_pipeline_steps.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=UrV8PLm2Ynk&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=13\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n14 | `HistGradientBoostingClassifier` natively supports missing values | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6651478075181711360-oyoW\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F14_handle_missing_values.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=jbc6BPQEM3o&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=14\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n15 | Three reasons not to use drop='first' with `OneHotEncoder` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6651812212270788609-lhE1\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=NYtwyvyvDEk&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=15\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n16 | Use `cross_val_score` and `GridSearchCV` on a `Pipeline` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6652964623681142786-x34T\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F16_pipeline_cross_validation.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=f_xB7kbZR_g&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=16\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n17 | Try `RandomizedSearchCV` if `GridSearchCV` is taking too long | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6653289531778887680-5YA1\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F17_randomized_search.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Q5dH5mOQ_ik&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=17\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n18 | Display `GridSearchCV` or `RandomizedSearchCV` results in a DataFrame | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-pandas-machinelearning-activity-6653654769267208192-h5qv\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F18_hyperparameter_search_results.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ct7W4Zs63VE&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=18\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n19 | Important tuning parameters for `LogisticRegression` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6654000730321534976-Um6C\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=3LQbbvt5Ass&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=19\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n20 | Plot a confusion matrix | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6654398086783213568-fb8p\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F20_plot_confusion_matrix.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=QRFMgKdF-Ug&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=20\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n21 | Compare multiple ROC curves in a single plot | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6655489426082316288-yVzb\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F21_plot_roc_curve.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Vc-qn5VcJmw&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=21\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n22 | Use the correct methods for each type of `Pipeline` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6655822391479980033-KUqD\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=46ZiVrYeSTg&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=22\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n23 | Display the intercept and coefficients for a linear model | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6656171291986456576-4vSf\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F23_linear_model_coefficients.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=JmYR283vCdw&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=23\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n24 | Visualize a decision tree two different ways | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6656534743049392128-J7-r\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F24_decision_tree_visualization.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=EMcNjJ6Gj8w&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=24\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n25 | Prune a decision tree to avoid overfitting | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6656901820478210048-h2IN\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F25_decision_tree_pruning.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ioQ2Ahi-I_M&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=25\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n26 | Use stratified sampling with `train_test_split` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6658009817619185665-hICv\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F26_stratified_train_test_split.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Zcjl8xPLmPw&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=26\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n27 | Two ways to impute missing values for a categorical feature | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6658368383425347588-tiW-\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F27_impute_categorical_features.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=k3KrhjvaCq0&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=27\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n28 | Save a model or `Pipeline` using joblib | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6660528924725964800-U7I3\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F28_joblib.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=L5OVCoAemAk&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=28\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n29 | Vectorize two text columns in a `ColumnTransformer` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6661254380647440384-4maW\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F29_vectorize_two_columns.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=HyP5MvlmbRc&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=29\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n30 | Four ways to examine the steps of a `Pipeline` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6661979233897771009-sE0Q\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F30_examine_pipeline_steps.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=IhUID_sD3hE&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=30\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n31 | Shuffle your dataset when using `cross_val_score` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6663830752553250816-7Wf0\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F31_kfold_shuffle.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Ld8-_WP0G90&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=31\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n32 | Use AUC to evaluate multiclass problems | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6665599921917353984-9Xda\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F32_multiclass_auc.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=-s-KdkYmCaA&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=32\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n33 | Use `FunctionTransformer` to convert functions into transformers | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6666323912193822721-Xzg3\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F33_function_transformer.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=s1gL82BxKos&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=33\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n34 | Add feature selection to a `Pipeline` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6666768001813110784-zX-i\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F34_feature_selection.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=BMBVwV8iarc&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=34\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n35 | Don't use `.values` when passing a pandas object to scikit-learn | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6667045088918597632-jUK2\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F35_pass_pandas_object.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=f3HIw8o21Ao&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=35\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n36 | Most parameters should be passed as keyword arguments | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6670749637198123008-7Syk\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F36_keyword_arguments.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=oIcS_pvNtpo&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=36\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n37 | Create an interactive diagram of a `Pipeline` in Jupyter | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6671044463227490304-bT0u\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F37_pipeline_diagram.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_UKYxucD1Io&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=37\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n38 | Get the feature names output by a `ColumnTransformer` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6671411158060277760-Bg82\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F38_get_feature_names.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=NxLfpcfGzns&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=38\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n39 | Load a toy dataset into a DataFrame | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6671768842949283840-JkTU\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F39_toy_dataset.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=aMLLY9T3HPQ&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=39\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n40 | Estimators only print parameters that have been changed | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6672157401648631808-g85G\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F40_print_changed_only.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=9MW6Vpzbock&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=40\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n41 | Drop the first category from binary features (only) with `OneHotEncoder` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6675807352677117952-hhss\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F41_drop_if_binary.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=6EtfLjKhIec&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=41\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n42 | Passthrough some columns and drop others in a `ColumnTransformer` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6676145879545712640-BQAU\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F42_passthrough_or_drop.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=vHGRXuOtFnE&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=42\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n43 | Use `OrdinalEncoder` instead of `OneHotEncoder` with tree-based models | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6704054381291163648-pL-P\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F43_ordinal_encoding_for_trees.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=n_x40CdPZss&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=43\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n44 | Speed up `GridSearchCV` using parallel processing | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6704396461938933760-EdTH\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F44_parallel_processing.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=QqFGKVieywY&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=44\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n45 | Create feature interactions using `PolynomialFeatures` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6704770161905401856-iG8X\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F45_feature_interactions.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=unP3rCfzROk&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=45\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n46 | Ensemble multiple models using `VotingClassifer` or `VotingRegressor` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6706193770704175104-4W7e\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F46_ensembling.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2lq2k6J3GW4&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=46\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n47 | Tune the parameters of a `VotingClassifer` or `VotingRegressor` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6706562127303442433-XSiW\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F47_ensemble_tuning.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=fvY3InlnOh8&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=47\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n48 | Access part of a `Pipeline` using slicing | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6706912855742140416-cDYz\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F48_pipeline_slicing.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=sMlsd2CnIf4&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=48\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n49 | Tune multiple models simultaneously with `GridSearchCV` | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6707287625881022465-UUwO\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F49_tune_multiple_models.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=v2QpvCJ1ar8&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=49\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n50 | Adapt this pattern to solve many Machine Learning problems | \u003Ca href=\"https:\u002F\u002Fwww.linkedin.com\u002Fposts\u002Fjustmarkham_sklearntips-machinelearning-python-activity-6707651810888421377-pTs8\u002F\">\u003Cimg src=\"icons\u002Fin.svg\" width=\"20px\" align=\"top\" title=\"Discuss\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fnbviewer.jupyter.org\u002Fgithub\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fblob\u002Fmaster\u002Fnotebooks\u002F50_simple_ml_pattern.ipynb\">\u003Cimg src=\"icons\u002Fnb.svg\" width=\"20px\" align=\"top\" title=\"View code\">\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=gd-TZut-oto&list=PL5-da3qGB5ID7YYAqireYEew2mWVvgmj6&index=50\">\u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\" align=\"top\" title=\"Watch video\">\u003C\u002Fa>\n\n您可以使用 **Binder** 在线交互式地运行所有这些笔记本：[点击此处](https:\u002F\u002Fmybinder.org\u002Fv2\u002Fgh\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fmaster?filepath=notebooks%2F)\u003Cimg src=\"icons\u002Fbinder.svg\" align=\"top\">\n\n**注意：** 有些技巧不包含代码，只能在 LinkedIn 上查看。\n\n\n\n## 这些技巧是由谁创作的？\n\n你好！我是凯文·马卡姆，[Data School](https:\u002F\u002Fwww.dataschool.io) 的创始人。自 2014 年以来，我一直教授 Python 数据科学课程。我创建这些技巧是因为我非常喜欢使用 scikit-learn，并希望帮助更多人更高效地运用它。\n\n## 我该如何提升自己对 scikit-learn 的掌握水平？\n\n我开设了三门课程：\n\n- **课程 1：** [使用 scikit-learn 学习 Python 机器学习入门](https:\u002F\u002Fcourses.dataschool.io\u002Fintroduction-to-machine-learning-with-scikit-learn)（4 小时，免费）\n- **课程 2：** [使用 scikit-learn 构建高效的机器学习工作流](https:\u002F\u002Fcourses.dataschool.io\u002Fbuilding-an-effective-machine-learning-workflow-with-scikit-learn)（8 小时，付费）\n- **课程 3：** [Python 文本机器学习](https:\u002F\u002Fwww.dataschool.io\u002Flearn\u002F)（14 小时，付费）\n\n👉 [立即了解哪门课程最适合您！](https:\u002F\u002Fwww.dataschool.io\u002Fml-courses\u002F) 👈\n\n## 您还有其他技巧吗？\n\n有的！2019 年，我发布了 [100 个 pandas 技巧](https:\u002F\u002Fwww.dataschool.io\u002Fpython-pandas-tips-and-tricks\u002F)。此外，我还制作了一段视频，分享了我的 [pandas 前 25 大技巧](https:\u002F\u002Fwww.dataschool.io\u002Fpython-pandas-tricks\u002F)。\n\n*© 2020–2021 [Data School](https:\u002F\u002Fwww.dataschool.io)。保留所有权利。*","# scikit-learn-tips 快速上手指南\n\n`scikit-learn-tips` 是由 Data School 创始人 Just Markham 维护的开源项目，旨在通过简短的代码示例、视频和文章，分享 `scikit-learn` 机器学习库的高效使用技巧。本项目主要包含一系列 Jupyter Notebook 教程，涵盖数据预处理、管道构建、超参数调优等核心主题。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Windows、macOS 或 Linux\n*   **Python 版本**：推荐 Python 3.8 及以上版本\n*   **核心依赖**：\n    *   `scikit-learn` (机器学习库)\n    *   `pandas` (数据处理)\n    *   `jupyter` 或 `jupyterlab` (用于运行 Notebook 教程)\n    *   `matplotlib` \u002F `seaborn` (用于可视化示例)\n\n## 安装步骤\n\n### 1. 克隆项目代码\n首先，从 GitHub 克隆仓库到本地：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-tips.git\ncd scikit-learn-tips\n```\n\n### 2. 安装依赖包\n建议使用虚拟环境（如 `venv` 或 `conda`）以避免冲突。\n\n**使用 pip 安装（推荐国内用户配置清华源加速）：**\n\n```bash\n# 基础依赖安装\npip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple scikit-learn pandas jupyter matplotlib seaborn\n\n# 或者如果项目根目录有 requirements.txt (如有)\n# pip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple -r requirements.txt\n```\n\n**使用 conda 安装：**\n\n```bash\nconda create -n sktips python=3.9\nconda activate sktips\nconda install -c conda-forge scikit-learn pandas jupyterlab matplotlib seaborn\n```\n\n## 基本使用\n\n本项目不像传统库那样通过 `import` 直接调用功能，而是通过运行提供的 **Jupyter Notebook** 文件来学习具体技巧。\n\n### 1. 启动 Jupyter Lab\n在项目根目录下启动服务：\n\n```bash\njupyter lab\n```\n*(或者使用 `jupyter notebook`)*\n\n### 2. 浏览与运行教程\n浏览器会自动打开界面，进入 `notebooks` 文件夹。您可以根据需求选择对应的 `.ipynb` 文件进行学习。\n\n**示例：学习如何使用 `ColumnTransformer` (Tip #1)**\n\n1.  点击打开 `01_column_transformer.ipynb`。\n2.  按顺序执行单元格代码。以下是该技巧的核心逻辑示例（可直接在 Python 脚本中复用）：\n\n```python\nfrom sklearn.compose import ColumnTransformer\nfrom sklearn.preprocessing import StandardScaler, OneHotEncoder\nfrom sklearn.pipeline import Pipeline\nfrom sklearn.linear_model import LogisticRegression\nimport pandas as pd\n\n# 假设有一个包含数值型和分类型特征的数据集\n# X 为特征数据，y 为目标变量\n\n# 定义预处理步骤\npreprocessor = ColumnTransformer(\n    transformers=[\n        ('num', StandardScaler(), ['age', 'salary']),       # 对数值列标准化\n        ('cat', OneHotEncoder(), ['city', 'gender'])        # 对分类列独热编码\n    ])\n\n# 将预处理与模型串联成管道\nclf = Pipeline(steps=[\n    ('preprocessing', preprocessor),\n    ('model', LogisticRegression())\n])\n\n# 训练模型 (fit 会自动处理不同列的不同变换)\nclf.fit(X, y)\n\n# 预测新数据\npredictions = clf.predict(X_new)\n```\n\n### 3. 查看视频讲解\n每个 Notebook 表格行中都提供了 YouTube 视频链接（图标 \u003Cimg src=\"icons\u002Fyt.svg\" width=\"20px\">），建议结合视频观看以获得更直观的理解。由于网络原因，国内用户可能需要借助网络工具访问，或直接阅读 Notebook 中的代码注释和文字说明。\n\n---\n*提示：该项目持续更新，建议定期 `git pull` 获取最新的技巧教程。*","某电商数据分析师正在构建用户流失预测模型，面对包含数值型消费记录和分类型用户标签的混合数据集，急需高效完成特征工程。\n\n### 没有 scikit-learn-tips 时\n- 手动编写繁琐的 Pandas 代码分别处理不同列，导致预处理逻辑分散且难以维护，容易出错。\n- 混淆 `fit`、`transform` 和 `fit_transform` 的使用场景，错误地在测试集上执行 `fit`，造成严重的数据泄露。\n- 遇到训练集中未出现的新类别（未知分类）时，模型直接报错崩溃，缺乏优雅的容错机制。\n- 无法通过统一管道串联预处理与建模步骤，每次调整参数都需重复执行大量中间代码，效率极低。\n\n### 使用 scikit-learn-tips 后\n- 利用 `ColumnTransformer` 一键定义不同列的差异化处理策略，将杂乱的预处理逻辑封装为简洁、可复用的管道。\n- 清晰掌握“训练集用 `fit_transform`，测试集仅用 `transform`\"的核心原则，彻底杜绝数据泄露风险，确保评估结果真实可靠。\n- 配置 `OneHotEncoder` 的 `handle_unknown='ignore'` 参数，轻松化解未知类别导致的程序中断，提升模型鲁棒性。\n- 借鉴最佳实践将预处理与算法模型无缝集成，实现从原始数据到预测结果的全流程自动化，大幅缩短迭代周期。\n\nscikit-learn-tips 通过传授标准化的实战技巧，帮助开发者将碎片化的预处理操作转化为严谨、高效的机器学习工作流。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjustmarkham_scikit-learn-tips_e72fa3be.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",[83],{"name":84,"color":85,"percentage":86},"Jupyter Notebook","#DA5B0B",100,1741,437,"2026-04-05T12:31:00",1,"","未说明",{"notes":94,"python":92,"dependencies":95},"该项目主要是一系列关于 scikit-learn 使用技巧的 Jupyter Notebook 教程集合，并非一个需要复杂安装部署的软件工具。运行这些示例代码通常需要安装 scikit-learn、pandas 以及用于查看代码的 Jupyter Notebook 环境。具体的 Python 版本和库版本需参考各个 Notebook 文件内部的代码兼容性，README 中未明确指定最低系统资源或特定版本要求。",[96,97,98],"scikit-learn","pandas","jupyter",[16,100,14],"其他",[96,102,103,104,105],"machine-learning","python","data-science","data-school","2026-03-27T02:49:30.150509","2026-04-07T14:36:44.526174",[109,114,118,123],{"id":110,"question_zh":111,"answer_zh":112,"source_url":113},22298,"使用 set_config() 函数时提示\"unexpected keyword argument 'display'\"错误，如何解决？","这通常是因为 scikit-learn 版本过低导致的。该功能需要 scikit-learn 0.23 或更高版本。请执行以下步骤：\n1. 检查当前版本：在 Python 中运行 `import sklearn; print(sklearn.__version__)`。\n2. 如果版本低于 0.23，请使用 pip 升级：`pip install --upgrade scikit-learn`。\n注意：有时 `conda update --all` 可能不会将 scikit-learn 更新到最新版本，建议直接使用 pip 进行升级，并确保在当前的 Jupyter Notebook 内核环境中生效。","https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fissues\u002F5",{"id":115,"question_zh":116,"answer_zh":117,"source_url":113},22299,"如何确认当前 Jupyter Notebook 内核使用的 scikit-learn 版本？","在当前激活的 ipython 内核中运行以下代码即可查看版本：\n```python\nimport sklearn\nsklearn.__version__\n```\n请确保此版本与您期望的版本（例如 0.23+）一致。如果不一致，可能需要更新当前虚拟环境中的包，或者切换到已更新包的 base 环境。",{"id":119,"question_zh":120,"answer_zh":121,"source_url":122},22300,"为什么找不到某些编号（如 3, 4, 5, 15, 19）的 Tip 笔记本文件？","部分 Tip 不包含代码实现，因此没有对应的 Notebook 文件。这些内容仅发布在 LinkedIn 上。您可以访问作者的 LinkedIn 页面查看这些 Tip 并参与讨论。","https:\u002F\u002Fgithub.com\u002Fjustmarkham\u002Fscikit-learn-tips\u002Fissues\u002F1",{"id":124,"question_zh":125,"answer_zh":126,"source_url":113},22301,"在使用 conda 管理环境时，如何检查已安装的包版本？","在终端中运行 `conda list` 命令可以查看当前环境中所有已安装包及其版本。如果您发现 scikit-learn 版本不是最新的（例如需要 0.23 但显示为 0.22），建议尝试使用 `pip install --upgrade scikit-learn` 来强制升级到最新版本，因为 conda 的默认更新策略有时不会拉取最新的 PyPI 版本。",[]]