机器学习环境搭建
1 课程概览
本课介绍机器学习开发环境的搭建,核心为安装scikit-learn库。同时讲解scikit-learn库的特点、依赖关系,以及机器学习算法选择路径图,帮助根据数据量和任务类型选择合适的算法。
2 核心概念与定义
- scikit-learn(sklearn):基于Python的简单高效的数据挖掘和数据分析工具,开源可商业使用。
- NumPy:scikit-learn的底层依赖之一,科学计算库。
- SciPy:scikit-learn的底层依赖之一。
- Matplotlib:scikit-learn的底层依赖之一,绘图库。
- 算法选择路径图(Algorithm Selection Path):根据样本数量、任务类型、是否有标签等条件选择合适算法的决策图。
3 算法与模型详解
3.1 scikit-learn库介绍
| 特性 | 说明 |
|---|---|
| 定位 | 数据挖掘和数据分析工具 |
| 基础 | 建立在NumPy、SciPy、Matplotlib之上 |
| 授权 | 开源,可商业使用 |
| 环境 | 可在各种环境中重复使用 |
3.2 安装方法
pip install scikit-learn
⚠️注意:包名是
scikit-learn,中间是减号(-),不是下划线(_)。安装时电脑需联网。
3.3 scikit-learn核心模块
| 模块名 | 功能 | 对应任务 |
|---|---|---|
classification | 分类 | 有监督,标签不连续 |
regression | 回归 | 有监督,标签连续 |
clustering | 聚类 | 无监督,无标签 |
preprocessing | 预处理 | 特征工程 |
model_selection | 模型选择 | 选择合适模型 |
dimensionality reduction | 降维 | 特征降维 |
3.4 机器学习算法选择路径图
开始
↓
样本数 > 50? ——否——→ 获取更多数据
↓ 是
预测类别?
├── 分类(有标签)
│ └── 样本数 < 100K → 线性SVC、KNN、逻辑回归
├── 聚类(有类别预测)
│ └── 样本数 < 10K → KMeans等
├── 回归(预测数值)
│ └── 样本数 < 100K → 线性回归、岭回归等
└── 降维(仅观察结构)
└── 特征工程
3.5 三大算法类别
| 类别 | 说明 | 常用算法 |
|---|---|---|
| 分类 | 有监督,标签不连续 | KNN、逻辑回归、SVC |
| 回归 | 有监督,标签连续 | 线性回归、岭回归 |
| 聚类 | 无监督,无标签 | KMeans |
分类问题是机器学习中数量最多的算法类别。
4 数学原理与推导
本课无数学推导。
5 代码示例
# 安装scikit-learn(Python)
pip install scikit-learn
# 验证安装
import sklearn
print(sklearn.__version__)
6 重难点与易错提醒
- ❗重点:包名是
scikit-learn,中间是减号(-),不是下划线(_)。 - ❗重点:scikit-learn建立在NumPy、SciPy、Matplotlib之上。
- ⚠️易错:样本数小于50时,不要训练模型,应先获取更多数据(数据决定模型上限)。
- ⚠️易错:1K = 1000,样本数100K即10万。
- 💡深入理解:分类问题是机器学习中算法最多的类别,学习精力主要在分类问题。
7 课堂问答精选
Q: 机器学习的三大算法类别是什么?
A: 分类(有监督,标签不连续)、回归(有监督,标签连续)、聚类(无监督,无标签)。其中分类问题算法最多。
Q: 样本数小于50时应该怎么办?
A: 不要训练模型,应先获取更多数据。因为数据决定模型上限,数据太少无法训练出有效模型。
8 本课小结
- scikit-learn是Python机器学习库,基于NumPy、SciPy、Matplotlib。
- 安装命令:
pip install scikit-learn(注意是减号)。 - 核心模块:分类、回归、聚类、预处理、模型选择、降维。
- 算法选择路径:样本数>50→判断任务类型→选择算法。
- 三大算法类别:分类(最多)、回归、聚类。
9 延伸思考与实践
- 实践:在Anaconda环境中安装scikit-learn库。
- 思考:如何根据样本数量和任务类型选择合适的算法?
- 了解:访问scikit-learn官网,熟悉各类算法模块。