Skip to content

01-机器学习基础

本章介绍机器学习的基础概念、工作流程和 scikit-learn 库的基本使用方法。


实际场景

假设你是一名房地产分析师,需要预测房价。你有过去 5 年的历史房价数据,包括房屋面积、房间数量、地段、建成年份等特征。你想通过这些数据训练一个模型来预测新房子的价格。这正是机器学习的典型应用场景:从历史数据中学习规律,用于预测未来

什么是机器学习

机器学习是人工智能的一个分支,使计算机能够从数据中学习规律,用于预测或决策。

┌─────────────────────────────────────────────────────────────┐
│                传统编程 vs 机器学习                          │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   传统编程:                                                │
│   输入 (数据) + 规则 (程序) → 输出 (结果)                   │
│                                                             │
│   机器学习:                                                │
│   输入 (数据) + 输出 (标签) → 规则 (模型)                   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

机器学习的类型

┌─────────────────────────────────────────────────────────────┐
│                  机器学习类型                                │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   1. 监督学习 (Supervised Learning)                         │
│   • 数据特点:有标签 (输入 + 期望输出)                      │
│   • 任务类型:分类、回归                                    │
│                                                             │
│   2. 无监督学习 (Unsupervised Learning)                     │
│   • 数据特点:无标签 (只有输入数据)                         │
│   • 任务类型:聚类、降维                                    │
│                                                             │
│   3. 半监督学习                                             │
│   • 数据特点:少量有标签 + 大量无标签                       │
│                                                             │
│   4. 强化学习                                               │
│   • 学习方式:通过与环境交互,根据奖励/惩罚学习              │
│                                                             │
└─────────────────────────────────────────────────────────────┘

机器学习工作流程

1. 问题定义 → 2. 数据收集 → 3. 数据探索 → 4. 数据清洗

5. 特征工程 → 6. 模型选择 → 7. 模型训练 → 8. 模型评估

9. 超参数调优 → 10. 模型部署

scikit-learn 简介

scikit-learn 是 Python 最流行的机器学习库。

统一 API 模式

python
from sklearn.linear_model import LogisticRegression
from numpy.typing import NDArray

model: LogisticRegression = LogisticRegression()
model.fit(X_train, y_train)
predictions: NDArray = model.predict(X_test)
accuracy: float = model.score(X_test, y_test)

第一个机器学习程序

python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
from numpy.typing import NDArray

iris = load_iris()
X: NDArray = iris.data
y: NDArray = iris.target

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

model: KNeighborsClassifier = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)

y_pred: NDArray = model.predict(X_test)
print(f"准确率:{accuracy_score(y_test, y_pred):.2%}")

本章小结

┌─────────────────────────────────────────────────────────────┐
│                    机器学习基础 知识要点                      │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   机器学习类型:                                             │
│   ✓ 监督学习:有标签,分类/回归                             │
│   ✓ 无监督学习:无标签,聚类/降维                           │
│                                                             │
│   工作流程:                                                 │
│   ✓ 问题定义→数据收集→数据探索→数据清洗→特征工程           │
│   ✓ 模型选择→模型训练→模型评估→超参数调优→模型部署         │
│                                                             │
│   scikit-learn:                                              │
│   ✓ 统一 API: fit() → predict() → score()                   │
│                                                             │
└─────────────────────────────────────────────────────────────┘