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

【深度学习与大模型基础】第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()

http://www.xdnf.cn/news/1478.html

相关文章:

  • CSGO 盲盒开箱系统技术实现深度解析
  • Spring Boot + MyBatis 动态字段更新方法
  • ToDesk远程开机设置指南(适用于HP台式机)
  • 网络安全零基础培训 L1-7 Web基础和CSS渲染
  • C++入门小馆: 探寻vector类
  • 配置 Nginx 的 HTTPS
  • 【已解决】Chrome开发工具栏无法看到React Developer Tools
  • Visium HD多样本拼片拆分
  • 基于 Skynet Cluster 模式的完整案例
  • 【TUST“码蹄杯”编程之星】4.23 每日一题
  • Spring Boot 请求参数接收控制指南
  • 有源晶振波形特性与测量分析
  • 【Deepseek学习大模型推理】MOONCAKE: A KVCache-centric Architecture 第一部分引言部分
  • Java 异常 SSLException: fatal alert: protocol_version 全解析与解决方案
  • 多智能体系统的中间件架构
  • 爬虫学习总结
  • 02.Python代码Pandas - Series全系列分享(使用.特点.说明.取值.函数)
  • AIGC vs 人类创作者:是竞争还是协作?
  • Python基础语法3
  • 模型量化核心技术解析:从算法原理到工业级实践
  • ActiveMQ 核心概念与消息模型详解(一)
  • 巴西快手kwai短视频广告代投游戏出海营销攻略
  • 基于SpringBoot的校园二手商品在线交易系统+含项目运行说明文档
  • SpringCloud 微服务复习笔记
  • 【k8s】LVS/IPVS的三种模式:NAT、DR、TUN
  • 从白平衡色温坐标系调整的角度消除硬件不一致性引起的偏色问题
  • springmvc入门案例
  • 【高频考点精讲】JavaScript中的访问者模式:从AST解析到数据转换的艺术
  • 游戏引擎学习第240天:将渲染器移至第三层
  • Android SDK 下载及配置 --- app笔记