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

2022年全国大学生数学建模竞赛C题思路与程序

第一题考虑相关性,可行的方法很多,当然传统的感知机,决策树,随机森林都可以队表面风化与其玻璃类型、纹饰和颜色的关系进行分析,当然也可以从相关性上考虑,比如灰色关联,shapely等模型和一些基尼系数、两个相关系数等评估指标,或者采用最简单的MLP等神经网络隐式去拟合出判别函数,或者一些高级些的聚类分析等,后几问也类似,当然也可以用data mining的方法,比如提升树,lightboost、Xgboost等集成学习方法,当然由于数据太少了,不建议用DL或集成学习,往往最简单的model对付这种问题更不会那么容易overfitting,当然还是要看精准率召回率等等。
image.png

这里我已经搞好程序,从基本的感知机到逐步黑盒化的神经网络,完成了从数据清洗,数据分析与程序实现:
在这里插入图片描述

方法很多,
image.png

  • 感知机是二类分类的线性模型,属于判别模型

  • 感知机学习旨在求出将训练数据进行线性划分的分离超平面。是神经网络和支持向量机的基础

  • 损失函数选择

    • 损失函数的一个自然选择是误分类点的总数,但是,这样的损失函数不是参数 w , b w,b w,b的连续可导函数,不易优化
    • 损失函数的另一个选择是误分类点到超平面 S S S的总距离,这正是感知机所采用的
  • 感知机学习的经验风险函数(损失函数)
    L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b) L(w,b)=xiMyi(wxi+b)
    其中 M M M是误分类点的集合,给定训练数据集 T T T,损失函数 L ( w , b ) L(w,b) L(w,b) w w w b b b的连续可导函数

原始形式算法

输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } , x i ∈ R n , y i ∈ { + 1 , − 1 } , i = 1 , 2 , 3 , … , N ; 学习率 0 < η ⩽ 1 T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\},x_i\in R^n,y_i\in {\{+1,-1\}},i=1,2,3,\dots,N;学习率0<\eta\leqslant 1 T={(x1,y1),(x2,y2),,(xN,yN)},xiRn,yi{+1,1},i=1,2,3,,N;学习率0<η1

输出: w , b ; 感知机模型 f ( x ) = s i g n ( w ⋅ x + b ) w,b;感知机模型f(x)=sign(w\cdot x+b) w,b;感知机模型f(x)=sign(wx+b)

  1. 选取初值 w 0 , b 0 w_0,b_0 w0,b0

  2. 训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)

  3. 如果 y i ( w ⋅ x i + b ) ⩽ 0 y_i(w\cdot x_i+b)\leqslant 0 yi(wxi+b)0
    w ← w + η y i x i w\leftarrow w+\eta y_ix_i ww+ηyixi
    b ← b + η y i b\leftarrow b+\eta y_i bb+ηyi

  4. 转至(2),直至训练集中没有误分类点

  • 这个是原始形式中的迭代公式,可以对 x x x补1,将 w w w b b b合并在一起,合在一起的这个叫做扩充权重向量

对偶形式算法

  • 对偶形式的基本思想是 w w w b b b表示为实例 x i x_i xi和标记 y i y_i yi的线性组合的形式,通过求解其系数而求得 w w w b b b

输入: T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } , x i ∈ R n , y i ∈ { + 1 , − 1 } , i = 1 , 2 , 3 , … , N ; 学习率 0 < η ⩽ 1 T=\{(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)\},x_i\in R^n,y_i\in {\{+1,-1\}},i=1,2,3,\dots,N;学习率0<\eta\leqslant 1 T={(x1,y1),(x2,y2),,(xN,yN)},xiRn,yi{+1,1},i=1,2,3,,N;学习率0<η1

输出:
α , b ; 感知机模型 f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) , α = ( α 1 , α 2 , ⋯   , α N ) T \alpha ,b; 感知机模型f(x)=sign\left(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b\right), \alpha=(\alpha_1,\alpha_2,\cdots,\alpha_N)^T α,b;感知机模型f(x)=sign(j=1Nαjyjxjx+b),α=(α1,α2,,αN)T

  1. α ← 0 , b ← 0 ​ \alpha \leftarrow 0,b\leftarrow 0​ α0,b0​

  2. 训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)

  3. 如果 y i ( ∑ j = 1 N α j y j x j ⋅ x + b ) ⩽ 0 y_i\left(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b\right) \leqslant 0 yi(j=1Nαjyjxjx+b)0
    α i ← α i + η \alpha_i\leftarrow \alpha_i+\eta αiαi+η
    b ← b + η y i b\leftarrow b+\eta y_i bb+ηyi

  4. 转至(2),直至训练集中没有误分类点

  • Gram matrix

    对偶形式中,训练实例仅以内积的形式出现。

    为了方便可预先将训练集中的实例间的内积计算出来并以矩阵的形式存储,这个矩阵就是所谓的Gram矩阵
    G = [ x i ⋅ x j ] N × N G=[x_i\cdot x_j]_{N\times N} G=[xixj]N×N

具体实现与算法

请见https://mianbaoduo.com/o/bread/Y5eTmJ9w

相关文章:

  • `算法知识` 字符串哈希
  • 打造这样的“超级云APP”有什么优势?
  • 一篇文章带你理解Thread(多线程)的基础用法
  • harbor部署实录
  • 计算机毕业设计ssmEE的仓库管理系统93c6b系统+程序+源码+lw+远程部署
  • MySQL group by后取每个分组中最新一条数据
  • JVM:(十六)垃圾回收器
  • 节点流和处理流详解
  • MySQL binlog 数据恢复
  • ArcGIS中添加在线地图(影像图、街道图等)
  • Opencv图像模板匹配
  • c语言进阶: 指针的进阶(上)
  • python使用PIL模块加载图像、通过resize函数改变图像的大小、使用save函数保存处理过的图像
  • Python点云显示:open3d快速上手
  • vue转electron项目以及使用fs报错:Module not found: Error: Can‘t resolve ‘fs‘ in解决办法
  • [译]如何构建服务器端web组件,为何要构建?
  • 【技术性】Search知识
  • Akka系列(七):Actor持久化之Akka persistence
  • Django 博客开发教程 16 - 统计文章阅读量
  • JavaScript 基础知识 - 入门篇(一)
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • Python爬虫--- 1.3 BS4库的解析器
  • STAR法则
  • text-decoration与color属性
  • V4L2视频输入框架概述
  • 测试开发系类之接口自动化测试
  • 面试总结JavaScript篇
  • 如何选择开源的机器学习框架?
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 正则与JS中的正则
  • MyCAT水平分库
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (3)nginx 配置(nginx.conf)
  • (C++17) optional的使用
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (libusb) usb口自动刷新
  • (Note)C++中的继承方式
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转载)利用webkit抓取动态网页和链接
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET “底层”异步编程模式——异步编程模型(Asynchronous Programming Model,APM)...
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .Net 垃圾回收机制原理(二)
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • ??myeclipse+tomcat
  • [20150707]外部表与rowid.txt