国科大自动课程评估
省流:打开课程评价界面,F12打开开发者工具,在console粘贴以下代码,回车执行。
这种方式比较兼顾效率和安全。目前为秋季学期,春季和夏季到时候我会再继续看。
1234567891011121314var tds = document.getElementsByTagName('td'); for(var i = 0; i<tds.length;i+=5) tds[i].getElementsByTagName("input")[0].checked=true;var answers = [ "老师讲的很有意思,结合生活,生动形象", "我认为本课程不需要进一步改进和提高", "我平均每周在这门课程上花费2小时", "在参与这门课之前,我对这个学科领域很感兴趣", "我对该课程的课堂参与度高,没有缺勤"];text = ...
《动手学深度学习》部分笔记
李沐老师b站的课程动手学深度学习v2以及书,根据个人情况,选择性地做了一些笔记。
基础权重衰退 正则化(Regularization) 是一种防止模型过拟合(Overfitting) 的核心技术。它的核心思想是通过对模型施加某种约束,限制其复杂度,从而提升在未知数据(测试集) 上的泛化能力。 通常惩罚项是权重参数的L1/L2范数。
对于若某一层的操作是 逐元素操作(例如激活函数 ReLU、Sigmoid),则每个输出元素仅依赖于对应的输入元素。向量对向量的导数是矩阵, 当对向量进行逐元素操作时,求导得到的Jacobian矩阵是对角矩阵。这是因为每个输出元素仅依赖于对应的输入元素,导致非对角线上的偏导数为零。
eval()的作用切换模型模式:将模型及其所有子模块(如Dropout、BatchNorm等)设置为评估模式。
影响特定层的行为:
Dropout层:在训练模式下会随机丢弃神经元,但在评估模式下会关闭丢弃功能,使用全部神经元进行前向传播。
BatchNorm层:在训练时基于当前批次计算均值和方差,而评估时使用训练阶段累积的全局移动平均统计量,确保结果稳定。
卷积
1*1的卷积层 ...
理解transformer网络结构
先看整体结构:
首先是嵌入层embedding,将inputs和outputs的token转换为向量。解码器在做预测时输入是之前时刻解码器的输出,因此这里写的右移(shiftrd right)。
positional encoding将序列信息加入向量中。RNN通过将上一个时刻的输出作为下一个时刻的输入之一学习到了数据中的时序信息,在transformer中,后续的attention仅计算加权和,没有时序信息(但也因此获得了并行的优势),因此在positional encoding这里将时序信息编码之后加入输入之中,否则的话学习不到时序信息,一组token打乱顺序输入也不会有区别。
在编码器中,有n个相同的层,每个层包括多头自注意力层和前馈神经网络层两个子层,每个子层都采用残差连接和层标准化。残差连接解决网络层数加深时梯度爆炸、梯度消失等问题。层标准化对每个样本进行标准化,而批标准化对每个特征进行标准化,在时序数据中样本长度可能变化会比较大,因此经过填充后批标准化的结果波动比较大。
多头注意力相对于单头注意力来说,进行h次不同映射的投影,将每个attention的输出拼接起来作为最 ...
集成学习预测生还者
代码及数据集:https://github.com/JIANG54864/ml_exp/tree/main/exp5
【实验内容及说明】
本实验通过使用乘客数据(即姓名、年龄、性别、社会经济阶层等)使用集成学习的方法,来对数据集进行分类,从而预测哪些乘客在事故中幸存。本实验训练集包含891条数据,测试集包含418条数据。每条数据都有以下几个特征,包括Pclass(舱位等级)、Sex(性别)、Age(年龄)、SibSp(同行的兄弟姐妹/配偶等的个数)、Parch(同行的父母/子女的个数)、Ticker(票号)、Fare(票价)、Cabin(舱位号)、Embarked(上船港口,C = Cherbourg,Q = Queenstown,S = Southampton)等。通过Survived(乘客是否存活,1表示存活) 作为标签进行模型的训练。
利用若干算法,针对同一样本数据训练模型,使用投票机制,少数服从多数,用多数算法给出的结果当作最终的决策依据,对数据集进行分类,给出在测试集上的精确度。集成学习所用的基学习器需要自己实现而不能调用现成的第三方库。
【正文】
集成学习构建并结合多个学 ...
三种决策树算法分类汽车品牌
完整代码及数据集:https://github.com/JIANG54864/ml_exp/tree/main/exp4
【实验说明】
本实验通过汽车数据集cars.csv来实现对决策树进一步的了解。其中,汽车数据集包含3个品牌(即美国、欧洲、日本)的汽车的信息。该数据集的目标是使用诸如油耗、汽缸数、立方英寸、马力、重量、到60迈的时间、制造年份等特征找到汽车的品牌。
数据集内包含3类汽车数据,每条记录都有7项特征:油耗(mgp)、汽缸数(cylinders)、立方英寸(cubicinch)、马力(hp)、重量(weightlbs)、提速到60迈的时间(time-to-60)、制造年份(year),可以通过这7个特征预测汽车属于(US., Europe., Japan.)三个中的哪一品牌。
本实验将五分之四的数据集作为训练集对决策树模型进行训练;将剩余五分之一的数据集作为测试集,采用训练好的决策树模型对其进行预测。训练集与测试集的数据随机选取。本实验采用准确率(accuracy)作为模型的评估函数:预测结果正确的数量占样本总数。 决策树模型需要自己实现,不可使用已有的第三方库;
2. ...
BP神经网络识别数字
完整代码:https://github.com/JIANG54864/ml_exp/tree/main/exp3
数据集较大,请通过网盘下载。
【实验内容及说明】
MNIST数据集是一个大型手写数字数据集。通常用于训练各种图像处理系统。该数据集还广泛用于机器学习领域的培训和测试。MNIST手写数字识别模型的主要任务是:输入一张手写数字的图像,然后识别图像中手写的是哪个数字。
mnist_train.csv文件包含60,000个训练实例和标签。mnist_test.csv包含10,000个测试例子和标签。数据集中每一行由785个值组成:第一个值是标签(从0到9的数字),其余784个值是每个位置的像素值(从0到255的数字)。
可将训练样本划分为59000 张样本的训练集和1000 张样本的验证集,测试集可只取1000 张测试样本。其中每个样本表示 28×28 像素的灰度照片,所有照片分属10个不同的类别。
(1) 用神经网络对给定的数据集进行分类,画出loss图,给出在测试集上的精确度;(2) 不能使用 pytorch 等框架,也不能使用库函数,所有算法都要自己实现;(3)整个神经网络 ...
参数估计与非参数估计
本实验包括三个部分,一是求解最大似然估计的均值和方差,二是Parzen 窗估计和设计分类器及KNN概率密度估计,三是KNN方法来构建一个分类器。以上三个实验的数据及完整代码:https://github.com/JIANG54864/ml_exp/tree/main/exp2
一、 最大似然估计【实验内容及说明】
类1
类2
样本
x1
x2
x3
x1
x2
x3
1
0.76
-2.1
-1.9
0.49
0.0012
-0.065
2
-1
-2.6
0.87
0.054
-0.063
-0.12
3
-5.3
-0.15
-1.6
0.47
0.034
-0.35
4
0.89
-4.7
-0.029
0.69
0.1
0.17
5
1.9
2.2
-0.23
0.55
-0.18
-0.011
6
-0.3
-0.87
0.27
0.61
0.12
-0.27
7
-0.087
0.58
0.42
0.58
0.089
-0.4
8
-3.3
-3.4
-0.2
0.27
-0.04
-0.31
9
-0.32
...
贝叶斯决策论预测贷款违约
数据集及完整代码已上传到github:https://github.com/JIANG54864/ml_exp/tree/main/exp1
信用风险是指银行向用户提供金融服务后,用户不还款的概率。信用风险一直是银行贷款决策中广泛研究的领域。信用风险对银行和金融机构,特别是商业银行来说,起着至关重要的作用,但是一直以来都比较难管理。
本实验以贷款违约为背景,要求使用贝叶斯决策论的相关知识在训练集上构建模型,在测试集上进行贷款违约预测并计算分类准确度。实验目的是使用贝叶斯处理实际问题,不得使用现成工具包直接进行分类。
训练数据集train.csv包含9000条数据,测试数据集test.csv包含1000条数据。注意,训练集和测试集中都有缺失值存在。
以下是字段说明:
字段
描述
loan_id
贷款记录唯一标识
user_id
借款人唯一标识
total_loan
贷款数额
year_of_loan
贷款年份
interest
当前贷款利率
monthly_payment
分期付款金额
grade
贷款级别
employment_type
所在 ...
装系统记录
一直想试一下怎么装系统,但是实在是没有遇到需要重装系统的需求,况且自己电脑上文件很多暂时还是稳妥最重要。最近在家里翻出来有个老古董笔记本(2009年生产的七喜牌笔记本电脑),开机发现还是windows xp系统,正好用来给我实践。主要参考的是B站博主硬件茶谈的教程。
硬件准备:一个至少8GB的U盘,后续操作会删除U盘内原来的文件,所以如果有存有用的文件的话要先备份一下。首先在微软官方网站,下载自己需要的windows版本,选择创建windows xx安装媒体下的立即下载(win11还有另外两个途径,win10只有这个途径,因此为了统一就都安装这个办法安装了),运行下载的这个程序,按照界面一步一步来即可。
将需要装系统的电脑插上U盘,按电源键后,笔记本按住F2,台式机按住DEL键(通常是这样)进入BIOS界面。复习一下计算机启动的知识:通电后首先读取ROM中的基本输入输出程序(bios),然后进行硬件自检(post)。此后 BIOS按照”启动顺序” (Boot Sequence),把控制权转交给排在第一位的储存设备。计算机读取该设备的第一个扇区,也就是主引导记录…
我们要做的就是将下载的 ...
借助ollama本地运行各种开源大模型
通义千问算是我最喜欢的国内大模型了,比豆包出来早,而且还有开源版本,今天在本地跑了最新的qwen2.5。我选择的是ollama工具,windows环境即可,步骤很简单,如下所示。
下载安装ollama官方网站的下载链接为:https://ollama.com/download/OllamaSetup.exe,但是这个下载链接在国内下载速度简直是龟速,我试了科学上网也不行。
我的办法是去github上下载:https://github.com/ollama/ollama/releases,在assets中下载自己需要的版本即可,我想在windows下直接运行,因此下载的是https://github.com/ollama/ollama/releases/download/v0.5.4/OllamaSetup.exe。
ollama安装以及后续的模型下载都默认在c盘(可以通过设置环境变量修改,建议先修改,方法见后文),因此需要留有一定的空间(我下载的7b参数的qwen2.5大概需要5个G)。安装好之后ollama是开机默认启动的,可以在任务管理器-启动应用中将其禁用,毕竟我也不是每天都要玩 ...
