(十二)机器学习 - 训练/测试

机器学习中的"训练/测试"是指使用机器学习算法从数据中学习模式的过程,并将学到的模型用于预测或分类新数据。这个过程通常分为两个主要阶段:训练阶段和测试阶段。

训练阶段(Training Phase):

  1. 数据准备:在训练阶段,首先需要收集和准备数据。这些数据被用来训练机器学习模型。数据通常包含多个特征(也称为属性或变量)和一个目标变量(机器学习模型试图预测的变量)。

  2. 模型选择:选择一个合适的机器学习算法或模型。常见的算法包括线性回归、决策树、支持向量机、神经网络等。

  3. 训练模型:使用训练数据集来训练所选的模型。在这个阶段,模型会学习数据中的模式和关系,以便能够对目标变量做出预测。

  4. 参数调优:通过调整模型的参数(超参数)来优化模型的性能。这通常通过交叉验证等技术来完成。

测试阶段(Testing Phase):

  1. 评估模型:一旦模型被训练和优化,它需要在一个新的数据集上进行测试,这个数据集被称为测试集。测试集包含了模型之前未见过的实例。

  2. 性能度量:使用各种评估指标来衡量模型在测试集上的性能,如准确率、精确率、召回率、F1分数、均方误差等。

  3. 模型验证:测试阶段的目的是验证模型的泛化能力,即模型对新数据的预测能力。如果模型在测试集上表现良好,那么可以认为它具有较好的泛化能力。

  4. 模型部署:经过测试验证后,模型可以被部署到实际应用中,用于处理真实世界的数据。

训练/测试数据集的划分:

  • 随机划分:最常见的方法是随机地将数据集划分为训练集和测试集,例如,80%的数据用于训练,20%用于测试。

  • 分层抽样:如果数据集中的类别分布不均衡,可以使用分层抽样确保训练集和测试集中各类别的比例与原始数据集相同。

  • 时间序列数据:对于时间序列数据,通常按照时间顺序进行划分,以确保模型能够正确处理时间依赖性。

数据集

例子:

数据集展示了商店中的 100 位顾客及其购物习惯。

python 复制代码
import numpy
import matplotlib.pyplot as plt
numpy.random.seed(2)

x = numpy.random.normal(3, 1, 100)
y = numpy.random.normal(150, 40, 100) / x

plt.scatter(x, y)
plt.show()

结果:

x 轴表示购买前的分钟数。

y 轴表示在购买上花费的金额。

拆分训练/测试

训练集应该是原始数据的 80% 的随机选择。

测试集应该是剩余的 20%。

复制代码
train_x = x[:80]
train_y = y[:80]

test_x = x[80:]
test_y = y[80:]

显示训练集

显示与训练集相同的散点图:

python 复制代码
plt.scatter(train_x, train_y)
plt.show()

结果:

它看起来像原始数据集,因此似乎是一个合理的选择:

显示测试集

为了确保测试集不是完全不同,我们还要看一下测试集。

python 复制代码
plt.scatter(test_x, test_y)
plt.show()

结果:

测试集也看起来像原始数据集:

拟合数据集

数据集是什么样的?我认为最合适拟合的是多项式回归,因此让我们画一条多项式回归线。

要通过数据点画一条线,我们使用 matplotlib 模块的 plott() 方法:

实例

绘制穿过数据点的多项式回归线:

python 复制代码
import numpy
import matplotlib.pyplot as plt
numpy.random.seed(2)

x = numpy.random.normal(3, 1, 100)
y = numpy.random.normal(150, 40, 100) / x

train_x = x[:80]
train_y = y[:80]

test_x = x[80:]
test_y = y[80:]

mymodel = numpy.poly1d(numpy.polyfit(train_x, train_y, 4))

myline = numpy.linspace(0, 6, 100)

plt.scatter(train_x, train_y)
plt.plot(myline, mymodel(myline))
plt.show()

结果:

此结果可以支持我们对数据集拟合多项式回归的建议,即使如果我们尝试预测数据集之外的值会给我们带来一些奇怪的结果。例如:该行表明某位顾客在商店购物 6 分钟,会完成一笔价值 200 的购物。这可能是过拟合的迹象。

相关推荐
阿坡RPA2 小时前
手搓MCP客户端&服务端:从零到实战极速了解MCP是什么?
人工智能·aigc
用户27784491049932 小时前
借助DeepSeek智能生成测试用例:从提示词到Excel表格的全流程实践
人工智能·python
机器之心2 小时前
刚刚,DeepSeek公布推理时Scaling新论文,R2要来了?
人工智能
算AI4 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
凯子坚持 c5 小时前
基于飞桨框架3.0本地DeepSeek-R1蒸馏版部署实战
人工智能·paddlepaddle
你觉得2055 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
8K超高清6 小时前
中国8K摄像机:科技赋能文化传承新图景
大数据·人工智能·科技·物联网·智能硬件
hyshhhh6 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
薛定谔的猫-菜鸟程序员6 小时前
零基础玩转深度神经网络大模型:从Hello World到AI炼金术-详解版(含:Conda 全面使用指南)
人工智能·神经网络·dnn
币之互联万物6 小时前
2025 AI智能数字农业研讨会在苏州启幕,科技助农与数据兴业成焦点
人工智能·科技