人工智能学习笔记 - 编程与工具 - 机器学习库
Python 生态中最经典、最成熟的机器学习库 scikit-learn(sklearn) 。该库覆盖了绝大多数传统机器学习的监督与无监督算法,并提供完善的模型评估、特征工程与流程化工具,是机器学习入门与工程实践的核心基础。
scikit-learn 概述
scikit-learn 是基于 NumPy、SciPy 构建的机器学习库,强调:
- 接口统一、使用简单
- 算法实现稳定、文档完善
- 适合教学、研究与工业原型开发
其核心设计遵循「fit → transform / predict」的统一范式。
常见算法类型
监督学习(Supervised Learning)
-
分类算法:
- 逻辑回归(Logistic Regression)
- 支持向量机(SVM)
- K 近邻(KNN)
- 决策树、随机森林
- 梯度提升(GBDT)
-
回归算法:
- 线性回归 / 岭回归 / Lasso
- 支持向量回归(SVR)
- 随机森林回归
无监督学习(Unsupervised Learning)
-
聚类:
- K-Means
- DBSCAN
- 层次聚类
-
降维:
- PCA(主成分分析)
- ICA
- t-SNE(主要用于可视化)
模型训练与预测范式
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train) # 训练模型
y_pred = model.predict(X_test) # 预测结果
fit():从数据中学习模型参数predict():对新数据进行预测
模型选择与评估
训练 / 验证划分
from sklearn.model_selection import train_test_split
train_test_split:将数据划分为训练集和测试集
交叉验证(Cross Validation)
from sklearn.model_selection import cross_val_score
cross_val_score:通过多折交叉验证评估模型泛化能力
超参数搜索
from sklearn.model_selection import GridSearchCV
GridSearchCV:基于网格搜索自动寻找最优超参数组合
特征工程工具
-
特征缩放:
StandardScaler(标准化)MinMaxScaler(归一化)
-
类别特征编码:
OneHotEncoderLabelEncoder
-
特征选择:
- 基于方差、相关性或模型的重要性
Pipeline(流水线)
-
Pipeline:将 数据预处理 + 模型训练 串联为一个整体 -
优点:
- 避免数据泄漏
- 代码结构清晰
- 便于交叉验证与部署
示意流程:原始数据 → 标准化 → 特征变换 → 模型训练 → 预测
import numpy as np
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
# 1. 构造示例数据
X = np.array([
[1.0, 2.0],
[2.0, 1.0],
[2.0, 3.0],
[3.0, 2.0]
])
y = np.array([0, 0, 1, 1])
# 2. 构建 Pipeline:标准化 + 逻辑回归
pipeline = Pipeline([
("scaler", StandardScaler()), # 对特征进行标准化(均值0,方差1)
("model", LogisticRegression()) # 逻辑回归分类模型
])
# 3. 训练模型
pipeline.fit(X, y)
# 4. 使用 Pipeline 进行预测
X_new = np.array([[2.5, 2.5]])
y_pred = pipeline.predict(X_new)
print("预测结果:", y_pred)