当前位置:首页>python>python从基础到AI-开启机器学习之门

python从基础到AI-开启机器学习之门

  • 2026-09-02 20:03:58
python从基础到AI-开启机器学习之门
点击蓝字,立即关注
如果您对人工智能方面的分享感兴趣,欢迎您关注,我们的公众号:
已经完成的读书笔记,如您感兴趣,请移步,往期文章精选:
python机器学习读书笔记导航
《LangChain实战派》读书笔记-目录
《基于大模型的RAG应用开发与优化》读书笔记-导航
如果您对在家做菜也有兴趣,欢迎您关注我们的联合公众号:

写在前面

这是一个新系列的文章,从python基础到AI应用,从基础变成语言到算法使用。不讲原理,只讲用法。
每次留下一个小问题,并在下一次文章开头进行解答。
本系列文章内容,全部由AI来写。

Python机器学习入门指南

引言

欢迎回到我们的Python学习系列!在之前的旅程中,我们掌握了Python的基础语法,并学会了使用NumPy处理数据、利用Matplotlib将数据转化为直观的图表。这些技能就像学会了辨认食材和使用厨具,是做出美味佳肴的前提。

现在,我们将推开一扇新的大门,探索一个充满智能与自动化的领域——机器学习(Machine Learning, ML)。

本章的目标是为你构建一个坚实、清晰的机器学习认知框架。我们不会立即深入复杂的算法代码,而是先厘清基本概念:

  • 机器学习是什么?
  • 它如何工作?
  • 包含哪些核心步骤和术语?

通过本章的学习,你将能够理解机器学习项目的整体脉络,为后续动手使用 scikit-learn 等工具库打下坚实的基础。

记住:好的开始是成功的一半,让我们从建立正确的“世界观”开始。


回顾与解答:Matplotlib实践作业

在上一篇文章的结尾,我们布置了一个实践作业,要求使用Matplotlib对一份模拟的“月度产品销量与用户评分”数据创建可视化报告。现在,我们来揭晓答案。

作业要求回顾

  1. 布局
    创建1行2列的子图布局。
  2. 左图
    绘制每月销量的折线图。
  3. 右图
    绘制每月平均用户评分的柱状图。
  4. 标注
    为每个子图添加清晰的标题、坐标轴标签。
  5. 美化
    进行简单美化(如调整颜色、添加网格)。
  6. 优化
    优化整体图表布局,确保清晰易读。

完整代码解决方案

import matplotlib.pyplot as plt
import numpy as np

# 模拟数据:12个月的数据
months = np.arange(1, 13)  # 1月到12月
sales = np.array([120, 135, 148, 165, 190, 210, 205, 198, 185, 170, 155, 140])  # 销量(单位:千)
ratings = np.array([4.2, 4.3, 4.5, 4.6, 4.7, 4.8, 4.75, 4.7, 4.6, 4.5, 4.4, 4.3])  # 平均评分

# 1. 创建画布和子图(1行2列)
fig, axs = plt.subplots(1, 2, figsize=(14, 5))  # figsize控制整个画布的宽度和高度

# 2. 绘制左子图:月度销量折线图
axs[0].plot(months, sales, marker='o', color='steelblue', linewidth=2, label='月度销量')
axs[0].set_title('2023年度产品月度销量趋势', fontsize=14, fontweight='bold')
axs[0].set_xlabel('月份', fontsize=12)
axs[0].set_ylabel('销量(千)', fontsize=12)
axs[0].grid(True, linestyle='--', alpha=0.7)  # 添加网格线
axs[0].legend()
axs[0].set_xticks(months)  # 设置x轴刻度为1-12月

# 3. 绘制右子图:月度评分柱状图
bars = axs[1].bar(months, ratings, color='lightcoral', edgecolor='darkred')
axs[1].set_title('2023年度产品月度平均用户评分', fontsize=14, fontweight='bold')
axs[1].set_xlabel('月份', fontsize=12)
axs[1].set_ylabel('平均评分', fontsize=12)
axs[1].grid(True, axis='y', linestyle='--', alpha=0.7)  # 仅添加y轴网格
axs[1].set_xticks(months)
# 在柱子上方添加评分数值
for bar, rating inzip(bars, ratings):
    height = bar.get_height()
    axs[1].text(bar.get_x() + bar.get_width()/2., height + 0.02,
f'{rating:.2f}', ha='center', va='bottom', fontsize=9)

# 4. 优化整体布局
plt.tight_layout()  # 自动调整子图参数,使它们适应画布区域,避免标签重叠
plt.show()

代码运行效果描述

执行上述代码后,将生成一张包含左右两个子图的清晰图表:

  • 左图
    以蓝色折线清晰展示了销量在年中达到峰值后逐渐回落的趋势。
  • 右图
    以红色柱状图直观显示了用户评分随月份的变化,并在每个柱子上方标注了具体评分值。

整个图表布局紧凑,标题、标签、网格线齐全,达到了直观展示数据关联与趋势的作业目标。


探索机器学习世界

掌握了数据可视化,我们的数据已经“会说话”了。接下来,我们要让计算机从这些数据中“学习”规律并做出预测或决策,这就是机器学习的魅力。

1. 从人工智能到深度学习

首先,让我们理清几个常被混用的概念:

  • 人工智能(Artificial Intelligence, AI)

    • 定义
      这是一个最广泛的概念,目标是让机器能够模拟、延伸和扩展人的智能,表现出推理、学习、规划等能力。
    • 范畴
      一切让机器变得更“聪明”的研究都属于AI范畴。
  • 机器学习(Machine Learning, ML)

    • 定义
      它是实现AI的一种主流方法。ML的核心是让计算机利用数据自动改进性能,而无需为每个任务显式编程。
    • 关系
      如果说AI是目标,ML就是达成目标的重要路径。
  • 深度学习(Deep Learning, DL)

    • 定义
      它是机器学习的一个子领域,灵感来源于人脑的神经网络结构。通过构建多层的“深度”神经网络,DL能够从海量数据中自动学习非常复杂的特征和模式。
    • 应用
      在图像识别、自然语言处理等领域取得了突破性进展。

简单关系:AI ⊃ ML ⊃ DL。深度学习是机器学习的一种,而机器学习是实现人工智能的重要方式。

2. 两种思维:基于规则 vs. 基于模型

理解机器学习,可以从它与传统编程的区别入手:

方式
输入
过程
输出
传统编程(基于规则)规则
 + 数据
程序执行既定逻辑
结果
机器学习(基于模型)数据
 + 对应结果
算法学习归纳规律
模型(新规则)

举例对比:

  • 传统编程
    编写一个判断垃圾邮件的规则列表(如包含“免费”、“获奖”等关键词),程序根据这些规则对每封邮件进行分类。
  • 机器学习
    提供大量标记好的(垃圾邮件/正常邮件)数据,计算机自己学习出一个区分模型。未来收到新邮件,模型就能自动判断。

核心区别:机器学习的关键在于,规则(模型)是由机器从数据中自动归纳的,尤其适用于规则复杂、难以手动定义的场景(如人脸识别、股票预测)。

3. 理解机器学习的“语言”

要进入ML领域,需要熟悉它的基本词汇:

  • 样本(Sample)
    • 一条单独的数据记录。例如,一封邮件、一张图片、一个客户的信息。
  • 特征(Feature)
    • 描述样本的属性或变量。例如,一封邮件的“发件人”、“主题词频率”;一个客户的“年龄”、“收入”。
    • 作用:特征是模型的输入。
  • 标签(Label)
    • 我们想要预测的目标值。在监督学习中,它是样本对应的“答案”。
    • 示例
      邮件是否是“垃圾邮件”(是/否),图片中的物体是“猫”还是“狗”。
  • 训练集(Training Set)
    • 用于“教导”机器学习模型的数据集,包含样本的特征和对应的标签。
  • 测试集(Test Set)
    • 用于评估训练好的模型在新数据上表现的数据集。
    • 关键原则
      测试集在训练过程中必须完全被“隔离”,不能用于训练,以确保评估的公正性。
  • 评估指标(Evaluation Metric)
    • 衡量模型性能优劣的量化标准。
    • 示例
      分类任务的准确率、精确率;回归任务的平均绝对误差(MAE)。

4. 机器学习的四大门派

根据学习方式的不同,机器学习主要分为以下几类:

  1. 有监督学习(Supervised Learning)

    • 分类
      如图像识别、垃圾邮件过滤。
    • 回归
      如房价预测、销量预测。
    • 特点
      训练数据既有特征也有标签。
    • 目标
      模型学习特征与标签之间的映射关系,用于预测新样本的标签。
  2. 无监督学习(Unsupervised Learning)

    • 聚类
      如客户分群、新闻主题分类。
    • 降维
      压缩数据,减少特征数量。
    • 特点
      训练数据只有特征,没有标签。
    • 目标
      模型试图发现数据内在的结构、模式或分组。
  3. 半监督学习(Semi-supervised Learning)

    • 特点
      训练数据中一部分有标签,大部分无标签。
    • 目标
      结合使用少量有标签数据和大量无标签数据进行学习,以降低对大量标注数据的依赖。
  4. 强化学习(Reinforcement Learning)

    • 特点
      智能体(Agent)通过与环境互动,根据获得的奖励或惩罚来学习采取最优行动策略。
    • 目标
      学习的是一个决策过程。

5. 构建模型的通用流程

一个典型的机器学习项目遵循一个相对标准的工作流:

  1. 定义问题
    • 明确业务目标,确定问题类型(分类、回归等)。
  2. 数据收集与清洗
    • 获取相关数据,处理缺失值、异常值、重复值,保证数据质量。
  3. 特征工程
    • 将原始数据转换为更能代表问题本质的特征(至关重要,下文详述)。
  4. 模型选择与训练
    • 根据问题选择合适的算法(如线性回归、决策树),使用训练集进行训练。
  5. 模型评估
    • 使用测试集评估模型性能,判断是否达到预期。
  6. 模型调优与部署
    • 效果不佳则调整参数或优化特征;效果达标则将模型部署到实际应用。

6. 数据到模型的桥梁:特征工程

特征工程被许多从业者认为是机器学习项目中最耗时、也最具创造性的部分。

  • 是什么?

    就像厨师烹饪前要对食材进行洗、切、腌制等处理一样,特征工程是对数据进行清洗、转换、组合、创造新特征的过程。

  • 为什么重要?

    数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。 好的特征能够显著提升模型性能,甚至比选择更复杂的算法更有效。

  • 简单例子:

    • 原始数据
      “房屋地址”(文本格式)。
    • 特征工程后
      提取出“所在行政区”、“距离地铁站距离”、“周边学校数量”等数值型或类别型特征。
    • 结果
      模型能够有效理解和利用这些信息进行房价预测。

7. 模型训练中的“常见病”:过拟合与欠拟合

在训练模型时,我们常会遇到两个核心问题:

问题
表现
原因
应对思路
过拟合(Overfitting)
在训练集上表现极好,在测试集上表现很差。
好比死记硬背了所有习题答案,却不会解新题。
模型过于复杂,学习了训练数据中的噪声和细节,而非一般规律。
简化模型、获取更多数据、使用正则化、进行特征选择。
欠拟合(Underfitting)
在训练集和测试集上表现都不好。
好比连课本上的基本例题都没掌握。
模型过于简单,无法捕捉数据中的基本规律。
使用更复杂模型、增加有效特征、延长训练时间。

核心目标:在拟合数据规律和保持泛化能力之间取得平衡。


动手动脑:知识巩固作业

为了检验你对上述概念的理解,请尝试回答以下问题。

请注意:本次作业仅基于本文介绍的机器学习概念,无需编写任何代码。

作业场景

某电商平台希望建立一个系统,能够根据用户的浏览历史、购买记录、人口统计信息等,自动将用户归类到不同的“客户价值群体”(如“高价值活跃用户”、“潜在流失用户”、“价格敏感型用户”),以便进行精准营销。

问题列表

  1. 问题类型判断

    • 这个任务属于有监督学习、无监督学习还是强化学习?
    • 为什么?
  2. 特征与标签识别

    • 在这个任务中,什么是“样本”?
    • 请列举 2-3个 可能使用的“特征”。
    • 如果采用有监督学习方式,什么是“标签”?
    • 如果采用无监督学习方式,是否存在“标签”?
  3. 数据集划分

    • 为什么要将收集到的用户数据划分为“训练集”和“测试集”?
    • 请用一两句话说明其重要性。
  4. 现象诊断

    • 假设我们训练了一个模型,它在训练数据上能完美地将用户分群,但应用到新用户时,分群结果非常混乱且没有业务意义。这很可能是什么问题?(过拟合 还是 欠拟合?)
    • 反之,如果模型在训练数据上就表现得很差,无法找出有意义的用户群体,这又可能是什么问题?(过拟合 还是 欠拟合?)

请思考后写下你的答案。这将帮助你巩固本章的核心概念。


总结

  1. 宏观框架
    我们理解了人工智能(AI)、机器学习(ML)与深度学习(DL) 之间的层次关系,认识了机器学习“让数据产生模型”的核心思想,并与传统编程方法进行了对比。
  2. 核心语言
    我们系统性地学习了机器学习的基础“语言”——样本、特征、标签、训练集、测试集等。
  3. 主要类型
    我们了解了根据学习方式划分的四大类型:有监督、无监督、半监督和强化学习及其典型应用。
  4. 标准流程
    我们梳理了一个标准机器学习项目从问题定义到模型部署的完整流程。
  5. 关键桥梁
    我们特别强调了特征工程作为连接原始数据与有效模型的关键桥梁所起到的决定性作用。
  6. 核心挑战
    我们探讨了模型训练中需要警惕的两个核心挑战:过拟合与欠拟合,理解了它们的表现、成因及基本的解决思路。

附录:核心知识点速查表

类别
术语/概念
定义与说明
领域关系人工智能(AI)
让机器模拟人类智能的广泛领域。
机器学习(ML)
实现AI的一种方法,让计算机利用数据自动改进性能。
深度学习(DL)
ML的一个子集,使用深层神经网络学习复杂模式。
核心术语样本(Sample)
一条独立的数据记录。
特征(Feature)
描述样本的属性或变量,是模型的输入。
标签(Label)
在监督学习中,样本对应的预测目标值(答案)。
训练集(Training Set)
用于训练模型的数据集合(含特征和标签)。
测试集(Test Set)
用于最终评估模型性能的、未参与训练的数据集合。
评估指标(Evaluation Metric)
量化衡量模型性能的标准(如准确率、误差)。
学习类型有监督学习
数据有特征和标签,学习特征到标签的映射。用于预测。
无监督学习
数据只有特征,学习数据内在结构或分组。用于发现。
半监督学习
部分数据有标签,结合大量无标签数据一起学习。
强化学习
智能体通过与环境交互,依奖励/惩罚学习策略。
关键流程特征工程
将原始数据转换为更能代表问题本质的特征的过程,至关重要。
常见问题过拟合(Overfitting)
模型在训练集上表现太好,在测试集上表现差

请在微信客户端打开

最新文章

随机文章