Django web开发(一) - 前端

文章目录 前端开发1.快速开发网站2.标签2.1 编码2.2 title2.3 标题2.4 div和span2.5 超链接2.6 图片小结标签的嵌套2.7 列表2.8 表格2.9 input系列2.10 下拉框2.11 多行文本用户注册案例: 用户注册GET 方式POST 方式表单数据提交优化 3.CSS样式3.1 快速上手3.2 CSS应用方式1. 在标签上2. 在 head 标签的 style 上3. 写到文件中 3.3 选择器1. ID选择器2. 类选择器3. 标签选择器4. 属性选择器5. 后代选择器关于样式的覆盖问题 3.4 样式1. 高度和宽度2. 块级和行内标签3. 字体和对齐方式4. 浮动5. 内边距6. 外边距7. hover8. after9. position9.1 fixed9.2 relative和absolute 10. border11. 背景色 4.案例: 小米商城4.1 小米顶部4.2 二级菜单4.3 推荐区域 5. Bootstrap5.1 初识Bootstrap5.2 栅格系统5.3 container5.4 面板5.5 媒体对象5.6 分页案例: 登录案例: 后台管理5.7 图标优化5.8 Bootstrap实现动态效果 6. Javascript6.1 代码位置6.2 注释6.

Vue 中 forEach() 的使用

forEach() 是前端开发中操作数组的一种方法,主要功能是遍历数组,其实就是 for 循环的升级版,该语句需要有一个回调函数作为参数。回调函数的形参依次为:1、value:遍历数组的内容;2、index:对应数组的索引,3、array:数组自身。 在 Vue 项目中,标签里的循环使用 v-for,方法里面的循环使用 forEach。 forEach() 使用原理 forEach() 方法主要是用于调用数组的每个元素,并将元素传递给回调函数。需要注意的是 : forEach() 方法对于空数组是不会执行回调函数的。 forEach:即 Array.prototype.forEach,只有数组才有的方法,相当于 for 循环遍历数组。 用法:arr.forEach(function(item,index,array){…}),其中回调函数有 3 个参数,item 为当前遍历到的元素,index 为当前遍历到的元素下标,array 为数组本身。 forEach 方法不会跳过 null 和 undefined 元素。比如数组[1,undefine,null,,2]中的四个元素都将被遍历到,注意与 map 的区别。 forEach() 语法 例子: array.forEach(function(item,index,array) { ... }) forEach() 其他相关内容 ①forEach()的 continue 和 break:forEach() 自身不支持 continue 和 break 语句的,但是可以通过 some 和 every 来实现。 ②forEach()与 map 的区别: forEach()没有返回值,性质上等同于 for 循环,对每一项都执行 function 函数。即 map 是返回一个新数组,原数组不变,而 forEach 是改变原数组。 ③forEach()与 for 循环的对比:for 循环步骤多比较复杂,forEach 循环比较简单好用,不易出错。

拓扑排序 (算法思想+图解+模板+练习题)

拓扑排序 有向无环图一定是拓扑序列,有向有环图一定不是拓扑序列。 无向图没有拓扑序列。 首先我们先来解释一下什么是有向无环图: 有向就是我们两个结点之间的边是有方向的,无环的意思就是整个序列中没有几个结点通过边形成一个圆环。 下图就是一个有向无环图,它也一定是拓扑序列。 下图就是有向有环图: 拓扑序列: 首先我们引入度的概念: 对于有向图每个结点都有入度和出度,入度就是指向该结点的边数,出度就是该结点指向其他结点的边数。 如第一个图: A的入度为0,出度为2; B的入度为1,出度为1; C的入度为1,出度为1; D的入度为2,出度为0; 总结一下拓扑排序就是只有从前指向后的边,没有从后指向前的边。 如果是一个有向无环图,那么一定有一个点的入度为0,如果找不到一个入度为0的点,这个图一定是带环的。 拓扑排序满足:每条边(x,y),x在序列中都在y前面。 拓扑排序的思路: 一个有向图,如果图中有入度为 0 的点,就把这个点删掉,同时也删掉这个点所连的边。 一直进行上面出处理,如果所有点都能被删掉,则这个图可以进行拓扑排序。 我们画图来解释一下: 首先我们的有向无环图是这样的: 我们发现A的入度为0,那么A就可以作为源点(不会有边在它前面),然后删除A和A上所连的边,如下图: 然后我们发现B和C的入度都是0,那么同样删除B,C和B,C上所连的边,如下图: 然后D的入度为0,我们同样操作,最后图被删除干净,证明可以拓扑排序。 解题思路 首先记录各个点的入度 然后将入度为 0 的点放入队列 将队列里的点依次出队列,然后找出所有出队列这个点发出的边,删除边,同时边的另一侧的点的入度 -1。 如果所有点都进过队列,则可以拓扑排序,输出所有顶点。否则输出-1,代表不可以进行拓扑排序。 我们先来看一下拓扑排序的模板: 时间复杂度 O(n+m), n表示点数,m表示边数。 bool topsort() { int hh = 0, tt = -1; // d[i] 存储点i的入度 for (int i = 1; i <= n; i ++ ) if (!d[i]) q[ ++ tt] = i; while (hh <= tt) { int t = q[hh ++ ]; for (int i = h[t]; i !

YOLOv8训练自己的数据集(超详细)

一、准备深度学习环境 本人的笔记本电脑系统是:Windows10 YOLO系列最新版本的YOLOv8已经发布了,详细介绍可以参考我前面写的博客,目前ultralytics已经发布了部分代码以及说明,可以在github上下载YOLOv8代码,代码文件夹中会有requirements.txt文件,里面描述了所需要的安装包。 本文最终安装的pytorch版本是1.8.1,torchvision版本是0.9.1,python是3.7.10,其他的依赖库按照requirements.txt文件安装即可。 然后还需要安装ultralytics,目前YOLOv8核心代码都封装在这个依赖包里面,可通过以下命令安装 pip install ultralytics 二、 准备自己的数据集 本人在训练YOLOv8时,选择的数据格式是VOC,因此下面将介绍如何将自己的数据集转换成可以直接让YOLOv8进行使用。 1、创建数据集 我的数据集都在保存在mydata文件夹(名字可以自定义),目录结构如下,将之前labelImg标注好的xml文件和图片放到对应目录下 mydata …images # 存放图片 …xml # 存放图片对应的xml文件 …dataSet #之后会在Main文件夹内自动生成train.txt,val.txt,test.txt和trainval.txt四个文件,存放训练集、验证集、测试集图片的名字(无后缀.jpg) 示例如下: mydata文件夹下内容如下: image为VOC数据集格式中的JPEGImages,内容如下: xml文件夹下面为.xml文件(标注工具采用labelImage),内容如下: dataSet 文件夹下面存放训练集、验证集、测试集的划分,通过脚本生成,可以创建一个split_train_val.py文件,代码内容如下: # coding:utf-8 import os import random import argparse parser = argparse.ArgumentParser() # xml文件的地址,根据自己的数据进行修改 xml一般存放在Annotations下 parser.add_argument('--xml_path', default='xml', type=str, help='input xml label path') # 数据集的划分,地址选择自己数据下的ImageSets/Main parser.add_argument('--txt_path', default='dataSet', type=str, help='output txt label path') opt = parser.parse_args() trainval_percent = 1.0 train_percent = 0.9 xmlfilepath = opt.

yolov5s模型剪枝详细过程(v6.0)

本文参考github上大神的开源剪枝项目进行学习与分享,具体链接放在文后,希望与大家多多交流! 一、原模型训练 在官方源码上训练yolov5模型,支持v6.0分支的n/s/m/l模型,我这里使用的是v5s,得到后将项目clone到本机上 git clone https://github.com/midasklr/yolov5prune.git cd进入文件夹后,新建runs文件夹,将训练好的模型放入runs/your_train/weights/xxx.pt,我的原模型map0.5:0.95为0.84左右,模型与data.yaml设置好后可以进行稀疏化训练了。 二、稀疏化训练 python train_sparity.py --st --sr 0.0002 --weights yolov5s.pt --data data/your_data.yaml --epochs 100 --imgsz 512 --adam ... 注意:1、若原模型训练时未使用adam,则这里也不要使用adam。2:data.yaml文件改成自己的数据集文件。3:这里sr参数为稀疏化系数,具体值为多少根据不同的数据集和模型,一般设置不一样,需要自己多试试,比如我的是单类别目标检测,设置为0.0002时几乎不变化(如下图)。 这里我们cd到runs文件夹路径,然后输入tensorboard实时监看训练过程,logdir也指向runs文件夹即可,然后打开网页输入你的ip,端口号一般为6006,比如192.168.xx.xx:6006就可以监看。 tensorboard --logdir=/home/user2/yinjiacheng/pytorch-ssd/pytorch-ssd/runs --host=0.0.0.0 这个直方图的纵轴代表训练次数(从上往下训练次数增加),横轴的峰值应随着训练次数不断逼近0轴,代表着大多数bn已经变得稀疏,而出现下图这个情况或者稀疏过慢(逼近0轴的过程缓慢)时,代表sr值应该适量增大。 所以我调整了sr为0.02,但此时bn收敛过快,且mAP下降严重,如下图所示,表示sr值调的过大了,需要适当减少,直至直方图逼近0轴的同时,mAP与原模型相差不大。 然后我将sr值调整为0.01,此时的bn直方图与mAP0.5曲线如下图所示: 可以看出bn直方图往0轴逼近的速度不是太快也不是太慢(好像在说废话),而mAP虽然有掉点但还是可以接受,最后可以finetune回来一些,所以可以选择这一稀疏化模型进行下一步的剪枝。 三、剪枝 python prune.py --percent 0.5 --weights runs/train/exp/weights/last.pt --data data/your_data.yaml --cfg models/yolov5s.yaml 这里percent参数是剪枝比例,weights选择刚刚训练好的稀疏化模型,cfg选择你使用的yaml即可,剪枝完成后主文件夹下会出现pruned_model.pt文件,这就是剪枝后的模型,但会发现怎么模型大小下降的不多,因为它还是FP32精度的,而我们yolov5训练完成后的模型为FP16精度,所以其实大小还是下降挺多的(最后我微调后得到的是5.8M,而原模型为13.6M)。 四、微调 python finetune_pruned.py --weights pruned_model.pt --data data/your_data.yaml --epochs 150 --imgsz 320 --adam 这里还是一样,若前面没有使用adam则这里也不要用,imgsz调成自己的输出尺寸,200个epoch还是finetune回来不少的。 最后我获得的模型为5.48M,参数量Param为2.74M,输入尺寸为320*320时FLOPs为2.17G,比原模型大小13.6M,FLOPs为3.9G明显减小。 五、detect 该项目中的detect.py和detectpruned.py代码有些问题,大家可以把微调后的pt模型放到官方项目中去detect,但有几点需要改。 现在我们是两个项目,一个是剪枝的yolov5_prune,一个是官方的yolov5,将yolov5_prune/model/pruned_common.py文件复制到官方yolov5/model/ 中去。 将pruned_common.py中第26行的 from utils.plots import Annotator, colors, save_one_box save_one_box删掉,再在25行最后加上,因为在官方文件中save_one_box这个def是在utils下的general中定义的。

归一化 (Normalization)、标准化 (Standardization)和中心/零均值化 (Zero-centered)

目录 一、概念 1、归一化(Normalization): 2、标准化(Standardization): 3、中心化/零均值化(zero-centered): 二、联系和差异: 三、标准化和归一化的多种方式 三、为什么要归一化/标准化? 3.1、数据的量纲不同;数量级差别很大 3.2、避免数值问题:太大的数会引发数值问题。 3.3、平衡各特征的贡献 3.4、一些模型求解的需要:加快了梯度下降求最优解的速度 四、什么时候用归一化?什么时候用标准化? 4.1 归一化、标准化使用场景 4.2、所有情况都应当Standardization或Normalization么 五、神经网络为什么要进行归一化 5.1 数值问题 5.2 求解需要 一、概念 1、归一化(Normalization): (1)将一列数据变化到某个固定区间(范围)中,通常,这个区间是[0, 1] 或者(-1,1)之间的小数。主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,更加便捷快速。 (2)把有量纲表达式变成无量纲表达式,便于不同单位或量级的指标能够进行比较和加权。归一化是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为纯量。 从公式看: 归一化输出范围在0-1之间 ​​​​​​​该方法实现对原始数据的等比例缩放。通过利用变量取值的最大值和最小值(或者最大值)将原始数据转换为界于某一特定范围的数据,从而消除量纲和数量级影响,改变变量在分析中的权重来解决不同度量的问题。由于极值化方法在对变量无量纲化过程中仅仅与该变量的最大值和最小值这两个极端值有关,而与其他取值无关,这使得该方法在改变各变量权重时过分依赖两个极端取值。 2、标准化(Standardization): 原始数据减均值之后,再除以标准差。将数据变换为均值为0,标准差为1的分布,切记:并非一定是正态的。 虽然该方法在无量纲化过程中利用了所有的数据信息,但是该方法在无量纲化后不仅使得转换后的各变量均值相同,且标准差也相同,即无量纲化的同时还消除了各变量在变异程度上的差异,从而转换后的各变量在聚类分析中的重要性程度是同等看待的。 从公式看:标准化输出范围是负无穷到正无穷 # python实现 X -= np.mean(X, axis = 0) # zero-center X /= np.std(X, axis = 0) # normalize 在机器学习中,我们可能要处理不同种类的资料,例如,音讯和图片上的像素值,这些资料可能是高维度的,资料标准化后会使每个特征中的数值平均变为0(将每个特征的值都减掉原始资料中该特征的平均)、标准差变为1,这个方法被广泛的使用在许多机器学习算法中(例如:支持向量机、逻辑回归和类神经网络)。 ​​​​​​​ 上图中左图是原图可视化,中图是减均值后的可视化,右图是除以标准差后的可视化。 3、中心化/零均值化(zero-centered): 中心化,也叫零均值处理,就是将每个原始数据减去这些数据的均值。因此 中心化后的数据平均值为0,对标准差无要求。 二、联系和差异: 归一化和标准化的区别: 归一化是将样本的特征值转换到同一量纲下把数据映射到[0,1]或者[-1, 1]区间内,缩放比例仅由变量的最大、最小极值决定。标准化和整体样本分布相关,与归一化相比,标准化中每个样本点都能对标准化产生影响(通过均值和标准差造成影响)。显而易见,归一化(Normalization)会严格的限定变换后数据的范围,比如按之前最大最小值处理的Normalization,它的范围严格在[0,1]之间; 而标准化(Standardization)就没有严格的区间,变换后的数据没有范围,只是其均值是0 0,标准差为1,变换后数据的范围是负无穷到正无穷。 归一化和标准化的相同点: 它们的相同点在于都能取消由于量纲不同引起的误差;本质上都是一种线性变换,因为二者都是不会改变原始数据排列顺序的线性变换,都是对向量X按照比例压缩再进行平移。 标准化和中心化的区别: 标准化是原始分数减去平均数然后除以标准差,中心化是原始分数减去平均数。 所以一般流程为先中心化再标准化。 都能实现无量纲:我的理解就是通过某种方法能去掉实际过程中的单位,从而简化计算。

MySQL数据库期末项目 图书馆管理系统

1 项目需求分析 1.1 项目名称 图书馆管理系统 1.2 项目功能 在以前大多部分图书馆都是由人工直接管理,其中每天的业务和操作流程非常繁琐复杂,纸质版的登记信息耗费了大量的人力物力。因此图书馆管理系统应运而生,该系统采用智能化设计,在业务流程的实现方面更加注重智能化、规范化、流程化,极大地提高图书馆的管理效率及服务质量。 其中管理员负责图书的信息录入和类型归纳,以及读者借阅图书和归还图书时的信息登记;图书信息和图书类型为管理员或读者们查找所需要的图书时提供便捷;图书借阅负责记录读者的借阅信息并对借阅信息做一个统筹处理;图书归还负责读者归还图书后的信息的记录;读者信息方便图书的借阅与归还,凭借读者信息可以直接在网上进行借阅和归还。这样的流程大大降低了图书馆管理员的工作量,也提高了图书馆的管理效率。 1.3 项目系统结构图 图书馆管理系统分为三部分,管理员部分负责管理员信息的增删改查,图书管理部分主要包括图书信息、类型、借阅和归还,而读者管理负责读者信息的修改、增加、查询和修改。 2 数据库的设计 2.1 概念结构设计 (一)实体之间的联系如下: 一个管理员可以整理多本图书信息,因此管理员和图书信息具有一对多的联系,用整理来表示管理员和图书信息的关系。 一个管理员可以对多种图书类型进行归类,因此管理员和图书类型具有一对多的联系,用归类来表示管理员和图书类型的关系。 一个管理员可以管理多个图书借阅信息,因此管理员和图书借阅信息具有一对多的联系,用管理来表示管理员和图书借阅信息的关系。 一个管理员可以管理多个图书归还信息,因此管理员和图书归还信息具有一对多的联系,用管理来表示管理员和图书归还信息的关系。 一个管理员可以管理多个读者信息,因此管理员和读者信息具有一对多的联系,用管理来表示管理员和读者信息的关系。 一本图书可由多个读者借阅,一个读者也可借阅多本图书,因此读者和图书借阅具有多对多的联系,用借阅来表示读者和图书借阅的关系。 一本图书可由多个读者归还,一个读者也可归还多本图书,因此读者和图书归还具有多对多的联系,用归还来表示读者和图书归还的关系。 (二)E-R图设计如下: 2.2 逻辑结构设计 将E-R图转换为关系模型如下: 管理员(ID编号、管理员名称、管理员密码) 图书信息(ID编号、图书编号、书名、作者、价格、出版社) 图书类型(图书编号、书名、数量、类型、所在书架) 图书借阅(读者编号、图书编号、读者姓名、借书时间、归还时间、是否归还) 图书归还(读者编号、图书编号、读者姓名、归还时间) 读者(读者编号、姓名、性别、职业、出生日期、证件号码、电话、电子邮箱) 对关系模型进行规范化,最终规范为第三范式。 2.3 物理结构设计 (1)manager(管理员信息表) 列名 数据类型 长度 约束 说明 Id Char(10) 10 Not null primary key ID编号 Name Varchar(30) 30 Not null 管理员名称 Password Varchar(30) 30 Not null 管理员密码 (2)bookinfo(图书信息表) 列名 数据类型 长度 约束 说明

挥别2022,坦迎2023。

第一章:CSDN,我来啦! 第一节:初遇! 2022-08-13,我和CSDN相遇啦! CSDN,你好呀!2022年8月13日,是我与你相遇的日子。这是一个值得纪念的时刻。从此之后,无论是你的前端界面,还是你的后端数据中都会存入我文笔下的骨血和我付出的大数据。 在我点击注册,输入用户名和密码的那一刻,我并不知道你是一个什么样的朋友。但很有幸的是,我按下了那个注册按钮,从此开启了你我相识相知的交心之旅。 注册登陆后,你让我填写了个人信息,其中包括个人简介、博客简介、博客描述等信息的填写,综合了个人喜好,加上对你的初识,我的个人简介用了一句:怀着“满招损,谦受益。”的分享心态,去坚持做一个一日一学一更新的阳光博主。下面截图是我对你的承诺,也是我对自己这个个人简介的践行。谢谢你,让我懂得了什么叫做坚持! CSDN,我坚持日更啦,兑现了我对你最初的承诺! 第二节:读你! 我拥有多个板块,满足了不同人对不同板块的需求! 嘿!CSDN,你好呀!初识你之后,我便开始慢慢的去了解你,去读你在我生命中的意义。我知道你是一个汇集各类技术的综合性学习网站,你创造出了各大版块去满足不同CSDN家人们的各类需求。下面就从我的角度去读读你的各个板块对我的影响吧! 板块一:博客 这是我最常用的版块,历经149个日日夜夜,我在里面浅显的创造了203篇博文,编辑器我都跟着历经了三代变化,有富文本编辑器、MD编辑器,到现在新的编辑器。刚开始我的博文都是用富文本编辑器去创作的,下面是我的第一篇博文,篇幅不长、结构不完美,甚至是谈不上有结构的它,恰恰见证了我这个小白的成长。 我是第一篇博文,连同代码只有1000字! 在富文本编辑器的创作时光里,我慢慢也学会了添加静态图片以及动图,学会了添加目录、创造结构、添加投票功能等等。后来发现我的目录点击每每定位都不太准,跟一些CSDN里的博友请教一番后,才知道他们很多人用MD编辑器,所以我就慢慢的开始摸索着用MD编辑器去进行创作了。下面一篇就是用MD编辑器创造的,里面涵盖了各类语法结构,在创作的过程中,也慢慢的学会和摸透了! MD编辑器用习惯了还挺好用的! 板块二:blink动态 清晨语录诞生啦! blink动态 也是我每日必逛之地!从进入CSDN的第二天开始,我便在我的动态里,创造了清晨语录版块,也做到了日更到现在!喜欢把自己读到的优美文字,或者是自己解读领悟的粗糙己见,在清晨语录的版块里分享给喜欢这个版块的博友! 学中作乐,习中反思进步。上图是我的第一条清晨语录,描述的是“以责人之心责己,已恕己之心恕人”的道理,四百多的阅览量,对于小白来说,很知足了。配图中的小男生,是我的儿子,正在带他欣赏各种植物花卉,他喜欢给它们拍照,那我就负责记录你热爱自然的这一行为举动吧,孩子的视角,是在欣赏自然的美,我的视角则是在帮他存储他视角里的美。而分享到动态里,更多的作用是为了与同频共振之人,共勉之其中的学思乐趣! blink里,承载了我很多第一次的记录!下面跟着图片,让我带你品读我每个第一次的激动吧! 第一次出现在各类榜单的喜悦感! 第一次上热门的动态,拥有了9.59万的访问量! 第一次成为榜一榜二的惊讶,当时以为是假的。 第一次中实物奖,后面中了不少奖! 第一次在CSDN中的赚钱记录! 第一次记录博文热榜的喜悦! 太多的第一次了,这里就不一一列举了...... 对于我在动态里的成长学习,你读懂了吗? 53万的浏览量,动态就33万!我是个假的技术博主吧☺ 板块三:问答 这个版块不我不太常用的,倒不是因为我不喜欢,而是觉得自己的技术还不到位,不太有实力能帮助更多的人!“穷则独善其身,达则兼济天下!”这个版块里,我都是用自己有限的知识去帮助他人,赠人玫瑰,手留余香吧,自己也从其中得到了学习和成长! 曾在十一国庆期间创造过一篇关于问答中的成长的博文,里面记录了我的点滴心得。 【CSDN:国庆活动】——“问答”里的成长记录截图展示 板块四:学习 在学习这个版块里,我渗入的比较少,比如比赛版块里:参加过十场左右的考试,获得了竞赛达人Lv4的勋章,但由于能力有限,最好的成绩也就33分,实属丢人呀,但是恰恰能督促自己得努力学习。比如技能树版块里,也学习过不少知识点和做了不少习题,并且获得了一枚Java工程师-初级Lv2的勋章。路漫漫其修远兮,吾将上下而求索。成长的路上避免不了要学习,不怕慢就怕站,学习是需要滴水石穿的精神的! 其它版块 还有很多非常棒的版块,由于涉猎不深,所以也不能从我的角度去完美的读懂他们。 如社区板块,“物以类聚,人以群分。”社区板块中,就是这个道理,它会由不同领域的社区,让各类技术博主按照自己的领域汇聚到了同一个社区中,彼此之间可以在相同技术领域里切磋技术。 如资源版块,里面涵盖了各种源代码以及插件,让我们在日常做项目遇到困难时,提供了查询之路。 ...... CSDN 确实包罗万象,只要你认真的去读它,你就会读懂属于你专属的CSDN的味道! 第三节:修炼自我! 一不小心在第二节:读你的板块中,停留了许久!读过了CSDN,接下来,我们得学着修炼自我,那我是怎么开始修炼的呢?疫情当下,要保护好身体哦博友们!来,喝口水,听我娓娓道来。 首先,我会根据自己学习的知识,创造了博客的各个栏目,一开始可能就一两个栏目,随着后面学的东西多了,要分享的博文多了,就创造了如下表基本成型的板块栏目: 栏目 博文数 简介 一、JAVA开发者成长之路 58 在这里,主要以知识点的分享为主,从最基础到现在,再到以后的框架学习的分享,都将在此栏目中分享给需要学习的博友们! 二、Java案例分享专栏 45 这里主要以案例、项目的分享为主。 三、Java面试题总结 15 总结了部分面试题,便于自己日后背诵和博友们分享。 四、国学周更-心性养成之路 16 略 五、My SQL数据库学习之旅 8 略 六、My SQL数据库案例专栏 3 略

Python课程设计项目-基于机器学习的糖尿病风险预警分析系统

这个东西是我大二时候做的,做的挺一般的,当时也没想着搭建界面啥的,测试的也不够,就是单纯的分享一下吧,不足之处大家多多指正,我会把所有的代码和数据在文章最后都放出来,喜欢的话点个赞吧! [摘 要] 糖尿病是一种全球性的流行性疾病,随着经济生活的高速发展,其患病率急剧增高,已成为威胁人类健康的第三大杀手。糖尿病目前尚不能根治,一旦发生,将终身相伴。糖尿病注重细节管理,尤其是在饮食方面有严格要求,为此,患者将会失去很多生活乐趣和行动自由;糖尿病的慢性并发症具有高度致残性,严重者会对患者的生活和工作造成不利影响;来自于健康和经济的双重压力,给患者本人及其家属造成巨大的精神负担,据统计,糖尿病患者中心理障碍(如抑郁症)的发病率可高达30%-50%,上述种种情况,使患者的生活质量大大降低。为帮助解决糖尿病给患者带来的巨大痛苦,建立起联防预警机制,及时筛查出具有患病风险的高危人群,本系统选取了皮马印第安人糖尿病数据集,利用Python中的随机森林、决策树、逻辑回归等多种机器学习算法,构建起糖尿病风险预警系统,用户可将自身信息输入到系统中,系统会自动分析是否具有糖尿病的风险,为用户和医生进行健康筛查提供帮助。 基于机器学习的糖尿病风险预警分析系统 引言 世界卫生组织近日发布报告称,糖尿病患者的数量正以惊人的速度增长,目前全球每年约有320万人死于糖尿病导致的并发症。高血糖本身并不可怕,真正可怕的是糖尿病所致的各种并发症。如果控制不好的话,患者从头到脚、由内到外、从肉体到精神几乎无一幸免,其对患者的影响是多方面的、严重的和终身性的,与之相伴的还有长期高额的医疗支出,但最终患者还是难逃致残和早亡的结局,说糖尿病是“百病之源”可谓实至名归。 第一章 项目意义 1.1 项目背景 1.1.1 糖尿病发展现状 世界卫生组织近日发布报告称,糖尿病患者的数量正以惊人的速度增长,目前全球每年约有320万人死于糖尿病导致的并发症。报告指出,在大部分发展中国家,每10名35-64岁的成年人中至少有1人死于糖尿病,糖尿病已经成为大多数国家居民早逝的主要死因之一。据统计,糖尿病可使患者平均寿命缩短10年。 糖尿病目前尚不能根治,一旦发生,将终身相伴;糖尿病注重细节管理,尤其是在饮食方面有严格要求,为此,患者将会失去很多生活乐趣和行动自由;糖尿病的慢性并发症具有高度致残性,严重者会对患者的生活和工作造成不利影响;来自于健康和经济的双重压力,给患者本人及其家属造成巨大的精神负担,据统计,糖尿病患者中心理障碍(如抑郁症)的发病率可高达30%-50%。上述种种情况,使患者的生活质量大大降低。 1.1.2 糖尿病危害 糖尿病给各国政府和人民带来了沉重的经济负担。以美国为例,1987年用于治疗糖尿病的花费是240亿美元,1998年为980亿,2002年上升至1320亿美元。糖尿病患者的年人均医疗消费是10071美元,而非糖尿病患者人均花费则为2699美元。在中国,2002年17省会城市调查显示,糖尿病治疗费188.2亿人民币,约占卫生事业费占4%;普通糖尿病患者每人每年平均花费3726元,有并发症的糖尿病患者每人每年平均花费高达13897元。 在糖尿病的早期阶段,患者除了血糖偏高以外,可能没有任何症状,但如果因此而满不在乎、放松治疗,持续的高血糖可能在不知不觉中,侵蚀您全身的大、小血管及神经,引起体内各个组织器官的病变,导致各种急、慢性并发症,严重者可致残、致死。 1、急性并发症 以糖尿病酮症酸中毒和非酮症高渗性昏迷最为常见,前者多见于1型糖尿病及处于应激状态(如急性感染、急性脑卒中、精神刺激、外伤、手术、暴饮暴食)的2型糖尿病,后者多见于老年患者。急性并发症往往来势汹汹,如果不能及时救治,病死率很高。随着现代医疗水平的提高,尤其是胰岛素的广泛应用,急性并发症的发病率及病死率较以往显著下降。 2、慢性并发症 与急性并发症相比,如今慢性并发症发生率越来越高,已成为糖尿病患者致残、致死的首要因素。 (1)心脏病变。糖尿病可引起冠状动脉硬化、狭窄和堵塞,导致冠心病(心绞痛、心肌梗死)、糖尿病心肌病,甚至猝死。糖尿病引起的心脏病尽管病情较重但症状却往往不典型,无痛性心肌梗死较为多见。糖尿病心肌病最常见的症状是心脏扩大及心律失常,后期则出现心力衰竭。糖尿病患者发生心肌梗死的危险比非糖尿病患者高3-4倍。 (2)脑血管病变。主要是脑血栓,脑出血则相对少见。轻者出现半身麻木或活动不灵,重则导致瘫痪、神志不清、深昏迷,危及生命。糖尿病患者发生脑卒中者的危险是非糖尿病患者的2-4倍。 (3)肾脏损害。是糖尿病最常见的微血管并发症之一。在早期阶段,患者症状常不明显,尿微量白蛋白排泄率增加是其唯一表现,很容易被忽略,以后随着肾小球滤过率下降,体内代谢废物不能排出,血肌酐及尿素氮开始升高,并出现临床症状,病情进一步发展可导致尿毒症。 有资料显示,微量白蛋白尿的出现率在病程10年和20年后可分别达到10%-30%和40%,且20年后有5%-10%的患者进展为尿毒症,糖尿病患者发生尿毒症的危险性是非糖尿病患者的17倍,在接受透析的终末期肾病患者中有一半是糖尿病患者。 (4)视网膜病变和白内障。视网膜病变最为多见,早期可无任何症状,随着病情进展,导致眼底反复出血、视力明显减退,严重时可导致失明。糖尿病致失明的危险性为非糖尿病患者的25倍。我国资料报道,病程在10年的糖尿病患者有50%发生视网膜病变,病程15年以上者有80%发生视网膜病变,而2%的患者将完全失明。 (5)神经损害。神经病变神经病变患病率在糖尿病病程为5年、10年、20年后分别可达到30%-40%、60%-70%和90%。感觉神经受损,患者可出现四肢麻木疼痛、感觉丧失、无痛性心肌梗死;自主神经受损可出现静息心率增快、直立性低血压、出汗异常、胃轻瘫、膀胱尿潴留、便秘、腹泻等症状。 (6)糖尿病足。由于长期高血糖造成下肢血管病变及神经损害,并在此基础上合并感染,导致下肢溃疡及坏疽,病情严重者需要截肢。据统计,因糖尿病足坏疽而截肢者为非糖尿病患者的20倍。据美国相关资料统计,成年截肢患者当中,有40%是糖尿病足坏疽所致,危害性极大。 (7)各种感染。糖尿病患者由于抵抗力差,容易并发呼吸道及泌尿道感染、肺结核、皮肤黏膜感染及牙周炎。 (8)对孕产妇及胎儿的损害。如果血糖控制不好,糖尿病孕妇易出现流产、胎儿发育畸形、死胎、新生儿低血糖等妊娠并发症,母亲及胎儿死亡率均较高。 1.2 项目意义与目标 我国的糖尿病患者初诊时约80%已出现慢性并发症,而无并发症的患者约 75%以上尚未被明确诊断,未能做到早期诊断、早期治疗。资料显示 ,由于我国患者病情控制差,绝大部分病人临床诊断时已经出现并发症,因肾、眼、心脑血管、足等病变的致残率及死亡率,均明显高于国外。其中缺乏糖尿病风险预警机制是主要原因之一。 如果开展有效的糖尿病风险预警机制,让患者及时了解自己的身体状况,及时就医,那么大部分患者可以获得早期治疗。现在的许多研究已经证实:有效的病情控制 ,可以减少或延缓并发症的发生、发展,降低致残率,提高患者的生活质量,延长患者的寿命。因此,有效的糖尿病风险预警机制,可取得巨大的社会效益。 本研究在充分调研的前提下,利用皮马印第安人糖尿病数据集,利用Python中的随机森林、决策树、逻辑回归等多种机器学习算法,构建起糖尿病风险预警系统,用户可将自身信息输入到系统中,系统会自动分析是否具有糖尿病的风险,为用户和医生进行健康筛查提供帮助。 第二章关键技术与方法 2.1随机森林算法 作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性。 随机森林其本质就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。随机森林的名称中有两个关键词,一个是“随机”,一个就是“森林”。“森林”我们很好理解,一棵叫做树,那么成百上千棵就可以叫做森林了,其实这也是随机森林的主要思想——集成思想的体现。 其实从直观角度来解释,每棵决策树都是一个分类器(假设现在针对的是分类问题),那么对于一个输入样本,N棵树会有N个分类结果。而随机森林集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出,这就是一种最简单的 Bagging 思想。 随机森林作为一种很灵活实用的方法,它有如下几个特点: 1.在当前所有算法中,具有极好的准确率; 2.能够有效地运行在大数据集上; 3.能够处理具有高维特征的输入样本,而且不需要降维; 4.能够评估各个特征在分类问题上的重要性; 5.在生成过程中,能够获取到内部生成误差的一种无偏估计; 6.对于缺省值问题也能够获得很好得结果。 2.2决策树算法 决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构建决策树来进行分析的一种方式,是一种直观应用概率分析的一种图解法。决策树,顾名思义需要构建树的结构来进行决策(分类);其实决策树的工作过程和人的思考过程是比较类似的,人类在决策过程中,会基于一系列的判别标准,来对某一事务做出最终的决定。决策树正是基于这一思想,在对数据进行分类的时候,判别标准就是数据的特征,最终的决定就是数据的类别。 首先介绍信息熵(entropy)的概念,信息熵主要用来衡量样本集合的“混乱程度”,度量事物的不确定性。信息熵越大代表样本集合越混乱,不确定性越高,其计算方式如下: D代表样本集合;样本集合中数据可以分为k个类别,每个类别的概率为Pi。样本集合中,如果所有的样本均属于同一类别,那么此时“混乱程度”最低,信息熵为0,取到最小值;样本集合中,如果所有类别的样本概率相同,那么此时“混乱程度”最高,信息熵为logk,取到最大值。 2.3逻辑回归算法 逻辑回归虽然带有回归两字,但实际上是做分类任务的,并且是一个经典的二分类算法。在选择使用机器学习算法的时候,通常考虑的就是逻辑回归算法,再去考虑另外复杂的算法,也就是说能用简单的还是用简单的算法。在机器学习中,算法不是越复杂越好,而是要简单、高效、通俗易懂。 逻辑回归其实是一个分类算法而不是回归算法。通常是利用已知的自变量来预测一个离散型因变量的值(像二进制值0/1,是/否,真/假)。简单来说,它就是通过拟合一个逻辑函数(logit fuction)来预测一个事件发生的概率。所以它预测的是一个概率值,自然,它的输出值应该在0到1之间。 逻辑回归算法原理可以概括为以下几个方面: 找一个合适的预测函数(Andrew Ng的公开课中称为hypothesis),一般表示为h函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程时非常关键的,需要对数据有一定的了解或分析,知道或者猜测预测函数的“大概”形式,比如是线性函数还是非线性函数。构造一个Cost函数(损失函数),该函数表示预测的输出(h)与训练数据类别(y)之间的偏差,可以是二者之间的差(h-y)或者是其他的形式。综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为J(θ)函数,表示所有训练数据预测值与实际类别的偏差。 (3)显然,J(θ)函数的值越小表示预测函数越准确(即h函数越准确),所以这一步需要做的是找到J(θ)函数的最小值。找函数的最小值有不同的方法,Logistic Regression实现时有的是梯度下降法(Gradient Descent)。 逻辑回归算法公式为:

Tensorflow-gpu安装教程(详细)!!!

关于tensorflow: TensorFlow™是一个基于数据流编程(dataflow programming)的符号数学系统,被广泛应用于各类机器学习(machine learning)算法的编程实现,其前身是谷歌的神经网络算法库DistBelief 。 Tensorflow拥有多层级结构,可部署于各类服务器、PC终端和网页并支持GPU和TPU高性能数值计算,被广泛应用于谷歌内部的产品开发和各领域的科学研究 。 TensorFlow由谷歌人工智能团队谷歌大脑(Google Brain)开发和维护,拥有包括TensorFlow Hub、TensorFlow Lite、TensorFlow Research Cloud在内的多个项目以及各类应用程序接口(Application Programming Interface, API) 。自2015年11月9日起,TensorFlow依据阿帕奇授权协议(Apache 2.0 open source license)开放源代码 。源自百度。 并且TensorFlow有适应于各种操作系统的版本,并且对于各种编程语言都有对应的版本,这里我们主要是介绍怎么样在python环境下安装tensorflow。 而在安装之前呢,我们需要进行一些准备工作,这里我们主要是针对TensorFlow-gpu版本的安装,首先我们要安装一个Anaconda。关于它,我们这里就不细说了,你可以理解为一个方便管理python环境和各种包的一个工具,有了它之后,我们就可以更加方便地创建,删除,管理python的环境,各种python版本和库版本之间的对应和适配关系,有时候会让我们十分难以管理,而Anaconda可以很好地帮我们分忧!(建议下载,即使不安装TensorFlow)详情:Anaconda 1.查看自己电脑是否支持使用GPU (win11)打开设置—>系统—>系统保护—>硬件—>设备管理器—>显示适配器 可以看到点击出现了NVIDIA GeForce ——,即你的电脑显卡型号。如果有出现,那就表示可以使用TensorFlow-gpu版本,如果没有的就只能老老实实安装CPU版咯。可以去NIVIDIA官网查询一下自己电脑显卡的算力,建议算力>=3.5安装。 2.安装Anaconda 可以去Anaconda官网去下载,根据自己电脑的操作系统32位或者64位选择合适的版本,但是官网下载速度很慢,大家可以去清华镜像源下载,那样就快很多了,这个应该不用解释了。 下载合适的版本即可。 下载好安装包之后,双击安装,因为之前我已经安装过了,所以借用下别人的图: 一路Next就行。 用户选择所有 选择存储位置 第一个建议勾选上,打钩之后会自动给你添加到环境变量,如果没打后期也可以自己手动添加,第二个根据自己情况选择吧,没什么太大影响。 这个会给你安装一些配套的软件,直接跳过就行。 OK安装完毕我们来测试一下: win+r输入cmd打开终端,输入代码 conda --version 查看当前下载的Anaconda版本: 博主的不是最新版的,有需要的大家可以自行更新版本。但其实能用就行了。 添加镜像源: 再一次进行cmd:输入 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ ok,到这里我们的准备工作就做完了。下面开始正式安装TensorFlow-gpu了。 2.1.用conda创建虚拟环境 进入cmd输入 conda create --name tensorflow-gpu python==3.6 创建一个名为tensorflow-gpu的python的虚拟环境,并配备一个版本为3.

数据库设计图书管理系统

目录 一、 摘要 二、 前言 三、主体 3.1需求分析 3.1.1 功能需求分析 3.1.2 数据需求分析 3.2 概念设计 3.2.1 数据字典 3.2.2 ERD(实体关系图) 3.2.3 use case图 3.2.4 图书管理系统数据流程图(数据流图) 3.3 逻辑设计 3.3.1 E-R模型向关系模型的转换规则: 3.3.2 E-R图转换为如图所示的数据库关系表: 3.4 物理设计 3.4.1 DDL语言 3.4.2 重要的存储过程 四、结论及讨论 4.1结论 4.2 讨论 摘要 该课程设计题目为教学管理系统设计,具体要求如下: 设计教学管理系统,要求有基本资料管理,比如:读者、图书管理员、阅览室、书籍、书架、书籍分类、出版社、罚款单、系统管理员,书商等基础信息基本功能: 角色1:读者 选课 查询图书 借书还书 角色2:图书管理员 角色3:采购员 角色4:系统管理员 数据备份 系统优化 死锁排除 借还书要求考虑到学期、时间、图书管理员、读者等信息 前言 随着社会信息量的与日俱增,职场竞争的日趋激烈,越来越多的人更关注知识的积累、能力的培养。作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。 在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。对于日益扩大的图书馆,查找特定的书目总是借阅者或工作人员劳神费力,有时还没有结果。因此往往是投入了大量的人力和财力却得不到高效的管理效率。为了缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理.从而达到提高图书借阅信息管理效率的目的.采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者并简化图书馆管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。 其基本功能包括: 读者信息管理 2、图书管理员信息管理 3、借阅信息管理 4、图书信息管理 5、采购员信息管理 6、罚款信息管理 7、系统管理(图书管理系统管理员的功能) 三、主体 3.1需求分析 3.1.1 功能需求分析 图书馆管理系统开发。系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。用户是系统的最终使用者,开发系统的目的是让用户很方便使用系统,最终为用户带来各种便利。本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。本系统主要解决的问题是利用关键字对数据库进行查询。本系统的宗旨是提高图书管理工作的效率,减少相关人员的工作量,使学校的图书管理工作真正做到科学、合理的规划,系统、高效的实施。本系统应当包括读者、图书管理员、采购员、系统管理员四类用户,这四类用户对系统的需求简要概括如下。 读者用户需求描述: (1)有关读者种类标准的制定、种类信息的输入、包括种类编号、种类名称、借书数量、借书期限等。

html网页设计小作业(个人主页)

目录 作品介绍: 效果展示 代码部分: 作品介绍: 简易的个人网页小作业,只用了html+css 布局制作,没啥好说的,直接上图!!! 效果展示 Home 页面: About页面: Hobbies页面: 代码部分: Home界面: <!DOCTYPE html> <head> <title></title> <link rel="stylesheet" href="css/index.css"> </head> <body> <div class="home"> <div class="content"> <div class="stars"></div> <img class="" src="images/index1.jpg" width="100%" alt=""> <h3 class="title">欢迎来到我的个人网站</h3> <h3 class="titles">我时常回到童年,用一片童心思考问题,很多烦恼的问题就变得易解。</h3> <img class="icon" src="https://img.lccyj.ltd/img/down.png" alt=""> <div class='ribbon'> <a href='./index.html'><span>Home</span></a> <a href='./about.html'><span>About</span></a> <a href='./hobbies.html'><span>Hobbies</span></a> </div> </div> <div class="icons"> <div class="icons_items"> <img class="icons_items_imgs" src="images/星空.webp" alt=""> <span>仰望星空</span> </div> <div class="icons_items"> <img class="icons_items_imgs" src="images/无仙.webp" alt=""> <span>飘渺的心</span> </div> <div class="

2022年数学建模国赛c题论文+代码(附详解)

古代玻璃制品化学成分的分析与研究 摘要 古代玻璃极易受埋藏环境的影响而风化,并且在风化过程中,内部元素与环境元素进行着大量交换,导致其成分比例会发生变化,从而会影响对其类别的正确判断。玻璃在炼制的过程中需要添加助熔剂和稳定剂,我国古代有常用的助熔剂有草木灰、天然泡碱、硝石和铅矿石等,如果添加的助熔剂不同,其主要化学成分也会不同。研究古代玻璃化学成分,对研究古人当时时期生活面貌、审美观念、 生产能力、工艺技术水平、物产交流情况等有一定的意义[1]。为此,我们建立单因素方差分析,BP神经网络,多元回归和聚类分析等模型对古代玻璃制品成分进行分析和研究。 针对问题一,先将问题一分为三个小问。首先第一小问运用单因素方差分析模型,以表面风化作为因素,以玻璃类型、纹饰和颜色的情况作为检验指标,根据模型原理,得到玻璃类型的显著性p值为0.002,则有显著性影响,而玻璃颜色的显著性p值为0.070和玻璃纹饰的显著性p值为0.078,表现为无差异显著性影响;第二小问我们进行描述性统计分析,计算相关数值的平均数,中位数和标准差,进行折线图分析等,得到铅钡玻璃在风化后主要化学成分含量基本呈上升趋势,而高钾玻璃在风化后的主要化学成分含量基本上呈下降趋势的规律;第三小问利用BP神经网络,根据第二小问已得到的数据变化规律,总结出各个化学成分的变化情况,找到相关函数关系进而进行风化前的数据预测,具体预测值可在附录表19中查看。 针对问题二,同样先把问题分为三个小问。首先分析高钾玻璃和铅钡玻璃的分类规律,根据统计分析分为四类;接着针对铅钡玻璃和高钾玻璃进行亚类划分,先对这些化学成分的标志性数据进行分类汇总,以此作为亚类划分的依据,建立K-Means正在上传…重新上传取消 聚类分析模型,根据模型原理,将原来的四类划分为八个亚类,最终亚类划分结果已在图11呈现;最后进行数据的敏感性检验,也就是灵敏度分析,发现在添加30%的扰动时,铅钡未风化的数据准确率为92.3%,其他的数据准确度均为100%,这一定程度上体现了模型的准确性和合理性。 针对问题三,把该问题分为两个小问。需要先对未知玻璃文物的主要化学成分进行分析,鉴别这些文物属于什么类型,将表单3中的数据进行分类,初步得出这些玻璃的类别,接着对表格1和表格2中的数据进行回归分析,得到不同类型的玻璃各化学成分所占的权重,最终分类结果在正文中表13可知;然后将得到的结果进行灵敏度分析,即可以对这些化学成分中的某一个添加数据扰动,代入问题模型中,结果显示,在添加-1%至30%扰动时,分类结果均正确。 针对问题四,先进行不同玻璃类型的关联性分析,问题三中已得到不同玻璃化学成分所占的比重,我们将这些比重数据进行数据可视化,分析其中的关系,关联性主要体现为各化学成分的类别方面,具体在正文中可看;在解决差异性时,根据问题一所建立的单因素方差分析模型,以玻璃类型作为因素,相对应的14种化学成分作为检验指标,计算得到高钾玻璃在风化前后计算出来的p正在上传…重新上传取消 值大于0.05,说明高钾玻璃在风化后各化学成分之间的关联性变小,而铅钡玻璃风化后计算出来的p 值小于0.05,说明在风化后铅钡玻璃各化学成分之间仍然有较强的相互之间的影响。 关键词:单因素方差分析 BP神经网络 聚类分析 回归分析 灵敏度分析 一、问题的重述 1.1问题背景 丝绸之路是我国古代连接中西方的交流通道,其中我国古代的玻璃成为了我国早期与各国贸易往来的宝贵物证。早期的古代玻璃在西亚和埃及地区常常被制作成珠形饰品传入我国内部,所以我国古代玻璃吸收其西方技术后在本土就地取材制作,但是不同的是我国古代玻璃与外来的玻璃制品外观相似,但是化学成分却大不相同。 玻璃的主要原料是石英砂,它的主要的化学成分是二氧化硅(SiO2正在上传…重新上传取消 ),在炼制的过程中需要添加助熔剂和稳定剂。在我国古代有常用的助熔剂有草木灰、天然泡碱、硝石和铅矿石等。其中以添加石灰石作为稳定剂,石灰石煅烧以后转化为氧化钙(CaO)可以作为稳定剂。如果添加的助熔剂不同,其主要化学成分也会不同。古代玻璃极易受埋藏环境的影响而风化。并且在风化过程中,内部元素与环境元素进行着大量交换,导致其成分比例会发生变化,从而会影响对其类别的正确判断。文物标记可表现为表面风化和表面无风化两种。其中的文物标记为表面无风化的特征是从表面上可以明显看出其文物的颜色和纹饰,但是不排除局部有较浅的风化,而文物标记表现为表面风化的特征为表面大面积灰黄色区域为风化层,其表面有明显的风化区域,紫色部分是一般的风化表面,但是在部分风化的文物中,其表面也有未风化的区域。 1.2问题要求 问题一:首先第一个小问是针对这些玻璃文物的表面风化与其玻璃类型、纹饰和颜色的关系进行分析,其次第二小问是对于结合玻璃的类型,分析文物样品表面有无风化化学成分含量的统计规律,最后第三小问是根据风化点检测数据,预测其风化前的化学成分含量。 问题二:依据附件数据分析高钾玻璃、铅钡玻璃的分类规律;对于每个类别选择合适的化学成分对其进行亚类划分,给出具体的划分方法及划分结果,并对分类结果的合理性和敏感性进行分析。 问题三:对附件表单3中未知类别玻璃文物的化学成分进行分析,鉴别其所属类型,并对分类结果的敏感性进行分。 问题四:针对不同类别的玻璃文物样品,分析其化学成分之间的关联关系,并比较不同类别之间的化学成分关联关系的差异性。 正在上传…重新上传取消 图 1 全文问题分析流程图 二、问题的分析 2.1问题的分析 2.1.1问题一的分析 在解决问题一时,根据题目要求,将题目分为三小问。首先需要对玻璃表面风化情况与玻璃类型、纹饰和颜色的关系进行分析,即进行差异显著性分析,运用单因素方差分析模型,以表面是否风化作为因素,以玻璃类型、纹饰和颜色的情况作为因素所处的水平,分析显著性p值是否小于0.05,进而分析其中的关系;然后结合玻璃的类型分析化学成分含量的变化规律,对此,我们进行描述性统计分析,计算相关数值的平均数,中位数和标准差,进行折线图分析等,总结其中的规律;最后利用BP神经网络,预测风化前的化学成分含量,根据前面已经得到的数据变化规律,总结出各个化学成分的变化情况,找到相关函数关系进而进行风花前的数据预测。 2.1.2问题二的分析 在解决问题二时,根据题目要求,需要我们针对铅钡玻璃和高钾玻璃进行亚类划分,并分析分类模型的合理性和敏感性。首先对两种玻璃的化学成分进行数值统计,对这些化学成分的标志性数据进行分类汇总,以此作为亚类划分的依据;然后在此基础上进行亚类划分,这里采用聚类分析模型解决该问题,观察玻璃的这些化学成分在风化前后的变化,以及玻璃的纹饰,颜色等的变化,通过聚类分析进行分类;最后进行数据的灵敏度检验,也就是灵敏度分析,得出检验结果,给出相应的合理性依据。 2.1.3问题三的分析 在解决问题三时,根据问题要求,我们需要对未知玻璃文物的主要化学成分进行分析,鉴别这些文物属于什么类型的,并进行敏感性分析,即灵敏度分析。首先将表单3中的数据进行分类,然后结合第二问的结论,对这些玻璃进行分类鉴别,初步得出这些玻璃的类别;接着对表格1和表格2中的数据进行回归分析,得到不同类型的玻璃各化学成分所占的权重,最后将得到的结果进行灵敏度分析,即可以对这些化学成分中的某一个添加数据扰动,代入原问题二模型中,来验证模型的稳定性和敏感性。 2.1.4问题四的分析 在解决问题四时,根据问题要求,要分析不同玻璃化学成分之间的关系,然后进行不同玻璃化学成分之间的差异性。在分析化学成分的关系时,运用第三问的回归分析模型,问题三中已得到不同玻璃化学成分所占的比重,我们将这些比重数据进行数据可视化,分析其中的关系;在解决不同玻璃化学成分之间的差异性时,根据问题一所建立的单因素方差分析模型,以玻璃类型作为因素,相对应的化学成分作为因素所处的水平,计算出不同玻璃类型对应的p值,进而分析差异性。 三、模型的假设 为了便于模型求解,现做如下假设: 忽略各种玻璃类型在检测过程中可能受到的风化影响;检测玻璃化学成分含量时的环境一致; 假定实验数据在进行处理的过程中没有人为的操作误差;假定在试验过程中除因素自身外其他影响指标的因素都保持不变;在进行亚类划分时不考虑无效数据组。 五、模型的建立与求解 5.1 问题一的求解 首先根据题目的要求将题目分为三个小问。第一小问是需要对玻璃表面风化情况 与玻璃类型、纹饰和颜色的关系进行分析,即进行差异显著性分析,经过问题的研究 分析可以运用单因素方差分析模型,以表面是否分化作为因素,以玻璃类型、纹饰和 颜色的情况作为因素所处的水平,利用工具分析计算出 p 值,观察分析显著性 p 值的 值是否小于 0.05,进而可以分析出其中玻璃表面风化情况与玻璃类型、纹饰和颜色之 间的关系,对于第二小问是结合玻璃的类型分析化学成分含量的变化规律,对于这一 问题,我们可以进行描述性统计分析,计算相关数值的平均数,中位数和标准差,进 行折线图分析,正态分布检验等的研究计算,总结其中的规律,最后一个小问是预测 风化前的化学成分含量,根据前面已经得到的数据变化规律,总结出各个化学成分的 变化情况,这是可以找出来相关的函数关系,从而进行风花前的数据的预测。 5.1.1 数据预处理 为了方便数据的分析与计算,首先对数据进行预处理,从而更加简便而且更加直 观的分析出玻璃文物的表面风化与其玻璃类型、纹饰和颜色等之间的关系,也更加便 于通过结合玻璃的类型,分析出文物样品表面有无风化化学成分含量之间的统计规律, 那么同样的也可以更加简洁的根据相关函数进行风化点检测数据,从而预测出其风化 前的化学成分含量,所以先对数据进行预处理,根据题目中的要求将成分将成分比例 累加和介于 85%~105%之间的数据视为有效数据,经过对数据的成分比例和进行计算, 计算结果的前 24 组数据如下表,其它数据在附录查看。

web期末作业网页设计——JavaScript

目录 一.作品简介 二.网页效果 首页 花语 登录界面 注册界面 三.网页代码 首页 登录界面 注册界面 视频界面 一.作品简介 网站系统文件种类包含:html网页结构文件、css网页样式文件、js网页特效文件、images网页图片文件。 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad++ 等任意html编辑软件进行运行及修改编辑等操作)。 二.网页效果 首页 花语 登录界面 注册界面 视频界面 三.网页代码 首页 <head> <meta charset="utf-8" /> <title>花遇(首页)</title> <link rel="stylesheet" type="text/css" href="css/reset.css" /> <link rel="stylesheet" type="text/css" href="css/index.css"/> </head> <div class="site-list"> <ul class="clearfix"> <li> <a href="index1.html"><font color="coral"><b>首页</b></font></a> </li> <li> <a href="dianying2.html">鲜花</a> </li> <li> <a href="dianshij2.html">永生花</a> </li> <li> <a href="#">在线订购</a> </li> <!-- tab下拉菜单 --> <li class="qita"> <a href="

Hadoop mapreduce课程设计-全球历史平均气温数据分析

文章目录 前言 一、工具介绍 二、mapreduce数据处理 1.数据集准备 2.要求:对不同洲的平均温度处理--得到各大洲的平均温度 2.1 mapper阶段 2.2 reduce阶段 2.3 分区 2.4 Driver阶段 3.结果展示 4.将数据放入mongodb数据库 4.1 ktr展示 4.2 mongodb数据展示 ​编辑 5.使用pandas和pyecharts将数据可视化 5.1 代码展示 5.2 调用python函数生成html ,html展示 6.定义前端jsp页面,将html嵌入sp 7.在前端中展示mongodb数据库内容 ​编辑 前言 例如:随着大数据的不断发展,hadoop这门技术也越来越重要,很多人都开启了学习大数据之路。此次课程设计,我们采用mongodb作为存储,javaweb作为前端,echarts作为可视化工具,kettle和pandas作为数据清洗工具。使用底层mapeduce作为大数据计算。 一、工具介绍 mongodb数据库:它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:*面向集合存储,易存储对象类型的数据。*模式自由。*支持动态查询。*支持完全索引,包含内部对象。*支持查询。 javaweb:个人喜好用java,其实最好可以使用node.js。 echarts:可视化工具,包含多个组件,可以说是既简单又方便的工具。 kettle:Pentaho Data Integration以Java开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道;可对接包括传统数据库、文件、大数据平台、接口、流数据等数据源;支持ETL数据管道加入机器学习算法。 pandas:python第三方库,对于简单数据是很好用的工具。 二、mapreduce数据处理 1.数据集准备 2.要求:对不同洲的平均温度处理--得到各大洲的平均温度 2.1 mapper阶段 import org.apache.hadoop.mapreduce.Mapper; import java.io.IOException; /* 要求:对不同洲的平均温度处理--得到各大洲的平均温度 */ public class TemperMapper extends Mapper<LongWritable, Text,Text,DoubleWritable> { Text k = new Text(); DoubleWritable v = new DoubleWritable(); @Override protected void map(LongWritable key, Text value, Mapper<LongWritable, Text, Text, DoubleWritable>.

uniapp开发APP从开发到上架全过程(一)

前端时间受朋友委托帮他开发了一款APP,综合考虑了下,没有上原生,使用了uniapp这一套技术栈来进行开发 uniapp是dcloud推出的一套跨端前端解决方案,可以通过一套代码生成小程序、安卓、IOS、H5等代码,对于中小项目来说是一套绝对的效率利器 技术架构 前端采用uniapp 后端使用Thinkphp做后端管理和接口,用到了一套开源的后端管理系统easyadmin,之所以选用他是因为他能够通过一条命令自动生成curd管理页面,并且可以通过配置来快速实现字段表格、搜索等功能,可以说也是一个效率神器了。 数据库采用了最常见的mysql数据库这个没什么好说的 云存储使用了七牛云存储,因为项目中包含了大量的视频资源,因此将静态资源放置到云存储上是一个不错的选择 开发 uniapp的开发相对来说还是简单的,开发过Vue或者微信小程序的朋友几乎能无缝上手,只需要浏览下官方文档即可,其API与小程序的API的大同小异,基本将wx.xxx修改为uni.xxx就能直接用因其底层是基于Vue,因此开发模式也是数据驱动的模式,非常方便快捷。 在Dcloud(HBuilderX-高效极客技巧)官网下载他们官方的编辑器Hbuilder并安装即可开始开发, 在Hbuilder中选择“文件-新建-项目”,选在uni-app即可创建一个uniapp项目,uni还提供了一些页面模板供开发者快速入门 点击创建后会自动创建一个新项目并将初始化相关文件和目录 项目目录结构 pages目录即为我们编写APP页面的目录 static目录则是存放静态资源的目录,可以将一些图标icon等资源放在此处 页面构成 uniapp每个页面结构分为三部分,第一部分是由template标签包括的页面标签,就是HTML中的标签元素,不同的是普通HTML中使用的是<div>标签,而在uni中使用的是<view>标签,需要注意的是在template下只能包含一个view标签,其他标签则都包含在此标签下边。 第二部分是script包括的JS代码,使用export default 对象将JS中的代码导出,内部结构则是Vue的数据结构,包含了data(),methods()等方法和一些uni的生命周期函数。 第三部分则是style标签包裹的css代码,与HTML的css代码如出一辙。 <template> <view> </view> </template> <script> export default { data() { return { } }, methods: { } } </script> <style> </style> 页面配置 uni中编写的所有页面都需要在page.json中进行注册,未注册的页面则无法进行跳转和显示,在page数组中配置页面参数即可,也可以每个页面的对象下边配置style对象来定义页面的标题栏等信息 通过配置globalStyle对象可以实现APP全局相关参数的配置,具体配置项可以参考uniapp官方文档(uni-app官网) 另外也可以通过配置tabBar对象来实现自动生成APP的标签TAB APP.VUE app.vue是整个项目的主入口,在此处的onLaunch在APP初启动的时候会进行调用,可以在此处做一些APP初始化的相关操作 <script> export default { onLaunch: function() { console.log('App onLaunch') }, onShow: function() { console.log('App Show') }, onHide: function() { console.log('App Hide') } } </script> 同样,在此页面编写的css也会对所有页面起作用,可以将一些全局的css放在此处,如主题色之类。

Sublime Text 4 (Build 4143) 注册方法STEP BY STEP

To 初学Python的Pythonista: Sublime Text相对于PyCharm和Visual Studio Code,确实有不足之处,但提供了众多功能丰富的插件,且最大优点就是相对于Pycharm和VSCODE,它体积小,启动速度快。对于Python的初学者来说,建议不要太依赖那些功能强大的IDE,以免换一个环境,就适应不了了。 截止2022年12月18日,最新版本是Sublime Text 4 (Build 4143)。注册方法如下: 安装软件:去官方站点下载并安装 Sublime Text - Text Editing, Done Right使用浏览器打开网站:https://hexed.it/ ,点击Open file,打开Sublime Text安装目录选择文件 sublime_text.exe在search for中输入:807805000f94c1 按回车键Enter选中 Enable replace,在Replace by输入c64005014885c9 点击Replace即可点击Save as,保存文件到本地,文件名设定为sublime_text备份原sublime_text.exe文件(修改为如sublime_text_bk.exe)将修改过的sublime_text.exe复制到原sublime text 4安装目录中即可 这样就激活成功了,打开Sublime Text之后,可以看到 “ Registered ” 的提示。

html简洁漂亮的个人简历,个人主页,个人简介网页版(源码)

文章目录 1.设计来源1.1 主界面1.2 基本资料1.3 专业技能1.4 教育经历1.5 工作经验 2.效果和源码2.1 动态效果2.2 源代码 源码下载 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/128349160 html简洁漂亮的个人简历,个人主页,个人简介网页版(源码) html简洁漂亮的个人简历,个人主页,个人简介网页版(源码)。一款非常简洁,亮丽的个人简介模板,适用于个人主页,个人简历等相关主题,界面分为个人信息,基本资料,专业技能,教育经历,工作经验等五个版块,支持扩张,具体效果见下面的原文链接,里面有视频和代码讲解。代码容易上手,下载后直接运行。 1.设计来源 主旨: 简洁,干净,明亮,舒适的风格;语言: 可以html+js+css,也可以html+css;版块: 人信息,基本资料,专业技能,教育经历(支持更多扩展);适用: 个人简介,个人简历,个人主页,个人博客,个人空间等方向; 1.1 主界面 主界面动态的朦胧天空背景图,可以配置自己的图标,个人名言,名字,职称,邮箱,手机号,工作地址等信息,也可以扩展新的。 1.2 基本资料 基本资料动态的朦胧天空背景图,可以配置个人职业技能,大图标,姓名,年龄,性别,手机号,邮箱,qq号,居住地,户籍,学历,学校,专业等信息,也可以扩展新的。 1.3 专业技能 专业技能动态的科技线路背景图,可以配置个人专业技能,按列表排序出来,个人的掌握的工具,及熟练度等信息,也可以扩展新的。 1.4 教育经历 教育经历动态的科技线路背景图,可以配置个人教育的学校,时间,几学到的东西等信息,也可以扩展新的。 1.5 工作经验 工作经验动态的科技线路背景图,可以配置个人工作过的公司,工作的时间,负责的项目,开发工具等信息,也可以扩展新的。 2.效果和源码 2.1 动态效果 下面咋们一起来看看这个个人简历的动态效果,改变图片,可以配置多种风格,灵活运用,效果酷炫。 html简洁漂亮的个人简历,个人主页,个人简介网页版 2.2 源代码 这里是主界面的代码,其他图片、js、css等代码,见下面的 源码下载 ,里面有所有代码资源和相关说明。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>徐纯宇 - 个人简历,个人主页,个人介绍,个人简介</title> <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"> <link rel="stylesheet" type="text/css" href="css/main.css"> </head> <body oncontextmenu="

DEMATEL-ISM模型的Python实现——方法介绍以及代码复现

DEMATEL-ISM模型的Python实现——方法介绍以及代码复现 前言DEMATEL-ISM分析方法方法简介步骤明确系统要素确定直接影响矩阵规范影响矩阵计算综合影响矩阵计算各个要素的影响度、被影响度、中心度和原因度绘制因果图确定整体影响矩阵确定可达矩阵划分层级绘制因素之间的递阶层次结构 实例与代码DEMATEL-ISM计算原因-结果图节点度图ISM图 后记 前言 本文源于笔者的《系统工程》课程的小组作业,笔者尝试运用DEMATEL-ISM方法来进行分析,建模求解,但在网络上并没有找到相应的,特别是集合DEMATEL-ISM方法的代码。因此自己码了DEMATEL-ISM模型的Python代码,并作为第一个博客发布~ 参考文献中,笔者主要参考了李广利等1的研究,本文也将依此论文进行方法解读和代码复现。 网上查找资料的过程中,笔者发现了一个MCDA方法的python代码库2,里面有很多多准则决策分析模型的相关代码,其中就有DEMATEL的代码,笔者做了一定的参考。 DEMATEL-ISM分析方法 方法简介 DEMATEL(Decision Making Trial and Evaluation Laboratory),全称为“决策试验和评价实验法”,是一种运用图论与矩阵工具进行系统要素分析的方法,通过分析系统中各要素之间的逻辑关系与直接影响关系,可以判断要素之间关系的有无及其强弱评价。ISM(Interpretative Structural Modelling)法全称为“解释结构模型”,其特点是把复杂的系统分解为若干子系统(要素),通过代数运算将系统构造成一个多级递阶的结构模型。 DEMATEL 模型可利用矩阵运算求出因素间的因果关系和影响强度,通过可视化因素间的因果关 系,得以揭示复杂问题中的关键影响因素及影响程度;但该方法无法有效识别系统中因素的层级结 构。ISM 法则通过分析构成系统的各子系统( 因素或要素) 之间的直接二元相关关系,基于布尔代数运算等,构造多级递阶有向拓扑图,但无法确定要素对系统的影响程度。 将两种方法结合,可以识别系统中关键要素及其影响程度,并构建要素的层级结构。DEMATEL-ISM方法的过程如下: 步骤 明确系统要素 明确分析系统所构成的要素,将构成系统的要素标记为 x 1 x_1 x1​, x 2 x_2 x2​, x 3 x_3 x3​, … \ldots …, x n x_n xn​。 确定直接影响矩阵 采用专家打分法,比较 x i x_i xi​对 x j x_j xj​的影响,由于因素与自身比较为没有影响,直接影响矩阵的对角线值为0。通过比较得到直接影响矩阵 A A A。 A = [ 0 x 12 ⋯ x 1 n x 21 0 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x m 1 x m 2 … 0 ] \begin{align} A= \begin{bmatrix} 0&x_{12}&\cdots&x_{1n}\\ x_{21}&0&\cdots&x_{2n}\\ \vdots &\vdots&\ddots &\vdots \\ x_{m1}&x_{m2}&\dots &0 \end{bmatrix} \end{align} A= ​0x21​⋮xm1​​x12​0⋮xm2​​⋯⋯⋱…​x1n​x2n​⋮0​ ​​​

大数据期末课程设计实验案例:网站用户行为分析

大数据课程实验案例:网站用户行为分析 案例目的 1.熟悉Linux系统、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用; 2.了解大数据处理的基本流程; 3.熟悉数据预处理方法; 4.熟悉在不同类型数据库之间进行数据相互导入导出; 5.熟悉使用R语言进行可视化分析; 6.熟悉使用Elipse编写Java程序操作HBase数据库。 案例任务 1.安装Linux操作系统 2.安装关系型数据库MySQL 3.安装大数据处理框架Hadoop 4.安装列族数据库HBase 5.安装数据仓库Hive 6.安装Sqoop 7.安装R 8.安装Eclipse 9.对文本文件形式的原始数据集进行预处理 10.把文本文件的数据集导入到数据仓库Hive中 11.对数据仓库Hive中的数据进行查询分析 12.使用Sqoop将数据从Hive导入MySQL 13.使用Sqoop将数据从MySQL导入HBase 14.使用HBase Java API把数据从本地导入到HBase中 15.使用R对MySQL中的数据进行可视化分析 说明:Word可能导致部分命令或代码有问题,每一个步骤都提供参考链接,详细查看参考链接 首先1.安装Linux系统; 参考https://dblab.xmu.edu.cn/blog/285/ 以下是各软件的安装,通过启动来验证安装 所有准备好在这里 cd /home/hadoop/a 用户准备工作 sudo useradd -m hadoop -s /bin/bash Shell 命令这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。 接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码: sudo passwd hadoop 密码:123 可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题: sudo adduser hadoop sudo 更新apt 用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了。按 ctrl+alt+t 打开终端窗口,执行如下命令: