- 博客(52)
- 资源 (1)
- 收藏
- 关注
原创 机器学习实验10 特征选择与分类
这次实验的主要算法是前向搜索算法,算法的主题按照算法的步骤逐步进行就很容易实现,但是信息熵求起来需要费些心思,要优化掉多层for循环,使用groupby、pd.value_counts等内置函数进行计算。按照算法描述,给定d个特征,我们先选出一个最优的单特征子集,再逐步加入其他特征,每次加入都以信息增益为衡量标准。后来想到ent_dv和p都是dataframe类型,并且一一对应,可以直接使用sum(ent_dv * p),相乘并使用sum求和,直接得出结果。对x进行预测,哪个类型的概率最大结果就为哪个。
2023-10-12 09:00:08
352
原创 机器学习实验9 PCA
对根据特征值的大小排序,因为这里要将成一维,所以找出特征值最大的特征向量作为投影矩阵,和原数据进行相乘得出降维后的值。但是实验的原理理解起来花费了一些时间,通过在知乎上查找讲解,最后看明白了。在实验中进一步体会到了线性代数的精妙和重要性,以及对协方差矩阵、特征向量等的意义有了进一步的了解。1、数据中含有“[”,“]”python读入时不能自己处理,所以使用f.readlines将内容读为字符串,遍历每一行,去除行末回车和左右中括号,数据转为float类型,数据放到data中并转array返回。
2023-10-12 08:58:21
252
原创 机器学习实验8 K-means
这里使用了np.linalg.norm计算二范数即欧氏距离,遍历每一个簇中心,利用广播机制,直接对data – c求二范数就得到了所有点到该簇中心的距离,形状为(90,)。一共三个簇中心,得出的结果是(3,90)的,每一列是每个点到三个簇中心的距离。通过这次实验,让我对k-means的掌握更加扎实。1、数据中含有“[”,“]”python读入时不能自己处理,所以使用f.readlines将内容读为字符串,遍历每一行,去除行末回车和左右中括号,数据转为float类型,数据放到data中并转array返回。
2023-10-12 08:56:11
199
原创 机器学习实验7 Adaboost
功能是遍历data,参考规则,将属性值和阈值进行比较,得出预测值,如果分类错误,则将其权重加入e。1、数据中含有“[”,“]”python读入时不能自己处理,所以使用f.readlines将内容读为字符串,遍历每一行,去除行末回车和左右中括号,数据转为float类型,并且将属性和标签分开,分别放到data和lable中返回。5、对分类结果进行测试和可视化,将每个数据通过所有分类器进行投票确定结果,将每个分类器的结果乘以每个分类器的权重,再进行求和,大于0则为1,否则为-1。求出,D也需要进行更新,公式为。
2023-10-12 08:54:22
220
原创 机器学习实验6 贝叶斯分类器
可以求出,在这里使用布尔值索引lable==i可以减少代码量,更加简便快捷。由于属性是-1和1,使用列表等下标必须是非负整数,所以这里使用字典存储,索引更加灵活。通过这次实验,我学习到了朴素贝叶斯分类器,相较于以前的SVM等分类方法,又学习到了基于概率的分类,提供了另一种解决分类问题的思路。3、求出条件概率,即不同属性在不同类别中出现的概率。需要保存两个键,键可能是负数或字符,使用嵌套的字典。三层循环,最外层枚举类型,第二层枚举属性列,最内层枚举该属性的所有取值。同样使用拉普拉斯修正进行数据平滑,公式为。
2023-10-12 08:52:50
328
原创 机器学习实验5 支持向量机
同时也学习到了SMO算法的数学推导和具体流程,其中坐标上升每次通过更新多元函数中的一维,经过多次迭代直到收敛来达到优化函数的目的,每次只是做一维优化,所以每个循环中的优化过程的效率是很高的, 但是迭代的次数会比较多。分别解出b1和b2,如果两个都是有效的,那么b1,b2的值是相等的。接着是一个判定条件,如果不满足KKT条件,则需要优化,否则跳过,这里当时写的时候看了好久没看明白,在网上搜索到了资料,所以通过两种如果分类正确就一定不会出现的条件,就可以得到这个判断。对后面选中的j进行同样的操作。
2023-10-12 08:50:01
266
原创 机器学习实验4 实现感知机学习算法
通过这次实验,我对于感知机模型的原理有了进一步的了解,也通过实验对这一算法进行了实践,加深了印象。虽然实验中用到的模型比较简单,但是学习到了反向传播优化这一思想。通过可视化得出比较好的分类效果也令我备受鼓舞,期望在后面的学习中可以学到更多机器学习相关知识。为以后的学习工作打下坚实的基础。使用epoch=10,每个x都可以更新一次参数,可以看到10轮之内就可以收敛,达到不错的效果。2. 神经元激活函数建议选用sign函数(数据集最后一列的标签请将 0 转换为 -1)开始训练时的参数更新情况。
2023-10-12 08:46:31
422
原创 机器学习实验3 基于信息增益率的决策树模型
这也是对python数据处理、程序设计的能力考验,有的操作调用方法就可以较快实现,如ndarray的合并、列表求出现次数最多的元素。3、根据选定的属性及该属性取值value,对数据集进行筛选,只保留该属性列值为value的行,并且去除该属性列,因为后面还要递归处理,这列还保留的话,可能会在一个分支上多次使用这个属性进行划分。可以用于递归的数据只有一种属性,此时为叶节点,类别确定为出现的次数最多的类别。可以看到各个特征的信息增益率,由于决策树是多层的,可能在不同的分支对不同的属性信息增益率不同。
2023-10-12 08:44:14
499
原创 机器学习实验2 线性判别分析
使用xlim限定x轴的范围,之后找出各类的点并画在坐标轴上,两个中心使用红色,预测值分别使用蓝绿两色标出。由wT*x可以得出测试集的数据的投影值,根据LDA的原理:数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。通过这次实验,我对于LDA算法的思想有了更清晰的了解,即数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。巩固所学知识,为以后的学习打下坚实的基础。
2023-10-11 17:59:36
273
原创 机器学习实验1 多元线性回归
最后的期望是均方误差最小,根据表达式(y-xw)T(y-xw),要使其最小,可以对w求偏导,取0时是极值。1、使用文件是txt文件,使用open和readlines()函数进行逐行读取,但是读入的是一行带空格回车的字符串,使用strip(‘\n’), split(' '),强制类型转换等进行处理,得出x矩阵和y矩阵。巩固上课所学的知识,对机器学习有了初步的认识和了解,为以后的学习打下坚实的基础。3.对拟合得到的模型在测试集上进行测试,使用均方误差作为实验的准确结果并输出。4、根据公式得出均方误差的公式。
2023-10-11 17:50:14
188
原创 2023年软件工程期末重点
为了获得高质量软件所需要完成的一系列任务的框架。第四代技术、形式化规格说明、环境。模块结构图的深度、宽度。作用域,控制域的含义,关系。几种覆盖:语句覆盖、判定覆盖、条件覆盖的概念。瀑布模型的特点,存在的问题。(缺乏灵活性,文档)生命周期包括哪几个阶段,名称,问题的定义。软件和硬件相比,软件生产力提高的速度很慢(相比摩尔定律)。黑盒测试包括哪些方法,白盒测试包括哪些方法。生命周期中,哪一个阶段占比最大,占比排序?判定成功测试的依据:发现了没有发现的错误。写出语句、判定、条件覆盖的用例。什么是类、什么是实例。
2023-10-11 17:41:41
55
转载 帮转-2024届计算机保研经验贴(部分版)中国海洋大学OUC版
由于网上有大量关于保研基本流程的介绍。阅读本文前,已默认读者对保研有了基本的了解。
2023-10-11 17:17:45
359
原创 计算机网络实验2 HTTP 抓包分析
本次试验中,我们只关注 HTTP 协议,不希望在抓包窗口中看到其他协议的数据包,因此在“display-filter-specification”窗口中输入“ ip.src==82.157.139.98 or ip.dst==82.157.139.98 and http” ,这样只有 HTTP 数据包会在 packet-listing 窗口中显示;答:服务器很清楚的传回了该 html 文件的内容,因为返回的状态码是200 OK,而且可以在Line-based text data中看到返回的html文件。
2023-10-11 17:10:07
1289
原创 计算机网络实验1 捕获 TCP 数据包
实验目的通过实验熟悉Wireshark抓包软件的使用方法,理解TCP传输过程,以及慢启动、拥塞避免等相关技术。实验环境1操作系统:几乎任意windows版本。本实验是在windows下实现的。2、所需软件:实验内容1在windows环境进行Wireshark抓包。2、在windows环境Wireshark窗口中查看各种协议下的数据包。3、在windows环境上传文件到服务器,同时观察TCP传输过程。实验步骤Wireshark的安装。
2023-10-11 17:04:07
948
原创 2022年夏季《移动软件开发》实验报告六
遇到的问题:在写底部Tab模块时,有一个属性是layout_below="@+id/“,这里需要注意在ImageView和TextView中id需要相同,并注意命名规范问题。收获:学习到了ScrollView 、RelativeLayout的使用、插件之间的穿插使用等知识,完成了app首页的设计听了企业的老师讲述,特意强调编码的命名规范,是商业化编程基本要求之一,应避免使用:temp、test1等没有实际业务含义的命名,对于以后的工作帮助很大。
2022-08-21 19:49:34
202
1
原创 2022年夏季《移动软件开发》实验报告五
问题:因为网络问题,在项目创建之后的文件下载困难甚至失败。在写多个列表组时需要在最上面的LinearLayout上面加上android:orientation=“vertical”,使其变为纵向布局。收获:在这次实验中进行了java环境的配置和android studio的安装和配置。了解到了TextView、imageview、父布局、LinearLayout等知识,并且模仿微信“发现”页创建列表布局,学习使用了Textview imageview、LinearLayout。为以后的学习打下基础
2022-08-21 14:04:01
645
原创 2022年夏季《移动软件开发》实验报告四
1、版本问题导致登录与教程不同,最终参考实验一的方法完成此部分内容3、在my.js中忘记加入num变量,导致程序出错,找了好长时间。
2022-08-20 21:07:19
247
原创 2022年夏季《移动软件开发》实验报告三
问题:function getRandomColor()要放到page的外面,在page内调用收获:学习使用video组件实现视频列表的切换方法;掌握了视频自动播放方法,同时也学习了弹幕的发送,以及利用随机函数实现颜色的随机选择,添加了随机颜色弹幕效果。为今后的学习打下坚实的基础。
2022-08-20 13:09:27
382
原创 2022年夏季《移动软件开发》实验报告二
问题:按照教程中的步骤来发现请求的数据返回错误代码400,请求location出现了错误。后来经大佬点拨,发现了可以查询城市数字ID的接口,用这个ID可以获得详细信息。收获:通过这次实验不但巩固了上次实验中的导航栏的调色、HTML组件的使用和一些逻辑实现,并且可以使用动态数据。最主要的是使用wx.request请求获取信息。提高了我对于小程序设计的理解和熟练程度,为以后的学习打下坚实的基础。...
2022-08-18 14:32:14
171
原创 2022年夏季《移动软件开发》实验报告
问题:实验中存在没有使用wx.getUserProfile获取用户信息,加上之后就可以获取用户信息并展示收获:学会了如何创建一个微信小程序,导航栏的调色、HTML组件的使用和一些逻辑实现,并且可以使用动态数据显示头像和昵称、wx.getUserProfile获取用户信息等等。为以后的进一步学习打下坚实的基础。......
2022-08-17 15:02:07
118
原创 《Python科学计算》课程设计
课程设计名称使用scikit-learn构建和评价xx模型课程设计内容wine数据集和wine_quality数据集是两份和葡萄酒有关的数据集。wine数据集包含3种同起源的葡萄酒的记录,共178条。其中,每个特征对应葡萄酒的每种化学成分,并且都属于连续型数据。通过化学分析可以推断葡萄酒的起源。wine_quality数据集共有1599个观察值,11个输入特征和一个标签。其中,不同类的观察值数量不等,所有特征为连续型数据。通过酒的各类化学成分,预测该葡萄酒的评分。(1) 使用pandas库分别读取wine数
2022-07-02 21:39:53
1273
原创 NLP06 : TF-IDF特征处理
TF-IDFTF是词频,一个给定的词语在该文件中出现的频率 分母代表包含词语的文件数目,如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用作为分母
2022-06-27 13:49:43
261
原创 NLP04 : 汉语分词
最大匹配算法: 最少分词法(最短路径法) : 请同学们利用人民日报语料库或自己构建的语料库(30词以上)作为词典,任选五个句子,并基于正向最大匹配算法和最短路径法分别对这五个句子进行分词,并分别计算分词结果的正确率,召回率和F-测度值。输出句子,基于两种算法的分词结果和其对应的评价指标值。...
2022-06-27 13:45:23
268
原创 NLP02 : 二元文法模型
请同学们使用免费的中文分词语料库,如人民日报语料库PKU,使用语料库中的常见词编写一个句子,使用二元语法(即每个词只与和它相邻的前一个词有关)在语料库中对句子中的词进行词频统计,输出句子的出现概率。...
2022-06-27 13:42:15
1581
1
原创 pyhon科学计算5
1. 创建一个有50个元素的Series对象,其values数组中的数据随机生成,数据总体上满足均值为1000, 标准差为200的正态分布。(1) 自定义异常值为:小于QL-1.25IQR或大于QU+1.25IQR的值。绘制箱线图,检测生成的数据中是否包含大于上限和小于下限的异常值,并且要求这两类异常值都要有。如果不满足要求,那么就重新生成数据,直到满足要求为止;(2) 利用箱线图获取并输出异常值的索引;(3) 编写一个通用函数,其功能为将一个Series对象中大于上限的异常值用QU替换,而小于下限的异常值
2022-06-27 13:34:23
791
原创 python科学计算4
1. 从“国民经济核算季度数据.npz”文件中读取2000年第一季度到2017年第一季度的所有数据并存储在ndarray对象中。(1) 创建一个DataFrame对象,其数值数组不包含原ndarray对象的第0列和最后一行数据(即不包含“序号”那一列数据和“2017年第一季度”那一行数据);其列索引为:['时间', 'GDP', '一产', '二产', '三产', '农业', '工业', '建筑', '批发', '交通', '餐饮', '金融', '房地产', '其他'];(2) 按“年份”分组(需提取“
2022-06-27 13:32:07
2045
原创 python科学计算实验3
1. 创建一个8行5列的DataFrame对象,列名为[‘Num’, ‘Name’,‘C++’, ‘Java’, ‘Python’],分别代表学号,姓名,C++成绩,Java成绩,Python成绩。所有成绩要求分布在[50,100)区间,是随机生成的整数。(以下所述的行号和列号均代表行列索引的默认编号。请使用本章所学的知识按顺序解决这些问题,不要投机取巧!)(1) 复制第4个学生的全部信息,把它作为新行追加到表尾;(2) 将(3, 4)、(6, 3)、(5, 2)、(2, 3)、(1, 0)这几个位置上的元
2022-06-27 13:29:56
833
原创 python科学计算实验2
1. 以“populations.npz”为素材,完成(a)、(b)题目的要求。(本题要求在绘图之前,先进行数据处理:删去全为“nan”的行,然后按年份“从小到大”排序)(a) 绘制总人口线形图。x轴是“年份”,从起始年开始,每隔4年绘制一个刻度。(b) 绘制多序列垂直条形图,包括2个子图。第1个子图为“男女人口”,第2个子图为“城乡人口”。x轴上的序列为:2000年,2005年,2010年和2015年。 2. 以“国民经济核算季度数据.npz”为素材,绘制饼图,包括4个子图(2×2)。第1,2个子
2022-06-27 09:19:19
1555
1
原创 数据结构实验6:校园地图导航
校园地图导航写一个校园地图导航,可以在代码里设置好点名,路径,路径权重程序运行,输入两个点,输出最短距离及最短路径
2022-06-26 18:20:41
1437
原创 数据结构实验5:哈夫曼编码
哈夫曼编码实现文本压缩1、输入字符串,输出字符串的哈夫曼编码; 输入文本文件(英文),输出哈夫曼编码文件2、附加:解压缩
2022-06-26 18:17:57
1526
原创 数据结构实验4:KMP
KMP算法1、下载y-cruncher软件,利用该软件生成pi的txt文件2、读文件,并用C语言实现KMP算法,查询自己的生日或其他感兴趣的字符串,字符串长度大于等于6
2022-06-26 18:13:21
1140
原创 数据结构实验2:多项式加法乘法
一元多项式的加法乘法1、通过键盘随机输入两个多项式P(x)和Q(x)的内容。2、输出结果要有P(x)、Q(x)以及他们的和。
2022-06-26 18:05:03
252
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人