SuperAPI AI 工具集

scikit-learn-best-practices

数据与分析

查看项目

更新于 10-15 23:46

技能介绍

用途:为使用 scikit-learn 的 Python 机器学习开发提供规范建议,覆盖数据处理、建模、评估与部署环节。

主要能力与要点: 数据准备上,强调先划分数据再做预处理,拆分为训练/验证/测试集,使用 train_test_split() 并设 random_state 保证可复现,分类不平衡时用 stratify=y,测试集在最终评估前保持独立。特征工程建议按算法选择缩放器:StandardScaler、MinMaxScaler、RobustScaler,类别变量用 OneHotEncoder、OrdinalEncoder、LabelEncoder,缺失值用 SimpleImputer、KNNImputer。

管道与列变换:始终用 Pipeline 串联预处理与建模,防止数据泄漏,便于部署与序列化;示例代码含 Pipeline([('scaler', StandardScaler()), ('classifier', RandomForestClassifier(random_state=42))])。不同特征类型预处理用 ColumnTransformer 组合。

模型选择与调优:用交叉验证获得可靠估计,cross_val_score() 快速评估,cross_validate() 多指标;按场景选择 KFold、StratifiedKFold、TimeSeriesSplit、GroupKFold。调参用 GridSearchCV 或 RandomizedSearchCV,仅在训练/验证数据上调参,可设 n_jobs=-1 并行。

评估与不平衡数据:分类用 accuracy_score、precision_score、recall_score、f1_score、roc_auc_score,并用 classification_report()、confusion_matrix() 分析;回归用 MSE、MAE、r2_score。报告置信区间、多指标对比基线和仅一次留出测试评估。不平衡数据用分层拆分与交叉验证,考虑 class_weight='balanced',选用 F1、AUC-PR 等指标并调整决策阈值。

特征选择、持久化与优化:可用 SelectKBest、RFE、SelectFromModel 及树模型特征重要性;用 joblib 保存整条管道而非单个模型,并对模型产物做版本管理与元数据记录。性能上可用 n_jobs=-1、warm_start=True、稀疏矩阵及 partial_fit() 增量学习。

约定:从子模块导入(如 from sklearn.ensemble import RandomForestClassifier),设定 random_state,用管道防泄漏,记录模型选择与超参数。

限制:资料未提供安装命令、依赖版本、许可证、具体平台支持或部署细节,相关事实暂未提供。