Skip to content

参考

基于 scikit-learn 1.9.0 stable API Reference + User Guide 整理

速查

  • Estimator 契约fit(X, y) / predict(X) / transform(X) / fit_transform / predict_proba / score(X, y) / get_params / set_params
  • 学习后属性:以下划线结尾(.coef_.intercept_.classes_.feature_names_in_
  • pipelinePipelinemake_pipelineFeatureUnionmake_union
  • composeColumnTransformermake_column_selectormake_column_transformerTransformedTargetRegressor
  • preprocessingStandardScalerMinMaxScalerRobustScalerMaxAbsScalerOneHotEncoderOrdinalEncoderTargetEncoderPolynomialFeaturesKBinsDiscretizerFunctionTransformerNormalizerBinarizer
  • imputeSimpleImputerKNNImputerIterativeImputer(实验性)
  • ensembleRandomForestClassifier/RegressorGradientBoostingClassifier/RegressorHistGradientBoostingClassifier/RegressorAdaBoostExtraTreesVotingClassifierStackingClassifierBaggingClassifier
  • model_selectiontrain_test_splitcross_val_scoreKFold/StratifiedKFold/GroupKFoldGridSearchCVRandomizedSearchCVHalvingGridSearchCVlearning_curvevalidation_curve
  • calibrationCalibratedClassifierCVcalibration_curveCalibrationDisplay
  • metricsaccuracy_scoref1_scoreprecision_scorerecall_scoreroc_auc_scorelog_lossmean_squared_errorr2_scoreconfusion_matrixclassification_report
  • decompositionPCATruncatedSVDNMFLatentDirichletAllocation
  • clusterKMeansDBSCANHDBSCANAgglomerativeClusteringMiniBatchKMeans
  • linear_modelLinearRegressionLogisticRegressionRidgeLassoElasticNetSGDClassifier/Regressor
  • 版本:稳定版 1.9.0(2026-06);Python ≥ 3.9

Estimator 基类与 Mixin

基类 / Mixin职责必须实现
BaseEstimator提供 get_params / set_params / clone__init__(超参原样存储)
ClassifierMixin提供 score(accuracy)fit + predict
RegressorMixin提供 score(R²)fit + predict
TransformerMixin提供 fit_transformfit + transform
ClusterMixin聚类器接口fit + predict
OneToOneFeatureMixin输出列名一一对齐自动 get_feature_names_out

约定:学习到的属性用下划线结尾coef_classes_feature_names_in_),区别于构造参数。

Pipeline 与 ColumnTransformer API

python
from sklearn.pipeline import Pipeline, make_pipeline, FeatureUnion, make_union
from sklearn.compose import ColumnTransformer, make_column_selector, make_column_transformer

Pipeline(steps, *, memory=None, verbose=False)            # 串联:最后一步是预测器
make_pipeline(*steps, memory=None, verbose=False)          # 名字自动 = 类名小写
FeatureUnion(transformer_list, n_jobs=None)                # 并行:横向拼接输出
ColumnTransformer(transformers, *, remainder='drop',
                  sparse_threshold=0.3, n_jobs=None)       # 按列分派
make_column_selector(pattern=None, *, dtype_include=None,
                     dtype_exclude=None)                    # 列选择器(dtype/正则)

跨层寻址语法

&lt;step_name&gt;__<param_name>(双下划线)穿透任意嵌套:

python
# full_pipe['prep'] → ColumnTransformer['num'] → Pipeline['scaler'] → with_mean
grid_params = {'prep__num__scaler__with_mean': [True, False]}

超参搜索 API

python
GridSearchCV(estimator, param_grid, *, scoring=None,
             n_jobs=None, refit=True, cv=None, verbose=0)
RandomizedSearchCV(estimator, param_distributions, *, n_iter=10,
                   scoring=None, cv=None, n_jobs=None, refit=True)
HalvingGridSearchCV(estimator, param_grid, *, factor=3, resource='n_samples',
                    min_resources='exhaust', max_resources='auto', cv=None)
HalvingRandomizedSearchCV(estimator, param_distributions, *, n_iter=50, factor=3, cv=None)
策略适用
GridSearchCV笛卡尔积穷举小离散空间
RandomizedSearchCV从分布采样 n_iter 组大空间、连续超参
HalvingGridSearchCVsuccessive halving实验性、候选多、省时
HalvingRandomizedSearchCV采样 + halving大空间 + 省时

HalvingGridSearchCV / HalvingRandomizedSearchCV 需先 from sklearn.experimental import enable_halving_search_cv

ensemble 模块速查

算法要点
RandomForestClassifier/RegressorBagging 决策树n_estimatorsmax_features='sqrt'、OOB 评估
ExtraTreesClassifier/Regressor极端随机树分裂阈值随机,更快
GradientBoostingClassifier/Regressor逐树梯度提升n_estimatorslearning_rate、需处理 NaN
HistGradientBoostingClassifier/Regressor直方图梯度提升受 LightGBM 启发、原生 NaN + 类别特征、快约 10×
AdaBoostClassifier/Regressor自适应提升关注错分样本
VotingClassifier多模型投票voting='hard'/'soft'
StackingClassifier/Regressor二层 stackingestimators + final_estimator
BaggingClassifier/RegressorBagging 元框架可套任意基估计器

calibration 模块

python
CalibratedClassifierCV(estimator, *, method='sigmoid', cv=5, ensemble=True)
calibration_curve(y_true, y_prob, *, pos_label=None, n_bins=5, strategy='uniform')
CalibrationDisplay.from_estimator(estimator, X, y, *, n_bins=10)
method原理适用
'sigmoid'Platt scaling(Logistic 映射)小样本、欠自信、保 AUC
'isotonic'保序回归(非参单调)任意单调失真,需 >1000 样本
'temperature'softmax 温度缩放多分类、需 logits

preprocessing 与 impute 速查

作用关键参数
StandardScalerz-score 标准化with_meanwith_std
MinMaxScaler缩放到 [0,1]feature_range
RobustScaler用中位数/IQR(抗异常值)quantile_range=(25,75)
MaxAbsScaler缩放到 [-1,1](稀疏友好)
OneHotEncoder独热编码handle_unknown='ignore'sparse_output
OrdinalEncoder有序编码categorieshandle_unknown
TargetEncoder目标编码(1.4+)smoothtarget_type
PolynomialFeatures多项式特征degreeinteraction_only
KBinsDiscretizer分箱n_binsstrategy
FunctionTransformer包装任意函数funcfeature_names_out
Normalizer行归一化norm='l2'
SimpleImputer缺失值填充strategy='mean/median/most_frequent/constant'
KNNImputerKNN 填充n_neighbors
IterativeImputer多变量迭代填充(实验性)estimator、需 enable_iterative_imputer

model_selection 划分与 CV

python
KFold(n_splits=5, shuffle=False)                    # 顺序
StratifiedKFold(n_splits=5, shuffle=True)           # 保类别比例(分类首选)
GroupKFold(n_splits=5)                              # 按 group 划分(防泄漏)
RepeatedStratifiedKFold(n_splits=5, n_repeats=10)
TimeSeriesSplit(n_splits=5)                         # 时序:只用过去预测未来
cross_val_score(est, X, y, cv=StratifiedKFold(5), scoring='f1', n_jobs=-1)
cross_validate(est, X, y, cv=5, return_train_score=True)   # 返回多指标

metrics 速查

函数用途
accuracy_score(y_true, y_pred)准确率
precision_score / recall_score / f1_score精确/召回/F1(average='binary/macro/micro/weighted'
roc_auc_score / average_precision_scoreAUC / PR-AUC
log_loss对数损失(吃概率)
mean_squared_error / mean_absolute_error回归 MSE/MAE(squared=False 得 RMSE)
r2_score决定系数
confusion_matrix / classification_report混淆矩阵 / 文本报告
make_scorer(metric, greater_is_better=True)把指标包装成 GridSearch 的 scoring

1.9 模块全景

模块职责
sklearn.pipelinePipeline / FeatureUnion(工程化串联)
sklearn.composeColumnTransformer / 列选择器(异构预处理)
sklearn.preprocessing标准化、编码、多项式
sklearn.impute缺失值填充
sklearn.ensemble集成方法(RF/GB/HistGB/Stacking)
sklearn.model_selectionCV、超参搜索、数据划分
sklearn.calibration概率校准
sklearn.metrics评估指标
sklearn.decomposition降维(PCA/NMF/LDA)
sklearn.cluster聚类(KMeans/DBSCAN/HDBSCAN)
sklearn.manifold流形学习(t-SNE/UMAP 接口)
sklearn.linear_model线性模型(含 L1/L2/SGD)
sklearn.svm支持向量机
sklearn.neighborsKNN
sklearn.tree决策树(含 export_text/plot_tree
sklearn.feature_extraction文本/图像特征(TF-IDF)
sklearn.feature_selection特征选择
sklearn.dummy基线(DummyClassifier)

官方资源