用途
本技能为使用 scikit-learn(Python 经典机器学习库,代码中导入为 sklearn)执行机器学习任务提供全面指导。适用于分类、回归、聚类、降维、预处理、模型评估,以及构建可用于生产环境的 ML 流水线。
何时使用
资料列出以下适用场景:构建分类或回归模型;执行聚类或降维;为机器学习预处理和转换数据;用交叉验证评估模型性能;用网格或随机搜索调优超参数;为生产工作流创建 ML 流水线;为某任务比较不同算法;处理结构化(表格)和文本数据;需要可解释的经典机器学习方法。
安装与版本
资料说明该技能针对 scikit-learn 1.8.0(稳定版,2025 年 12 月)测试,要求 Python 3.11–3.14(1.8+ 提供自由线程 CPython 3.14 wheel)。应安装 PyPI 上的 scikit-learn 包,而非 PyPI 上已弃用的 sklearn 包;代码中导入为 sklearn。
安装命令:
# Install scikit-learn using uv
uv pip install "scikit-learn>=1.7"
# Optional: plotting utilities and bundled script dependencies
uv pip install "scikit-learn[plots]" matplotlib seaborn
常与以下库配合使用:
uv pip install pandas numpy
检查版本:
import sklearn
print(sklearn.__version__)
主要能力
资料将核心能力分为五个领域,并在 references/core_capabilities.md 及各专题文件中详述:
- 监督学习:分类与回归估计器家族。
- 无监督学习:聚类、分解与流形学习。
- 模型评估与选择:指标、交叉验证与超参数搜索。
- 数据预处理:缩放、编码、缺失值填补与特征选择。
- 流水线与组合:Pipeline 与 ColumnTransformer。
资料强调:应始终在 Pipeline 内拟合预处理,使其在每个交叉验证折上重新拟合;在切分前进行缩放或填补会把测试信息泄漏到训练中。
使用方式
资料给出分类示例与混合数据完整流水线示例。分类示例使用 train_test_split、StandardScaler、RandomForestClassifier 与 classification_report;混合数据示例使用 Pipeline、ColumnTransformer、SimpleImputer、OneHotEncoder 与 GradientBoostingClassifier,分别对数值特征和类别特征构建预处理子流水线后组合。
技能附带两个可运行脚本:
- 分类流水线:
uv run python scripts/classification_pipeline.py,演示处理混合数据类型、交叉验证模型比较、GridSearchCV 超参数调优、多指标综合评估与特征重要性分析。 - 聚类分析:
uv run python scripts/clustering_analysis.py,演示寻找最优簇数(肘部法、轮廓分析)、比较多种聚类算法(K-Means、DBSCAN、Agglomerative、高斯混合)、无真实标签下评估聚类质量,以及用 PCA 投影可视化结果。
参考文档
技能包含多份参考文件:quick_reference.md(常用导入模式、安装说明、工作流模板、算法选择速查表、常见模式与陷阱、性能优化提示);supervised_learning.md(线性模型、支持向量机、决策树与集成方法、KNN、朴素贝叶斯、神经网络、算法选择指南);unsupervised_learning.md(各聚类算法及参数与用例、降维技术、异常与新颖性检测、高斯混合模型、方法选择指南);model_evaluation.md(交叉验证策略、超参数调优方法、分类/回归/聚类指标、学习与验证曲线、模型选择最佳实践);preprocessing.md(特征缩放与归一化、类别变量编码、缺失值填补、特征工程、自定义转换器);pipelines_and_composition.md(Pipeline 构建与使用、ColumnTransformer 处理混合数据类型、FeatureUnion 并行转换、端到端示例与最佳实践)。
最佳实践
资料列出以下要点:始终使用 Pipeline 防止数据泄漏并保证一致性;仅在训练数据上拟合,测试数据只做 transform;分类任务使用分层切分以保留类别分布;设置 random_state 保证可复现;选择合适指标(平衡数据用准确率、F1;不平衡数据用精确率、召回率、ROC AUC、平衡准确率;成本敏感场景定义自定义 scorer);需要时缩放特征(SVM、KNN、神经网络、PCA、带正则的线性/逻辑回归、K-Means 需要缩放;树模型与朴素贝叶斯不需要)。
常见问题排查
资料给出三类问题:ConvergenceWarning(模型未收敛,可增大 max_iter 或缩放特征);测试集表现差(过拟合,可用正则化、交叉验证或更简单模型);大数据集内存错误(使用面向大数据的算法,如 SGDClassifier 或 MiniBatchKMeans)。
智能体操作流程与完整性规则
资料规定操作流程:检查环境(确认 Python 环境与库版本,检查数据形状、类型与缺失值);确定输入(确认格式、标识符与参数,不确定时询问而非猜测);先小规模运行(在样本或单折上检查运行时间与内存);执行完整任务;验证结果(使用留出数据、固定随机种子与合适指标,检查泄漏,报告不确定性);报告(说明运行内容、检查内容与仍不确定之处)。
完整性规则要求:不得编造结果、参数、标识符、引用或统计量;不得报告本次会话未计算的指标;版本相关细节可能过时,应以已安装版本的官方文档为准;涉及花钱、占用共享 GPU 或云配额、触及个人或患者数据、或不可撤销的操作前应先询问。
相关技能
资料列出 scanpy(单细胞 RNA-seq 分析流水线)、aeon(时间序列机器学习任务)、weights-and-biases(用 W&B 记录与追踪机器学习实验)。
限制
资料未提供该技能自身的收费、价格或平台信息;未提供除上述版本要求外的其他系统要求;未提供性能基准或效果数据。