2021美赛C题思路(机器学习算法求解)

一.题目概览

问题C:确认关于黄蜂的传言2019年9月,在加拿大不列颠哥伦比亚省的温哥华岛上发现了胡蜂(Vespa mandarinia,又称亚洲大黄蜂)的殖民地。鸟巢很快被摧毁,但这一事件的消息迅速传遍了整个地区。从那时起,在邻近的华盛顿州发生了几次确认的害虫目击事件,以及大量的错误目击事件。下面的图1显示了探测、大黄蜂手表和公众目击的地图。2021美赛C题思路(机器学习算法求解)_第1张图片2021美赛C题思路(机器学习算法求解)_第2张图片胡蜂(Vespa mandarinia)是世界上最大的黄蜂种类,其巢的出现令人震惊。此外,大黄蜂是欧洲蜜蜂的掠食者,入侵并破坏它们的巢穴。少量的黄蜂能够在短时间内摧毁整个欧洲蜜蜂群落。同时,它们是被认为是农业害虫的其他昆虫的贪婪的掠食者。大黄蜂的生命周期与其他许多黄蜂相似。受精后在春天出现,并开始一个新的群体。秋天,新蜂王离开巢,在土里过冬,等待春天的到来。一只新蜂王的筑巢距离估计为30公里。有关亚洲黄蜂的更多详细信息,请参见问题附件,也可以在网上找到。由于胡蜂对当地蜜蜂种群的潜在严重影响,胡蜂的存在会引起很大的焦虑。华盛顿州已经建立了帮助热线和一个网站,供人们报告这些黄蜂的目击情况。根据这些来自公众的报告,国家必须决定如何将其有限的资源优先用于后续补充调查。虽然一些报告已被确定为胡蜂,许多其他目击已证明是其他类型的昆虫。这个问题的主要问题是“我们如何解释公共报告提供的数据?以及“在政府机构资源有限的情况下,我们可以采用什么策略来优先考虑这些公开报告,以便进行进一步的调查?你的论文应该探讨和解决以下几个方面:•解决并讨论是否可以预测这种有害生物随时间的传播,以及准确度如何。•大多数报道的目击都把其他黄蜂误认为是胡蜂。仅使用提供的数据集文件和(可能)提供的图像文件来创建、分析和讨论预测错误分类可能性的模型。•利用你的模型讨论你的分类分析如何导致优先调查最有可能是正面目击的报告。•说明随着时间的推移,如果有其他新报告,如何更新模型,以及更新的频率。•**利用你的模型,有什么证据可以证明华盛顿州已经消灭了这种有害生物?**最后,你的报告应该包括一份两页的备忘录,总结你在华盛顿州农业部的调查结果 附件 针对这个问题,我们提供了以下四种材料。提供的数据文件 包含此问题应使用的唯一数据。 维斯帕曼达里尼亚.pdf 来自宾夕法尼亚州立大学的背景资料描述了这种昆虫。 数据集.xlsx 包含4440份目击报告的电子表格,包含以下字段: GlobalID:每个目击记录的唯一标签。 Detection Date发现日期:报告的发现日期。 注:报告提交人的意见。这可以是公众,或者偶尔是政府雇员。 Lab Status实验室状况:美国国务院对目击事件的官方分类 经过分析。身份证阳性意味着这是一只亚洲大黄蜂。 否定的ID意味着它被排除在外。未处理意味着它还没有被分类。 未核实意味着由于缺乏信息而没有作出决定。 Lab Comments实验室评论:国家昆虫学实验室分析后添加到记录中的内容。 提交日期:向国家提交报告的日期。这个日期可以是在检测日期之后。纬度:这些数据是由国家在转换报告提供的地址后提供的。经度:这些数据是由国家在转换报告提供的地址后提供的。

一句话概括:
**题目核心总结起来就是根据现有的少量正样本(20+张)黄蜂图片和大量负样本(5000张)图片进行的图像分类和传播预测。
**

二.分析过程

1.经验表明,训练数据中每个类别有5000个以上样本,其实也要相对于特征而言,来判断样本数目是不是足够,数据量是足够的,正负样本差一个数量级以内是可以接受的,不太需要考虑数据不平衡问题,本题显然20:5000的比例过于悬殊,直接放入预训练好的分类神经网络模型极易引起过拟合
2.可以尝试用采样法减少正负样本集之间的差异
采样分为上采样(Oversampling)和下采样(Undersampling),上采样是把小众类复制多份,下采样是从大众类中剔除一些样本,或者说只从大众类中选取部分样本。

随机采样最大的优点是简单,但缺点也很明显。上采样后的数据集中会反复出现一些样本,训练出来的模型会有一定的过拟合;而下采样的缺点显而易见,那就是最终的训练集丢失了数据,训练出的模型bias太大,导致欠拟合

上采样会把小众样本复制多份,一个点会在高维空间中反复出现,这会导致一个问题,那就是运气好就能分对很多点,否则分错很多点。为了解决这一问题,可以在每次生成新数据点时加入轻微的随机扰动,经验表明这种做法非常有效。
下采样的问题是每次只选取了全体负类样本中的部分样本,导致学到的只是原分布的局部;
因为下采样会丢失信息,减少信息丢失的方法主要有以下几种:

第一种方法叫做EasyEnsemble,利用模型融合的方法(Ensemble):多次下采样(放回采样,这样产生的训练集才相互独立)产生多个不同的训练集,进而训练多个不同的分类器,通过组合多个分类器的结果得到最终的结果;
第二种方法叫做BalanceCascade,利用增量训练的思想(Boosting):先通过一次下采样产生训练集,训练一个分类器,对于那些分类正确的大众样本不放回,然后对这个更小的大众样本下采样产生训练集,训练第二个分类器,以此类推,最终组合所有分类器的结果得到最终结果,也叫集成学习;
第三种方法是利用KNN试图挑选那些最具代表性的大众样本,叫做NearMiss,这类方法计算量很大,且本题显然不适用,因为负样本种类太多;

3.尝试用One Class Learning算法解决问题
在深度学习中广泛使用的自编码算法可以应用在单分类的问题上,自编码是一个BP神经网络,网络输入层和输出层是一样,中间层数可以有多层,中间层的节点个数比输出层少,最简单的情况就是中间只有一个隐藏层,如下图所示,由于中间层的节点数较少,这样中间层相当于是对数据进行了压缩和抽象,实现无监督的方式学习数据的抽象特征。
  如果我们只有正样本数据,没有负样本数据,或者说只关注学习正样本的规律,那么利用正样本训练一个自编码器,编码器就相当于单分类的模型,对全量数据进行预测时,通过比较输入层和输出层的相似度就可以判断记录是否属于正样本。由于自编码采用神经网络实现,可以用GPU来进行加速计算,因此比较适合海量数据的场景。

而OneClassClassification,它只有一个类,属于该类就返回结果“是”,不属于就返回结果“不是”。一分类与二分类算法区别就是在二分类问题中,训练集中就由两个类的样本组成,训练出的模型是一个二分类模型;而OneClassClassification中的训练样本只有一类,因此训练出的分类器将不属于该类的所有其他样本判别为“不是”即可,而不是由于属于另一类才返回“不是”的结果。

现实场景中的OneCLassClassification例子:现在有一堆某商品的历史销售数据,记录着买该产品的用户信息,此外还有一些没有购买过该产品的用户信息,想通过二分类来预测他们是否会买该产品,也就是两个类,一类是“买”,一类是“不买”。当我们要开始训练二分类器的时候问题来了,一般来说没买的用户数会远远大于已经买了的用户数,当将数据不均衡的正负样本投入训练时,训练出的分类器会有较大的bisa(偏向值)。因此,这时候就可以使用OneClassClassification 方法来解决,即训练集中只有已经买过该产品的用户数据,在识别一个新用户是否会买该产品时,识别结果就是“会”或者“不会”。

三.实验设计

因计算资源有限,先使用下采样方法处理数据,后使用OneCLassClassification方法进行图像分类,模型采用MobiNetV3的预训练模型,采用ImageNet数据集格式处理数据,设置正样本(1, positive)为一分类分类结果,负样本(0,others)为非正样本结果。
实验数据如下:
XXXXXXXXXXXXXXXXXXXXXXXXXXXX

参考内容:https://www.cnblogs.com/wj-1314/p/10701708.html
https://www.zhihu.com/question/27408423
https://www.zhihu.com/search?q=2021%E7%BE%8E%E8%B5%9Bc%E9%A2%98&utm_content=search_suggestion&type=content

你可能感兴趣的:(深度学习,神经网络,机器学习,深度学习)