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是开机默认启动的,可以在任务管理器-启动应用中将其禁用,毕竟我也不是每天都要玩 ...
2024年度总结
年度总结2025年了,希望是新的开始。因为准备考研,总结工作推迟到了现在。毕业,二战,都是难忘的人生经历,但人生永远要向前看,好好准备复试,就是现在最重要的事。
毕业了,很高兴能在软件学院度过大学生活,能学习自己喜欢的专业无疑是我的幸运,因此这一路的辛苦都不值一提。在山大有许多让我印象深刻的老师,学到了很多有用的知识和技能,毕业论文没有多提,这里也不多赘述,心中记着,无需多言。但要特别感谢一下高数下的授课老师来翔老师 ,关注班里每一个学生,让我在大学教室里看到了高中老师一样的认真负责,对于当时缺乏自信的我来说提供了很大的鼓励。有这样认真负责的老师,可以说山大数学名副其实。
回顾本科所学的课程,大概可以分为三个阶段。一是基础知识,如数学基础和编程语言基础,二是计算机学科的知识框架,如数据结构,数据库,计算机组成,操作系统,计算机网络等,三是更深层次的应用,如机器学习,深度学习,并行计算,nlp等等,此外还有一些工程能力方面的训练。
两年考研,我收获了很多。最大的长进就是心态方面的进步,25年的考研题目没有一科可以说是真的简单的,都考了一些令人意外的东西,但我在考场上并不慌张,能够及时调整 ...
一些算法笔试题
整理了一下前几个月做过的一些大厂小厂的笔试题,一开始用C++写的,后来用JAVA写的。
华为模拟题1.计算单词平均长度
12345678910111213141516171819202122232425#include <iostream>#include <sstream>#include <vector>#include <iomanip>using namespace std;int main(){ string str; getline(cin,str); //单纯cin的话遇到空格就停止了,需要geiline得到带空格的一整行 istringstream ss(str); string temp; vector<string> words; while (getline(ss,temp,' ')){ words.push_back(temp); } float n=words.size(); f ...
Latex从入门到正常使用
好久没更新博客了,把以前的上传一下测试测试…
以下内容是一年前的
之前插入公式一般都是直接截图,这样博客文件就会图片一大堆,很不优雅。但是太忙了不愿学latex。最近抽空看了看latex格式,原来这么简单,分分钟就可熟练使用。latex格式:$公式格式$
右上标单字符 a^2: $a^2$ 多字符 a^{2n}:$ a^{2n}$
右下标单字符 a2:$a_2$ 多字符 a\{t,f}:$a_{t,f}$
其他需要用字符串代替单个字符的以此类推,用{}即可
对数:log_ax:$log_ax$
分数:\frac{a}{b}:$\frac{a}{b}$
求和符号:\sum_{i=0}^n:
$\sum_{i=0}^n$
下标放到正下方:E=\frac{1}{2}\sum\limits_{k}(y_k-t_k)^2:
$E=\frac{1}{2}\sum\limits_{k}(y_k-t_k)^2$
分段函数: h(x)=\begin{cases}x, & x>0,\0, & x \le 0\end{cases}:
$ h(x)=\begin{ ...
C++回顾
过去的学习中常用python做数据分析机器学习类的任务,java做软件工程项目,c系的c和c++却疏于使用。
基本数据类型与表达式编辑(.cpp,.h)→编译(.obj)→链接(.exe)→运行→输出结果
符号常量的定义格式为:#define <常量名> <值>或 const <类型名> <常量名>=<值>;
ASCII字符集:A 65 a 97同一个字母大小写相差32,因此大写字母+32即可转换成小写
result = value << shift;
value 是要进行左移的整数(转换为二进制),shift 是要左移的位数,result 是左移后的结果。
函数• 值传递:把实参的值赋值给形参。• 地址或引用传递:把实参的地址赋值给形参。C++默认的参数传递方式是值传递
如果函数定义在本源文件中调用点之后或定义在其它文件(如:C++的标准库)中,则在调用前需要对被调用的函数进行声明。
如果在使用一个全局变量时未见到它的定义,则在使用前需要对该全局变量进行声明,格式为:extern <类型名&g ...
自然语言处理知识梳理
一、词汇向量化词汇向量化向量化是指采用计算空间的数值向量来表示离散语言文字的过程。词汇向量化是将最小语言功能单位词汇映射到计算空间的方法,并期望映射后的向量仍能保持词汇的语言学重要属性,如语义、语用或形态等。
词汇向量化方法可以分为两大类:
离散编码表示离散向量化方法是将词汇表示成整数形式的唯一标识符,或是编码成为一个整数向量。典型代表为独热编码,词汇向量即为词典数量对应的高维空间上的 0/1 向量。向量维度和语义是可以理解和解释的。
分布式表示词汇分布式表示或稠密向量表示是指采用固定维度的实数向量表示词汇,多个维度共同刻画词汇语义和词汇之间的关系,如向量之间的空间距离或是余弦相似度可以表示词汇的语义关系。向量空间的每个维度不直接对应特定的含义。
词嵌入是将词汇嵌入到一个低维连续稠密空间中,其维数相比词汇总量要小得多,每个单词对应一个实数域上的向量。随着预训练词向量的普及,在自然语言处理领域的许多情形中,词向量和词嵌入两个概念互用
独热编码方式(One-Hot):每个词汇的编码即为词汇表空间的独热向量$ { {0, 1} }^{|𝑉 |}$, 即只有当前词汇对应位置取值为“1”,其 ...
