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 中不可或缺的工具。
![]()
“点赞有美意,赞赏是鼓励”
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.