scikit-learn 是 Python 生态中最流行的机器学习库之一,提供丰富的算法、工具与接口,用于分类、回归、聚类、降维、模型选择与预处理等任务。

它建立在 NumPy、SciPy 和 matplotlib 之上,具有高性能、易用性和统一 API 设计,是学术研究、工程项目和数据科学的首选库之一。

安装 :

安装时需确保已安装 numpy、scipy,推荐使用最新版本的 Python 3.x。

pip install scikit-learn

常见应用场景:

(1)监督学习

分类(Classification)、回归(Regression),例如预测用户购买行为、房价、疾病诊断等。

(2)无监督学习

聚类(Clustering)、降维(Dimensionality Reduction),例如市场细分、图像压缩、特征提取。

(3)模型选择与评估

交叉验证、网格搜索(Grid Search)、评分指标等。

(4)数据预处理与特征工程

缩放、标准化、编码、缺失值处理等。

(5)管道(Pipeline)机制

可将数据预处理与模型训练组合成统一流程,便于复现与部署。

◆ ◆

核心概念

1、Estimator(估计器)

Estimator 是 scikit-learn 中的核心接口,用于实现数据学习与预测。

包括分类器(Classifier)、回归器(Regressor)、聚类器(Clusterer)等。

核心方法:

.fit(X, y):训练模型

.predict(X):预测输出

.transform(X):数据变换(用于预处理或降维)

2、Transformer(转换器)

对数据进行预处理或特征转换,如 StandardScaler、PCA。

核心方法:

.fit(X, y=None):学习参数

.transform(X):应用转换

.fit_transform(X, y=None):拟合并转换

3、Pipeline(管道)

将一系列转换器和最终估计器串联,形成数据处理和建模的完整流程。

4、Model Selection(模型选择)

提供交叉验证、网格搜索、评分评估方法,如 train_test_split、GridSearchCV、cross_val_score。

5、Metrics(评估指标)

用于模型性能评估,包括分类准确率、F1-score、回归均方误差、R² 等。

◆ ◆

应用举例

例 1:分类任务(鸢尾花数据集)

print("Accuracy:", accuracy_score(y_test, y_pred))

例 2:回归任务(波士顿房价)

print("MSE:", mean_squared_error(y_test, y_pred))

例 3:数据标准化与管道

print("Pipeline Accuracy:", pipe.score(X_test, y_test))

例 4:交叉验证

print("Cross-validation scores:", scores)

例 5:网格搜索优化超参数

print("Best parameters:", grid.best_params_)

◆ ◆

常用函数与类速览

sklearn.model_selection.train_test_split(*arrays, test_size=None, train_size=None, random_state=None)

拆分数据为训练集与测试集。

参数

arrays:数据集特征和标签(如 X, y)。

test_size:测试集比例或样本数。

train_size:训练集比例或样本数。

random_state:随机种子。

返回:X_train, X_test, y_train, y_test。

sklearn.ensemble.RandomForestClassifier(n_estimators=100, random_state=None)

随机森林分类器。

参数

n_estimators:树的数量。

random_state:随机种子。

返回:RandomForestClassifier 实例。

sklearn.linear_model.LinearRegression()

线性回归模型。

返回:LinearRegression 实例。

sklearn.pipeline.Pipeline(steps)

构建管道。

参数

steps:列表,每个元素为 (name, transformer/estimator)。

返回:Pipeline 对象。

sklearn.model_selection.GridSearchCV(estimator, param_grid, cv=5)

网格搜索与交叉验证。

参数

estimator:基础模型。

param_grid:参数字典。

cv:交叉验证折数。

返回:GridSearchCV 实例。

sklearn.metrics.accuracy_score(y_true, y_pred)

计算分类准确率。

参数

y_true:真实标签。

y_pred:预测标签。

返回:浮点数(准确率)。

小结

scikit-learn 提供了完整且统一的机器学习接口,涵盖数据预处理、算法模型、评估与优化。无论是入门数据科学、教学实验,还是构建生产级机器学习系统,它都是 Python 中不可或缺的工具。

打开网易新闻 查看精彩图片

点赞有美意,赞赏是鼓励