Scikit-learn(sklearn)是一个用于机器学习的Python库,它提供了简单高效的工具用于数据分析和建模。以下是scikit-learn的主要模块及其包含内容的体系结构介绍:
1. 数据集模块 (sklearn.datasets
)
用于加载和生成各种数据集。
load_*
系列:加载小规模的内置数据集,如load_iris
、load_boston
等。fetch_*
系列:从外部来源获取较大规模的数据集,如fetch_20newsgroups
、fetch_olivetti_faces
等。make_*
系列:生成人造数据集用于测试和验证算法,如make_classification
、make_blobs
等。
2. 预处理模块 (sklearn.preprocessing
)
用于特征预处理和数据归一化。
StandardScaler
:标准化数据,均值为0,方差为1。MinMaxScaler
:将特征缩放到一个给定的最小值和最大值之间。Normalizer
:将每个样本缩放到单位范数。Binarizer
:将特征值二值化。OneHotEncoder
:将分类特征编码为one-hot格式。
3. 模型选择模块 (sklearn.model_selection
)
用于选择和验证模型。
train_test_split
:拆分数据集为训练集和测试集。cross_val_score
:进行交叉验证。GridSearchCV
:通过网格搜索进行参数调优。RandomizedSearchCV
:通过随机搜索进行参数调优。
4. 特征选择模块 (sklearn.feature_selection
)
用于选择重要特征。
SelectKBest
:选择K个最佳特征。RFE
(Recursive Feature Elimination):递归特征消除。SelectFromModel
:基于模型选择特征。
5. 降维模块 (sklearn.decomposition
)
用于数据降维。
PCA
(Principal Component Analysis):主成分分析。KernelPCA
:核主成分分析。TruncatedSVD
:截断奇异值分解。FactorAnalysis
:因子分析。
6. 集成方法模块 (sklearn.ensemble
)
用于集成多种模型的方法。
RandomForestClassifier
、RandomForestRegressor
:随机森林。GradientBoostingClassifier
、GradientBoostingRegressor
:梯度提升树。AdaBoostClassifier
、AdaBoostRegressor
:自适应提升算法。VotingClassifier
、VotingRegressor
:投票分类器/回归器。BaggingClassifier
、BaggingRegressor
:装袋算法。
7. 线性模型模块 (sklearn.linear_model
)
用于线性回归和分类模型。
LinearRegression
:线性回归。LogisticRegression
:逻辑回归。Ridge
、Lasso
:带正则化的线性模型。ElasticNet
:弹性网络模型。SGDClassifier
、SGDRegressor
:随机梯度下降。
8. 支持向量机模块 (sklearn.svm
)
用于支持向量机算法。
SVC
:支持向量分类。SVR
:支持向量回归。LinearSVC
、LinearSVR
:线性支持向量分类/回归。
9. 树模型模块 (sklearn.tree
)
用于决策树模型。
DecisionTreeClassifier
:决策树分类器。DecisionTreeRegressor
:决策树回归器。
10. 聚类模块 (sklearn.cluster
)
用于聚类算法。
KMeans
:K均值聚类。DBSCAN
:基于密度的聚类。AgglomerativeClustering
:层次聚类。MeanShift
:均值漂移聚类。
11. 神经网络模块 (sklearn.neural_network
)
用于神经网络模型。
MLPClassifier
:多层感知器分类器。MLPRegressor
:多层感知器回归器。
12. 核方法模块 (sklearn.kernel_approximation
)
用于近似内核方法。
RBFSampler
:RBF核采样。Nystroem
:Nystroem方法。
13. 度量模块 (sklearn.metrics
)
用于评估模型性能。
- 分类度量:如
accuracy_score
、f1_score
等。 - 回归度量:如
mean_squared_error
、r2_score
等。 - 聚类度量:如
adjusted_rand_score
、silhouette_score
等。 - ROC曲线和AUC:如
roc_curve
、auc
等。
14. 管道模块 (sklearn.pipeline
)
用于将多个步骤封装为一个管道。
Pipeline
:创建一个流水线对象。FeatureUnion
:特征联合。
15. 异常检测模块 (sklearn.ensemble
和 sklearn.covariance
)
用于异常检测。
IsolationForest
:孤立森林。EllipticEnvelope
:椭圆包络法。
16. 高斯过程模块 (sklearn.gaussian_process
)
用于高斯过程回归和分类。
GaussianProcessClassifier
:高斯过程分类器。GaussianProcessRegressor
:高斯过程回归器。kernels
:定义和组合高斯过程的内核,如RBF
、Matern
等。
17. 半监督学习模块 (sklearn.semi_supervised
)
用于半监督学习模型。
LabelPropagation
:标签传播。LabelSpreading
:标签扩散。
18. 多标签和多输出模块 (sklearn.multioutput
)
用于多标签和多输出学习任务。
MultiOutputClassifier
:用于多标签分类。MultiOutputRegressor
:用于多输出回归。ClassifierChain
:分类器链。RegressorChain
:回归器链。
19. 度量学习模块 (sklearn.neighbors
)
用于最近邻算法和度量学习。
KNeighborsClassifier
:k近邻分类器。KNeighborsRegressor
:k近邻回归器。NearestNeighbors
:最近邻搜索。RadiusNeighborsClassifier
:半径近邻分类器。RadiusNeighborsRegressor
:半径近邻回归器。BallTree
、KDTree
:空间树数据结构。
20. 协同过滤和推荐系统模块 (sklearn.recommendation
)
用于推荐系统的协同过滤方法(在较新版本中逐渐完善)。
NearestNeighbors
:基于邻居的推荐方法。
21. 内核密度估计模块 (sklearn.neighbors
和 sklearn.kernel_density
)
用于非参数密度估计。
KernelDensity
:核密度估计。
22. 朴素贝叶斯模块 (sklearn.naive_bayes
)
用于朴素贝叶斯分类算法。
GaussianNB
:高斯朴素贝叶斯。MultinomialNB
:多项式朴素贝叶斯。BernoulliNB
:伯努利朴素贝叶斯。ComplementNB
:补充朴素贝叶斯。
23. 决策函数模块 (sklearn.calibration
)
用于概率校准和决策函数。
CalibratedClassifierCV
:校准后的分类器。
24. 模型持久化模块 (sklearn.externals
和 joblib
)
用于模型的持久化和加载。
joblib.dump
:保存模型。joblib.load
:加载模型。
25. 集成方法的不同组合 (sklearn.ensemble
)
用于组合不同的模型。
StackingClassifier
、StackingRegressor
:堆叠模型。VotingClassifier
、VotingRegressor
:投票方法。
26. 数据转换模块 (sklearn.compose
)
用于数据转换和组合。
ColumnTransformer
:对特定列应用不同的预处理器。TransformedTargetRegressor
:在回归目标值上应用转换器。make_column_transformer
:方便地创建列变换器。make_column_selector
:选择特定类型的列。
27. 检查器和验证模块 (sklearn.utils.validation
)
用于输入数据和模型的验证。
check_X_y
:验证特征矩阵和目标向量。check_array
:验证单个数组。check_is_fitted
:检查估计器是否已拟合。
28. 仿真模块 (sklearn.utils.estimator_checks
)
用于测试自定义估计器是否符合scikit-learn的接口标准。
check_estimator
:对估计器进行一系列一致性检查。parametrize_with_checks
:参数化测试自定义估计器。
29. 数学工具模块 (sklearn.utils.extmath
)
用于提供数学工具和计算功能。
safe_sparse_dot
:安全处理稀疏矩阵的点积运算。row_norms
:计算行的范数。density
:计算稀疏矩阵的密度。
30. 优化模块 (sklearn.utils.optimize
)
用于提供优化工具。
linear_sum_assignment
:求解线性和分配问题。broyden1
:Broyden的第一种方法,用于非线性方程组求解。
31. 图工具模块 (sklearn.utils.graph
)
用于图操作和工具。
single_source_shortest_path_length
:计算单源最短路径长度。graph_laplacian
:计算图拉普拉斯矩阵。
32. 稀疏矩阵模块 (sklearn.utils.sparsefuncs
)
用于稀疏矩阵的函数。
inplace_csr_row_normalize_l1
:L1规范化CSR格式的稀疏矩阵。inplace_csr_row_normalize_l2
:L2规范化CSR格式的稀疏矩阵。
33. 调试和性能模块 (sklearn.utils.fixes
和 sklearn.utils.parallel
)
用于性能优化和并行计算。
delayed
:延迟函数的执行。parallel_backend
:指定并行后端。sklearn.utils.fixes
:修复不同版本之间的兼容性问题。
34. 实验性功能模块 (sklearn.experimental
)
用于实验性功能和模块,这些功能可能会在未来版本中稳定。
enable_hist_gradient_boosting
:启用直方图梯度提升。enable_iterative_imputer
:启用迭代插补。
35. 图形绘制模块 (sklearn.tree.export
)
用于导出决策树的图形表示。
export_graphviz
:导出决策树为Graphviz格式。plot_tree
:绘制决策树。
36. 隐私保护和差分隐私模块 (sklearn.diff_privacy
)
用于实现差分隐私保护(在较新版本中逐渐完善)。
DifferentialPrivacyLogisticRegression
:带有差分隐私的逻辑回归。
37. 实验性预测模块 (sklearn.experimental.enable_halving_search_cv
)
用于实验性的逐步搜索交叉验证。
HalvingGridSearchCV
:逐步网格搜索。HalvingRandomSearchCV
:逐步随机搜索。
38. 扩展库和接口 (sklearn.externals
)
用于与外部库的接口和集成。
joblib
:用于模型持久化和并行计算。six
:用于Python 2和Python 3的兼容性。