当前位置: 首页 > news >正文

【深度学习与大模型基础】第13章-什么是机器学习

1. 什么是机器学习?

想象你在教一个小朋友认猫:

  • 传统编程:你写一本《猫的100条特征手册》(比如有胡须、尖耳朵),让计算机对照检查。

  • 机器学习:你直接给计算机看1000张猫和狗的图片,让它自己总结猫长什么样。
    👉 核心:计算机从数据中自己找规律,而不是靠人硬编码规则。


2. 算法的“学习方式”分类

(1) 监督学习(有参考答案)
  • 场景:像老师批改作业,数据带“正确答案”(标签)。

    • 例子:预测考试成绩

      • 输入:学习时间、游戏时间、睡眠时间

      • 输出:考试分数(标签)

    • 典型算法:线性回归(预测分数)、决策树(判断是否及格)

(2) 无监督学习(自己找规律)
  • 场景:像让计算机自己整理杂乱的书桌,数据没有标签。

    • 例子:超市顾客分组

      • 输入:购买记录(没有预设类别)

      • 输出:自动发现“宝妈群”“游戏宅群”等

    • 典型算法:K-means聚类(分群)、PCA(降维,类似“删掉冗余信息”)

(3) 强化学习(试错拿奖励)
  • 场景:像训练小狗,做对了给零食,做错了不鼓励。

    • 例子:AI玩贪吃蛇

      • 行为:左转/右转

      • 奖励:吃到苹果+1分,撞墙-1分

      • 目标:学会高分策略


3. 算法举例:用“挑西瓜”理解

假设我们要选一个甜西瓜:

  1. 决策树

    • 问题1:纹路深吗?深→继续问,浅→不甜

    • 问题2:敲声闷吗?闷→甜,脆→不甜
      (像一连串的“如果...就...”问题)

  2. 神经网络

    • 模仿人脑,同时考虑纹路、颜色、重量、产地…

    • 可能发现“纹深+蒂部凹陷”的组合最甜(自动学复杂规律)

  3. K近邻(KNN)

    • 看看隔壁老王买的5个相似西瓜,如果4个甜,就猜这个也甜
      (“近朱者赤”算法)


4. 为什么需要这么多算法?

  • 数据不同

    • 有标签?用监督学习。

    • 只有模糊数据?用无监督学习。

  • 问题复杂度

    • 简单规律(比如房价和面积线性相关)→ 线性回归

    • 复杂规律(比如人脸识别)→ 深度神经网络


5. 机器学习 vs 背公式?

  • 不是死记硬背:模型要在新数据上表现好(比如学了猫的特征后,能认出网红猫“橘座”)。

  • 避免“学傻了”:如果只给计算机看黑猫,它可能以为所有猫都是黑色的——这叫过拟合(考试满分但实际应用崩盘)。


6.python演示简单的机器学习

pip install numpy matplotlib scikit-learn

import numpy as np
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression# 设置随机种子(保证每次运行数据一致)
np.random.seed(42)# 生成数据:面积在30~100㎡,价格加入随机噪声
areas = np.random.randint(30, 100, 20)
prices = 1.5 * areas + 30 + np.random.normal(0, 10, len(areas))# 打印前5条数据for a, p in zip(areas[:5], prices[:5]):print(f"{a:6} | {p:.1f}")# 将数据转为二维数组(sklearn要求)
X = areas.reshape(-1, 1)  # 输入特征(面积)
y = prices                # 输出标签(价格)# 创建模型并训练
model = LinearRegression()
model.fit(X, y)# 打印学到的参数
print(f"模型公式:价格 = {model.coef_[0]:.2f} * 面积 + {model.intercept_:.2f}")# 绘制原始数据点
plt.scatter(areas, prices, color='blue', label='真实数据')# 绘制预测直线
predicted_prices = model.predict(X)
plt.plot(areas, predicted_prices, color='red', linewidth=2, label='预测模型')# 添加标注
plt.xlabel("房屋面积(㎡)")
plt.ylabel("价格(万元)")
plt.title("房屋价格预测(线性回归)")
plt.legend()
plt.grid(True)# 显示图形
plt.show()

相关文章:

  • CLIMB自举框架:基于语义聚类的迭代数据混合优化及其在LLM预训练中的应用
  • 量子跃迁:Vue组件安全工程的基因重组与生态免疫(完全体)
  • LeetCode热题100——283. 移动零
  • 计算机网络 第二章:应用层(三)
  • 1.6软考系统架构设计师:架构师的角色与能力要求 - 练习题附答案及超详细解析
  • audit审计
  • 蓝桥杯17. 机器人塔
  • 机器人雅克比Jacobian矩阵程序
  • leetcode-排序
  • 【鸿蒙HarmonyOS】深入理解router与Navigation
  • 从边缘到云端,如何通过时序数据库 TDengine 实现数据的全局洞
  • C语言五子棋项目
  • 【PostgreSQL教程】PostgreSQL 特别篇之 语言接口连接Perl
  • 体积小巧的 Word 转 PDF 批量工具
  • VMware中CentOS 7虚拟机设置固定IP(NAT模式)完整教程
  • HarmonyOS 是 Android 套壳嘛?
  • ubantu18.04(Hadoop3.1.3)Hive3.1.2安装指南
  • C++算法(15):INT_MIN/INT_MAX使用指南与替代方案
  • 网络原理 - 6
  • ActiveMQ 核心概念与消息模型详解(一)
  • “未来3天公布”,特朗普俄乌“和平计划”是什么?普京泽连斯基什么态度?
  • 禾赛:车载激光雷达走向标配,核心能力可在机器人领域复用
  • 清华成立教育学院:加快高层次人才培养、加强教育学科建设
  • 罗马教皇方济各去世
  • A股低开高走,震荡收涨:两市成交10414亿元,4360股收涨
  • 著名作家、中国艺术研究院原常务副院长曲润海逝世