一、机器学习基础
1.1 机器学习概述
- 定义:通过数据和算法让计算机自动学习规律,改进性能。
- 核心思想:从数据中学习模式,而非显式编程。
- 应用领域:图像识别、推荐系统、金融预测等。
1.2 机器学习 vs 传统编程
传统编程 | 机器学习 |
程序员定义规则 | 数据驱动自动学习规则 |
输入→规则→输出 | 输入→模型→输出 |
1.3 机器学习类型
- 监督学习:带标签数据(分类/回归)
- 无监督学习:无标签数据(聚类/降维)
- 强化学习:通过奖惩与环境交互学习
1.4 机器学习工作流程
- 数据收集:结构化/非结构化数据
- 预处理:清洗、特征工程、标准化
- 模型训练:选择算法,最小化损失函数
- 评估优化:准确率、F1分数等指标
- 部署迭代:持续优化模型性能
二、核心算法实战
2.1 线性回归(监督学习)
- 目标:预测连续值(如房价)
- 公式:
y = w1x1 + w2x2 + ... + b - 优化方法:最小二乘法、梯度下降
- Python实现:
from sklearn.linear_model import LinearRegression
model = LinearRegression().fit(X_train, y_train)
print(f"斜率: {model.coef_}, 截距: {model.intercept_}")2.2 决策树(监督学习)
- 原理:通过树状结构进行决策分类
- 关键概念:信息增益、基尼指数
- 优缺点:易解释但易过拟合
- 可视化:
from sklearn.tree import export_graphviz
export_graphviz(clf, out_file='tree.dot', feature_names=iris.feature_names)2.3 支持向量机(SVM)
- 核心:寻找最大化分类间隔的超平面
- 核技巧:处理非线性数据(RBF核、多项式核)
- 实战代码:
from sklearn.svm import SVC
clf = SVC(kernel='linear').fit(X_train, y_train)
print(f"准确率: {clf.score(X_test, y_test)}")2.4 K-近邻算法(KNN)
- 原理:基于距离投票分类
- 调参技巧:交叉验证选择最优K值
- 回归应用:
from sklearn.neighbors import KNeighborsRegressor
knn_reg = KNeighborsRegressor(n_neighbors=5).fit(X_train, y_train)三、集成学习进阶
3.1 随机森林(Bagging)
- 原理:多棵决策树投票/平均
- 优势:抗过拟合,并行训练
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier(n_estimators=100).fit(X_train, y_train)3.2 AdaBoost(Boosting)
- 原理:迭代优化样本权重
- 特点:关注前序模型错误样本
from sklearn.ensemble import AdaBoostClassifier
ada = AdaBoostClassifier(base_estimator=DecisionTreeClassifier(max_depth=1)).fit(X_train, y_train)3.3 Stacking
- 原理:组合多个模型预测结果训练元模型
- 实现:
from sklearn.ensemble import StackingClassifier
stacking = StackingClassifier(estimators=[('dt', DecisionTreeClassifier()), ('svc', SVC())], final_estimator=LogisticRegression())四、实战案例
4.1 鸢尾花分类任务
- 数据加载:
from sklearn.datasets import load_iris
iris = load_iris()
X, y = iris.data, iris.target- 模型训练:
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)- 评估对比:
算法 | 准确率 |
KNN | 0.97 |
决策树 | 1.00 |
随机森林 | 1.00 |
五、关键工具
- Python库:
-
scikit-learn:经典算法实现 -
TensorFlow/PyTorch:深度学习框架 -
XGBoost/LightGBM:高效梯度提升框架
- 数据预处理:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler().fit(X_train)
X_train_scaled = scaler.transform(X_train)六、常见问题
- 过拟合:增加正则化、减少特征、增大数据量
- 欠拟合:增加模型复杂度、特征工程
- 数据不平衡:SMOTE算法、调整类别权重
















