共计 2131 个字符,预计需要花费 6 分钟才能阅读完成。
1. 教材定位与学习难点
CAIE(Cambridge Assessment International Education)人工智能工程师教材作为国际认证课程的核心资料,其特点是理论体系完整但实践衔接较弱。新手常见三大痛点:

- 数学基础薄弱 :教材中大量使用矩阵运算和概率论符号
- 工具链陌生 :未明确说明 Python 生态工具(如 NumPy/scikit-learn)的版本兼容性
- 工程化缺失 :缺少从 Jupyter Notebook 到生产环境的过渡指导
2. 机器学习基础概念
2.1 学习范式
- 监督学习 (Supervised Learning):带有标签的训练数据(如房价预测)
- 无监督学习 (Unsupervised Learning):仅有特征无标签(如客户分群)
2.2 数据划分原则
- 训练集 (Training Set):70%~80% 原始数据,用于模型拟合
- 验证集 (Validation Set):10%~15%,用于超参数调优
- 测试集 (Test Set):10%~15%,仅作最终评估
3. 完整代码示例
3.1 数据预处理
import pandas as pd
from sklearn.impute import SimpleImputer
# 加载波士顿房价数据集(教材第 4 章案例)data = pd.read_csv('boston_housing.csv')
# 缺失值处理:用中位数填充数值列
imputer = SimpleImputer(strategy='median')
data_imputed = pd.DataFrame(imputer.fit_transform(data),
columns=data.columns)
3.2 模型训练
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
# 特征与标签分离
X = data_imputed.drop('MEDV', axis=1) # MEDV 为教材中房价中位数列名
y = data_imputed['MEDV']
# 按教材建议 7:3 划分数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 创建并训练模型
model = LinearRegression()
model.fit(X_train, y_train)
3.3 评估指标
from sklearn.metrics import mean_absolute_error, r2_score
# 预测测试集
y_pred = model.predict(X_test)
# 计算指标
print(f"MAE: {mean_absolute_error(y_test, y_pred):.2f}")
print(f"R² Score: {r2_score(y_test, y_pred):.3f}")
4. 重点技术实战
4.1 特征工程技巧
- 分箱处理 (Binning):将连续年龄转为年龄段
- 交叉特征 (Interaction Features):创造面积 = 长×宽等衍生特征
4.2 网格搜索调优
from sklearn.model_selection import GridSearchCV
from sklearn.ensemble import RandomForestRegressor
# 定义参数网格
param_grid = {'n_estimators': [50, 100],
'max_depth': [3, 5, None]
}
# 执行搜索
grid_search = GridSearchCV(estimator=RandomForestRegressor(),
param_grid=param_grid,
cv=5
)
grid_search.fit(X_train, y_train)
4.3 模型持久化
import joblib
# 保存最佳模型
joblib.dump(grid_search.best_estimator_, 'best_model.pkl')
# 加载模型
loaded_model = joblib.load('best_model.pkl')
5. 常见问题规避
5.1 数据泄漏 (Data Leakage)
- 错误做法 :在划分训练测试集前做标准化
- 正确流程 :先划分数据,仅用训练集统计量变换测试集
5.2 类别不平衡
- 过采样 (Oversampling):SMOTE 算法生成少数类样本
- 代价敏感学习 (Cost-Sensitive Learning):调整 class_weight 参数
5.3 过拟合识别
- 学习曲线 (Learning Curve):观察训练 / 验证误差随数据量变化
- 早停 (Early Stopping):监控验证集性能停止训练
6. 实践性问题
- 尝试将教材第三章的 KNN 算法用 scikit-learn 实现,比较不同 k 值对准确率的影响
- 对教材提供的数据集尝试至少 3 种不同的缺失值填充策略,比较模型效果差异
- 使用网格搜索优化 SVM 模型的 C 和 gamma 参数,记录最佳参数组合
通过以上步骤,学习者可以系统掌握教材知识到工程实践的转化方法。建议配合 Jupyter Notebook 边学边练,每完成一个知识点立即通过代码验证效果。
正文完
