目录
[二、什么是 sklearn](#二、什么是 sklearn)
[三、安装 sklearn](#三、安装 sklearn)
[sklearn 中 fit 和 transform 区别?](#sklearn 中 fit 和 transform 区别?)
[fit_transform 是什么?](#fit_transform 是什么?)
[Pipeline 有什么作用?](#Pipeline 有什么作用?)
[GridSearchCV 的作用?](#GridSearchCV 的作用?)
[sklearn 最常用的模块有哪些?](#sklearn 最常用的模块有哪些?)
在 Python 机器学习生态中,有一个几乎绕不开的工具库:
Scikit-Learn(简称 sklearn)
无论是:
线性回归
逻辑回归
决策树
随机森林
聚类分析
降维分析
模型评估
还是:
数据预处理
特征工程
交叉验证
超参数调优
都能通过 sklearn 快速完成。
可以说:
如果 NumPy 是机器学习的数据基础,那么 sklearn 就是机器学习的瑞士军刀。
对于机器学习初学者来说,掌握 sklearn 意味着能够快速搭建完整的机器学习项目。
本文将系统讲解:
sklearn简介
安装方法
数据预处理
模型训练
模型评估
交叉验证
网格搜索
Pipeline流水线
常见模型使用
帮助你快速入门 sklearn。
二、什么是 sklearn
Scikit-Learn 是基于:
NumPy
SciPy
Matplotlib
构建的机器学习工具库。
官方网站:
https://scikit-learn.org
特点:
API统一
文档完善
模型丰富
简单易用
工业界广泛应用
三、安装 sklearn
安装最新版:
pip install scikit-learn
查看版本:
python
import sklearn
print(sklearn.__version__)
输出:
1.7.x
四、sklearn整体架构
机器学习流程:

在 sklearn 中:
datasets
preprocessing
model_selection
metrics
ensemble
tree
linear_model
分别负责不同模块。
五、加载数据集
sklearn 自带很多经典数据集。
加载鸢尾花数据集:
python
from sklearn.datasets import load_iris
iris = load_iris()
print(iris.data.shape)
print(iris.target.shape)
输出:
(150, 4)
(150,)
查看特征:
print(iris.feature_names)
结果:
['sepal length',
'sepal width',
'petal length',
'petal width']
六、划分训练集和测试集
机器学习必须划分:
训练集
测试集
代码:
python
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
iris.data,
iris.target,
test_size=0.2,
random_state=42
)
参数说明:
test_size
测试集比例
random_state
随机种子
七、数据标准化
很多算法要求:
数据尺度一致
例如:
年龄:20~60
工资:5000~50000
需要标准化。
代码:
python
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
标准化公式:
z = (x - μ) / σ
作用:
均值变成0
标准差变成1
八、训练第一个模型
使用逻辑回归:
python
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
训练完成后:
python
print("训练完成")
九、模型预测
预测测试集:
python
pred = model.predict(X_test)
print(pred)
预测概率:
python
prob = model.predict_proba(X_test)
print(prob)
输出:
[[0.01 0.95 0.04]]
表示:
属于各类别的概率
十、模型评估
计算准确率:
python
from sklearn.metrics import accuracy_score
acc = accuracy_score(
y_test,
pred
)
print(acc)
输出:
0.9667
表示:
96.67%
分类报告:
python
from sklearn.metrics import classification_report
print(
classification_report(
y_test,
pred
)
)
输出:
precision
recall
f1-score
等指标。
十一、混淆矩阵
查看预测详情:
python
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(
y_test,
pred
)
print(cm)
输出:
[[10 0 0]
[ 0 9 1]
[ 0 0 10]]
帮助分析:
误判情况
分类效果
十二、线性回归模型
房价预测:
python
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
pred = model.predict(X_test)
查看系数:
python
print(model.coef_)
查看截距:
python
print(model.intercept_)
十三、决策树模型
代码:
python
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier(
max_depth=5
)
model.fit(X_train, y_train)
预测:
python
pred = model.predict(X_test)
适用于:
分类问题
回归问题
十四、随机森林模型
工业界非常常见。
代码:
python
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier(
n_estimators=100,
random_state=42
)
model.fit(X_train, y_train)
参数:
n_estimators
树的数量
查看特征重要性:
print(
model.feature_importances_
)
十五、支持向量机(SVM)
代码:
python
from sklearn.svm import SVC
model = SVC(
kernel="rbf"
)
model.fit(X_train, y_train)
常见核函数:
linear
poly
rbf
sigmoid
十六、KNN近邻算法
代码:
python
from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier(
n_neighbors=5
)
model.fit(X_train, y_train)
参数:
n_neighbors
邻居数量
十七、聚类分析(K-Means)
无监督学习。
代码:
python
from sklearn.cluster import KMeans
kmeans = KMeans(
n_clusters=3,
random_state=42
)
kmeans.fit(X_train)
查看聚类结果:
print(kmeans.labels_)
十八、PCA降维
降维工具:
python
from sklearn.decomposition import PCA
pca = PCA(
n_components=2
)
X_new = pca.fit_transform(X_train)
结果:
4维
↓
2维
方便:
可视化
降噪
压缩数据
十九、交叉验证
提高评估可靠性。
代码:
python
from sklearn.model_selection import cross_val_score
scores = cross_val_score(
model,
iris.data,
iris.target,
cv=5
)
print(scores)
输出:
[0.96 0.93 1.00 0.96 0.96]
平均值:
print(scores.mean())
二十、网格搜索调参
自动寻找最佳参数。
代码:
python
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestClassifier
params = {
"n_estimators":[50,100,200],
"max_depth":[3,5,10]
}
grid = GridSearchCV(
RandomForestClassifier(),
params,
cv=5
)
grid.fit(X_train, y_train)
最佳参数:
python
print(grid.best_params_)
输出:
python
{
'max_depth':5,
'n_estimators':100
}
二十一、Pipeline流水线
避免数据泄漏。
代码:
python
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
pipeline = Pipeline([
("scaler", StandardScaler()),
("svc", SVC())
])
pipeline.fit(X_train, y_train)
优势:
代码更简洁
方便部署
避免错误
二十二、模型保存与加载
保存模型:
python
import joblib
joblib.dump(
model,
"model.pkl"
)
加载模型:
model = joblib.load(
"model.pkl"
)
线上部署常用。
二十三、完整机器学习案例
python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(
iris.data,
iris.target,
test_size=0.2,
random_state=42
)
model = RandomForestClassifier()
model.fit(X_train, y_train)
pred = model.predict(X_test)
acc = accuracy_score(
y_test,
pred
)
print("准确率:", acc)
运行结果:
准确率:0.96
二十四、常用模块总结
| 模块 | 作用 |
|---|---|
| datasets | 数据集 |
| preprocessing | 数据预处理 |
| model_selection | 数据划分与调参 |
| metrics | 模型评估 |
| linear_model | 线性模型 |
| tree | 决策树 |
| ensemble | 集成学习 |
| svm | 支持向量机 |
| cluster | 聚类 |
| decomposition | PCA降维 |
二十五、面试高频问题
sklearn 中 fit 和 transform 区别?
fit
学习参数
transform
转换数据
fit_transform 是什么?
fit
+
transform
一步完成。
Pipeline 有什么作用?
串联预处理和模型
防止数据泄漏
GridSearchCV 的作用?
自动搜索最佳参数
sklearn 最常用的模块有哪些?
datasets
metrics
model_selection
ensemble
tree
linear_model
二十六、总结
Scikit-Learn 是 Python 机器学习领域最重要的工具库之一。
完整开发流程:
加载数据
↓
划分训练集
↓
数据预处理
↓
训练模型
↓
模型预测
↓
模型评估
↓
交叉验证
↓
参数优化
↓
模型保存
掌握 sklearn 后,你将能够快速完成:
分类任务
回归任务
聚类任务
降维任务
模型评估
模型调优
对于机器学习工程师而言:
sklearn 不仅仅是一个工具库,更是学习机器学习思想的最佳实践平台。学会 sklearn,意味着你已经具备了独立完成绝大多数传统机器学习项目的能力。