数据挖掘技术与应用实验报告(二) —— 应用多元回归方程进行客运量预测的实例

一、实验目的

  1. 掌握二元线性回归模型的构建原理及参数估计方法。
  2. 熟悉最小二乘法在多元回归分析中的应用。
  3. 学会通过正规方程求解回归系数,并解释模型的经济意义。
  4. 理解模型的统计检验指标(如判定系数 R^2)及其应用。

二、实验内容

为了简明,下面以仅含两个自变量(人口数及城市 GDP)建立某城市水路客运量的二元线性回归预测模型问题为例,具体数据见下表。

表        1991—2002 年某城市的水路客运量、人口数及城市 GDP

序号 年份 水路客运量 y 市人口数 x1 城市 GDP x2
1 1991 342 520 211.9
### SNN中的损失函数 在Siamese神经网络(Siamese Neural Networks, SNN)中,常用的损失函数主要分为对比损失(Contrastive Loss)[^1] 和三元组损失(Triplet Loss)[^1]。 #### 对比损失 (Contrastive Loss) 对比损失用于衡量一对输入样本之间的相似度。如果两个输入属于同一类别,则希望它们在网络输出空间的距离尽可能小;反之则距离应较大。具体定义如下: 设\(d\)表示两输入特征向量间的欧氏距离,\(y\)为标签(相同类别的样本标记为0,不同类别标记为1),那么对比损失可以表达为: \[L(y,d)=\begin{cases} d^2 & \text{if } y=0 \\ (\max(margin-d, 0))^2 & \text{if } y=1 \end{cases}\] 其中`margin`是一个超参数,用来控制当样本不属于同一个类别时最小期望距离。 ```python def contrastive_loss(d, y, margin=1.0): return torch.mean((1-y) * torch.pow(d, 2) + y * torch.pow(torch.clamp(margin - d, min=0.0), 2)) ``` #### 三元组损失 (Triplet Loss) 不同于仅考虑成对数据的对比损失,三元组损失引入了一个额外的负样本来构建训练样本集——即对于每一个正样本,不仅需要找到一个来自同一个人的不同图像作为正样本,还需要找到来自其他人的图片作为负样本。其目的是拉近同类样本间距离的同时推远异类样本间距。形式化描述如下: 给定锚点(anchor),正样本(positive),以及负样本(negative),令 \(a,p,n\)分别代表这三种类型的嵌入(embedding),则有: \[ L(a, p, n) = max(\|f(a)-f(p)\|^2-\|f(a)-f(n)\|^2+\alpha ,0)\] 这里\(\alpha>0\)同样作为一个边界值来确保即使是最难区分的情况也能保持一定间隔。 ```python import tensorflow as tf def triplet_loss(y_true, embeddings, alpha=0.2): anchor, positive, negative = embeddings[0],embeddings[1],embeddings[2] pos_dist = tf.reduce_sum(tf.square(anchor - positive), axis=-1) neg_dist = tf.reduce_sum(tf.square(anchor - negative), axis=-1) basic_loss = pos_dist - neg_dist + alpha loss = tf.maximum(basic_loss, 0.0) return tf.reduce_mean(loss) ``` 通过上述两种方式之一或者组合使用,能够有效地导SNN学习到具有判别性的特征表示,在诸如人脸识别、签名验证等领域取得了良好的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李独爱秋

你的鼓励将是我加更的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值