AI

机器学习基础概念

前言​🔖


机器学习(Machine Learning)是人工智能(AI)的一个分支,它使计算机系统能够利用数据和算法自动学习和改进其性能。

机器学习是让机器通过经验(数据)来做决策和预测。

机器学习已经广泛应用于许多领域,包括推荐系统、图像识别、语音识别、金融分析等。

举个例子,通过机器学习,汽车可以学习如何识别交通标志、行人和障碍物,以实现自动驾驶。

  

🔹机器学习与传统编程的区别

传统编程机器学习
程序员编写明确的规则计算机从数据中学习规则
适用于问题明确、规则清晰的情况适用于复杂、规则难以明确的情况
例子:编写计算器程序例子:编写识别垃圾邮件的程序

  

  

🔹机器学习的三大要素

机器学习包含三个基本要素:

  • 数据:数据是机器学习的燃料,质量越高、数量越多的数据,通常能让模型学得越好。
    • 训练数据:用来教模型的数据
    • 测试数据:用来检验模型学习效果的数据
    • 真实数据:模型在实际应用中遇到的新数据
  • 算法:算法是机器学习的学习方法,不同的算法适用于不同类型的问题。
    • 监督学习:有标准答案的学习
    • 无监督学习:没有标准答案,自己找规律
    • 强化学习:通过试错和奖励来学习
  • 模型:模型是学习的结果,就像学生学到的知识一样。
    • 训练过程:算法从数据中学习规律
    • 推理过程:使用学到的规律做预测

  

🔹实例

接下来我们通过一个简单的例子来理解机器学习的基本流程。

我们将使用 Python 创建一个简单的线性回归模型来预测房价。

# 导入需要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
import seaborn as sns

# 设置图表风格,让图表更好看
sns.set_style("whitegrid")
# -------------------------- 设置中文字体 start --------------------------
plt.rcParams['font.sans-serif'] = [
    # Windows 优先
    'SimHei', 'Microsoft YaHei',
    # macOS 优先
    'PingFang SC', 'Heiti TC',
    # Linux 优先
    'WenQuanYi Micro Hei', 'DejaVu Sans'
]
# 修复负号显示为方块的问题
plt.rcParams['axes.unicode_minus'] = False
# -------------------------- 设置中文字体 end --------------------------

# 1. 准备数据
# 假设我们有房屋面积和对应的价格数据
# 房屋面积(平方米)
house_sizes = np.array([50, 60, 70, 80, 90, 100, 110, 120]).reshape(-1, 1)
# 房屋价格(万元)
house_prices = np.array([150, 180, 210, 240, 270, 300, 330, 360])

# 2. 创建并训练模型
# 创建线性回归模型
model = LinearRegression()
# 用数据训练模型(学习面积和价格之间的关系)
model.fit(house_sizes, house_prices)

# 3. 使用模型进行预测
# 预测 85 平方米的房屋价格
predicted_price = model.predict([[85]])
print(f"85 平方米的房屋预测价格:{predicted_price[0]:.2f} 万元")

# 4. 可视化结果
plt.scatter(house_sizes, house_prices, color='blue', label='实际数据')
plt.plot(house_sizes, model.predict(house_sizes), color='red', label='预测线')
plt.scatter([85], predicted_price, color='green', s=100, label='预测点')
plt.xlabel('房屋面积(平方米)')
plt.ylabel('房屋价格(万元)')
plt.title('RUNOOB 机器学习测试 -- 房屋面积与价格关系')
plt.legend()
plt.grid(True)
plt.show()

这个例子展示了机器学习的基本流程:

  1. 准备数据(房屋面积和价格)
  2. 选择算法(线性回归)
  3. 训练模型(让计算机学习面积和价格的关系)
  4. 使用模型预测(预测新面积的价格)

输出的图如下:

  

机器学习简介🔖


机器学习(Machine Learning)是人工智能(AI)的一个分支,它使计算机系统能够利用数据和算法自动学习和改进其性能。

机器学习是一个不断发展的领域,它正在改变我们与技术的互动方式,并为解决复杂问题提供了新的工具和方法。

机器学习是让计算机通过数据进行学习的一种技术,广泛应用于各行各业。

想象一下,你正在教一个小孩认识各种动物,你不需要告诉他”所有猫都有两只耳朵、四条腿、胡须…”这样复杂的规则,而是给他看很多猫的照片,告诉他”这是猫”,慢慢地,这个小孩就能自己认出以前没见过的猫了。

机器学习就是这样一种让计算机学习的方法:我们不直接编写复杂的规则,而是让计算机从大量数据中自动找出规律和模式。

  

机器学习是如何工作的?🔖


机器学习通过让计算机从大量数据中学习模式和规律来做出决策和预测。

  • 首先,收集并准备数据,然后选择一个合适的算法来训练模型。
  • 然后,模型通过不断优化参数,最小化预测错误,直到能准确地对新数据进行预测。
  • 最后,模型部署到实际应用中,实时做出预测或决策,并根据新的数据进行更新。

机器学习是一个迭代过程,可能需要多次调整模型参数和特征选择,以提高模型的性能。

下面这张图展示了机器学习的基本流程:

  1. Labeled Data(标记数据)::图中蓝色区域显示了标记数据,这些数据包括了不同的几何形状(如六边形、正方形、三角形)。
  2. Model Training(模型训练)::在这个阶段,机器学习算法分析数据的特征,并学习如何根据这些特征来预测标签。
  3. Test Data(测试数据)::图中深绿色区域显示了测试数据,包括一个正方形和一个三角形。
  4. Prediction(预测)::模型使用从训练数据中学到的规则来预测测试数据的标签。在图中,模型预测了测试数据中的正方形和三角形。
  5. Evaluation(评估)::预测结果与测试数据的真实标签进行比较,以评估模型的准确性。

  

机器学习的工作流程可以大致分为以下几个步骤:

  • 1. 数据收集
    • 收集数据:这是机器学习项目的第一步,涉及收集相关数据。数据可以来自数据库、文件、网络或实时数据流。
    • 数据类型:可以是结构化数据(如表格数据)或非结构化数据(如文本、图像、视频)。
  • 2. 数据预处理
    • 清洗数据:处理缺失值、异常值、错误和重复数据。
    • 特征工程:选择有助于模型学习的最相关特征,可能包括创建新特征或转换现有特征。
    • 数据标准化/归一化:调整数据的尺度,使其在同一范围内,有助于某些算法的性能。
  • 3. 选择模型
    • 确定问题类型:根据问题的性质(分类、回归、聚类等)选择合适的机器学习模型。
    • 选择算法:基于问题类型和数据特性,选择一个或多个算法进行实验。
  • 4. 训练模型
    • 划分数据集:将数据分为训练集、验证集和测试集。
    • 训练:使用训练集上的数据来训练模型,调整模型参数以最小化损失函数。
    • 验证:使用验证集来调整模型参数,防止过拟合。
  • 5. 评估模型
    • 性能指标:使用测试集来评估模型的性能,常用的指标包括准确率、召回率、F1分数等。
    • 交叉验证:一种评估模型泛化能力的技术,通过将数据分成多个子集进行训练和验证。
  • 6. 模型优化
    • 调整超参数:超参数是学习过程之前设置的参数,如学习率、树的深度等,可以通过网格搜索、随机搜索或贝叶斯优化等方法来调整。
    • 特征选择:可能需要重新评估和选择特征,以提高模型性能。
  • 7. 部署模型
    • 集成到应用:将训练好的模型集成到实际应用中,如网站、移动应用或软件中。
    • 监控和维护:持续监控模型的性能,并根据新数据更新模型。
  • 8. 反馈循环
    • 持续学习:机器学习模型可以设计为随着时间的推移自动从新数据中学习,以适应变化。

机器学习的工作流程是迭代的,可能需要多次调整和优化以达到最佳性能。此外,随着数据的积累和算法的发展,机器学习模型可以变得更加精确和高效。

  

机器学习的类型🔖


机器学习主要分为以下三种类型:

机器学习主要分为以下三种类型:

  • 监督学习(Supervised Learning)
    • 定义: 监督学习是指使用带标签的数据进行训练,模型通过学习输入数据与标签之间的关系,来做出预测或分类。
    • 应用: 分类(如垃圾邮件识别)、回归(如房价预测)。
    • 例子: 线性回归、决策树、支持向量机(SVM)。
  • 无监督学习(Unsupervised Learning)
    • 定义: 无监督学习使用没有标签的数据,模型试图在数据中发现潜在的结构或模式。
    • 应用: 聚类(如客户分群)、降维(如数据可视化)。
    • 例子: K-means 聚类、主成分分析(PCA)。
  • 强化学习(Reinforcement Learning)
    • 定义: 强化学习通过与环境互动,智能体在试错中学习最佳策略,以最大化长期回报。每次行动后,系统会收到奖励或惩罚,来指导行为的改进。
    • 应用: 游戏AI(如AlphaGo)、自动驾驶、机器人控制。
    • 例子: Q-learning、深度Q网络(DQN)。

这三种机器学习类型各有其应用场景和优势,监督学习适用于有明确标签的数据,无监督学习适用于探索数据内在结构,而强化学习适用于需要通过试错来学习最优策略的场景。

  

机器学习项目生命周期🔖


机器学习项目就像建造一座房子,需要从设计图纸到施工再到验收的完整过程,每个环节都至关重要,缺一不可。

机器学习流程的六个核心阶段

  1. 问题定义:明确要解决什么问题
  2. 数据收集:获取相关数据
  3. 数据准备:清洗和预处理数据
  4. 模型训练:选择算法并训练模型
  5. 模型评估:评估模型性能
  6. 模型部署:将模型投入使用

  

🔹第一阶段:问题定义

明确业务问题:问题定义是机器学习项目最重要的起点,就像导航前需要明确目的地一样。

  • 我们要解决什么问题?
    • 分类问题:判断邮件是否为垃圾邮件
    • 回归问题:预测房价
    • 聚类问题:客户分群
    • 异常检测:发现信用卡欺诈
  • 为什么这个问题重要?
    • 业务价值:提高效率、降低成本、增加收入
    • 用户价值:改善体验、提供个性化服务
  • 成功的标准是什么?
    • 量化指标:准确率达到 90% 以上
    • 业务指标:转化率提升 20%

  

🔹第二阶段:数据收集

数据来源: 数据是机器学习的燃料,没有合适的数据再好的算法也无法发挥作用。

  • 常见数据来源
    • 内部数据:公司业务数据、用户行为数据
    • 外部数据:公开数据集、第三方数据服务
    • 网络爬虫:网页数据、社交媒体数据
    • 传感器数据:IoT 设备、监控系统

  

🔹第三阶段:数据准备
数据准备的重要性:数据准备占机器学习项目 60-80% 的时间,就像做菜前的准备工作一样重要。

  • 数据准备的主要任务
    • 数据清洗:处理缺失值、异常值、重复值
    • 特征工程:创建新特征、选择重要特征
    • 数据转换:标准化、归一化、编码
    • 数据划分:训练集、验证集、测试集

  

🔹第四阶段:模型训练
模型选择策略:选择合适的模型是成功的关键,就像选择合适的工具来完成工作一样。

  • 模型选择考虑因素
    • 问题类型:分类、回归、聚类等
    • 数据特征:数据量、特征数量、数据类型
    • 性能要求:准确率、速度、可解释性
    • 资源约束:计算资源、时间限制

  

🔹第五阶段:模型评估
评估指标选择:选择合适的评估指标就像选择合适的尺子,不同的指标适用于不同的场景。

常见评估指标:

  • 分类问题:
    • 准确率(Accuracy):正确预测的比例
    • 精确率(Precision):预测为正的样本中真正为正的比例
    • 召回率(Recall):实际为正的样本中被正确预测为正的比例
    • F1 分数:精确率和召回率的调和平均
  • 回归问题:
    • 均方误差(MSE):预测值与真实值差的平方的平均
    • 均方根误差(RMSE):MSE 的平方根
    • 平均绝对误差(MAE):预测值与真实值差的绝对值的平均
    • R² 分数:模型解释的方差比例

  

🔹第六阶段:模型部署
部署策略:模型部署是将模型投入实际使用的过程,就像将研发的产品推向市场一样。

  • 部署方式
    • 批量预测:定期处理大量数据
    • 实时预测:在线服务,即时响应
    • 嵌入式部署:将模型集成到现有系统
    • 边缘部署:在设备端运行模型

  

机器学习如何工作🔖


机器学习(Machine Learning, ML)的核心思想是让计算机能够通过数据学习,并从中推断出规律或模式,而不依赖于显式编写的规则或代码。

简单来说,机器学习的工作流程是让机器通过历史数据自动改进其决策和预测能力。

机器学习的工作流程可以简化为以下几个步骤:

  • 收集数据:准备包含特征和标签的数据。
  • 选择模型:根据任务选择合适的机器学习算法。
  • 训练模型:让模型通过数据学习模式,最小化误差。
  • 评估与验证:通过测试集评估模型性能,并进行优化。
  • 部署模型:将训练好的模型应用到实际场景中进行预测。
  • 持续改进:随着新数据的产生,模型需要定期更新和优化。

这个过程能够让计算机从经验中自动学习,并在各种任务中做出越来越准确的预测。

我们可以从以下几个方面来理解机器学习是如何工作的:

  • 数据输入:数据是学习的基础:机器学习的第一步是数据收集。没有数据,机器学习模型无法进行训练。数据通常包括”输入特征”和”标签”:
    • 输入特征(Features): 这些是模型用来做预测或分类的信息。例如,在房价预测问题中,输入特征可以是房子的面积、地理位置、卧室数量等。
    • 标签(Labels): 标签是我们想要预测或分类的结果,通常是一个数字或类别。例如,在房价预测问题中,标签是房子的价格。
    • 机器学习模型的目标是从数据中找出输入特征与标签之间的关系,基于这些关系做出预测。

  

  • 模型选择:选择合适的学习算法:机器学习模型(也叫做算法)是帮助计算机学习数据并进行预测的工具。根据数据的性质和任务的不同,常见的机器学习模型包括:
    • 监督学习模型: 给定带有标签的数据,模型通过学习输入和标签之间的关系来做预测。例如,线性回归、逻辑回归、支持向量机(SVM) 和 决策树。
    • 无监督学习模型: 没有标签的数据,模型通过探索数据中的结构或模式来进行学习。例如,K-means 聚类、主成分分析(PCA)。
    • 强化学习模型: 模型在与环境互动的过程中,通过奖励和惩罚来学习最佳行为。例如,Q-learning、深度强化学习(Deep Q-Networks, DQN)。

  

  • 训练过程:让模型从数据中学习:在训练阶段,模型通过历史数据”学习”输入和标签之间的关系,通常通过最小化一个损失函数(Loss Function)来优化模型的参数。训练过程可以概括为以下步骤:
    • 初始状态: 模型从随机值开始。比如,神经网络的权重是随机初始化的。
    • 计算预测: 对于每个输入,模型会做出一个预测。这是通过将输入数据传递给模型,计算得到输出。
    • 计算误差(损失): 误差是指模型预测的输出与实际标签之间的差异。例如,对于回归问题,误差可以通过均方误差(MSE)来衡量。
    • 优化模型: 通过反向传播(在神经网络中)或梯度下降等优化算法,不断调整模型的参数(如神经网络的权重),使得误差最小化。这个过程就是训练,直到模型能够在训练数据上做出比较准确的预测。

  

  • 验证与评估:测试模型的性能训练过程完成后,我们需要评估模型的性能。为了避免模型过度拟合训练数据,我们将数据分为训练集和测试集,其中
    • 训练集: 用于训练模型的部分数据。
    • 测试集: 用于评估模型性能的部分数据,通常不参与训练过程。
  • 常见的评估指标包括:
    • 准确率(Accuracy): 分类问题中正确分类的比例。
    • 均方误差(MSE): 回归问题中,预测值与真实值差的平方的平均值。
    • 精确率(Precision)与召回率(Recall): 用于二分类问题,尤其是类别不平衡时。
    • F1分数: 精确率与召回率的调和平均数,综合考虑分类器的表现。

  

  • 优化与调整:提高模型的精度,如果模型在测试集上的表现不理想,可能需要进一步优化。这通常包括:
    • 调整超参数(Hyperparameters): 比如学习率、正则化系数、树的深度等。这些超参数影响模型的学习能力。
    • 模型选择与融合: 尝试不同的模型或模型融合(比如集成学习方法,如随机森林、XGBoost 等)来提高精度。
    • 数据增强: 扩展训练数据集,比如对图像进行旋转、翻转等操作,帮助模型提高泛化能力。

  

  • 模型部署与预测:实际应用,一旦模型在训练和测试数据上表现良好,就可以将模型部署到实际应用中:
    • 模型部署: 将训练好的模型嵌入到应用程序、网站、服务器等系统中,供用户使用。
    • 实时预测: 在实际环境中,新的数据输入到模型中,模型根据之前学习到的模式进行实时预测或分类。

  

  • 持续学习与模型更新:
    • 机器学习系统通常不是一次性完成的。在实际应用中,随着时间的推移,新的数据会不断产生,因此,模型需要定期更新和再训练,以保持其预测能力。这可以通过在线学习、迁移学习等方法来实现。