ML算法:K-means
K-means实验目的在聚类的相关知识的基础上,本次实验将对论文《Clustering by fast search and find of density peaks》中的实验方法进行学习,重现论文的算法,并对该算法的性能进行分析。
实验原理聚类作为机器学习常用的无监督学习方法,核心思想就是根据元素的相似性进行分类,诸如K-means,K-medoids等都是聚类的常见算法,但是K-means算法的核心依赖于欧氏距离,无法分辨出非球形的簇,而DBSCAN虽然可以解决非球形簇的问题,但是只适用于一组坐标定义的数据,且效率较低,因此在《Clustering by fast search and find of density peaks》一文中,作者提出了新的聚类算法(下称DPC),既能分辨出非球形的簇,也有着较高的效率(无需显式地最大化每个数据点的密度场。
DPC的基础是假定每个簇的中心v具有较高的局部密度,且被局部密度较低的邻域包围,且与其他局部密度较高的点之间距离较大,因此在算法中,需要计算的数据为:各个点之间的欧氏距离,局部密度以及大小关系,具体运行步骤如下:
计算样本的距离矩 ...
ML算法:XGBoost
XGBoost实验目的本实验要求学习XGBoost模型的原理,并实现该模型,以及在数据集上完成训练和测试。
实验原理XGBoost的基本原理就是以决策树作为基学习器的加法模型,每棵树根据前t个模型的输出计算节点的权重,最终的输出为:
y_i^{(t)}=∑^t_{k=1}f_k (x_i )=y _i^{(t-1)}+f_t (x_i )本实验的问题模型为回归问题,即$𝑙𝑜𝑠𝑠(𝑦_𝑖,𝑦 _𝑖^{(𝑡)} )=(𝑦_𝑖−\hat y _𝑖^{(𝑡)} )^2$。
对于损失loss,记 $g_i$ 为一阶导数,$h_i$ 为二阶导数,即$g_i=\frac{\partial\ loss(y_i,y _i^{(t-1)})}{\partial\ y _i^{(t-1) } }=2(\hat y^{t-1}-y)$, $h_i=\frac{\partial^2 loss(y_i,y _i^{(t-1)} )}{\partial \ (y _i^{(t-1)} )^2 }=2\\ $。
在训练第t棵决策树时,目标函数为$Obj^{(t)}=∑_{i=1}^n[g ...
编译原理-GVN
思考题
请简述概念:支配性、严格支配性、直接支配性、支配边界。
支配性
在入口节点为b0的流图中,若bi在从b0到bj的所有路径中均出现,则称b1支配bj,其中Dom(bj)是所有支配bj的节点的集合
严格支配性
对于流图中给定的节点b,若节点$a\in Dom(b)-b$,则称a严格支配b节点
直接支配性
对于流图中给定的节点b,严格支配b的节点集合为Dom(b)-b,在该集合中距离b最近的节点直接支配b,记为IDom(b)
支配边界
对于流图中给定的节点b,若节点a满足:(1)b支配a一个前驱q($q\in preds(a),b\in Dom(q)$)(2)b不严格支配a,将具有这种性质的a的集合记为b的支配边界DF(b)
phi节点是SSA的关键特征,请简述phi节点的概念,以及引入phi节点的理由。
phi节点:出现在程序基本块汇合节点的对某一变量x进行一次新的定义,作为程序的一条指令,完成了将来自不同边的x的值进行合并的工作
引入理由:为了满足SSA的静态单赋值形式,沿着流图的不同路径,x的当前值可能被分配了一个唯一的名字,在多条路径的汇合处,不同的 ...
ML算法:SVM
SVM实验目标学习支持向量机的原理,用两种不同的算法寻找支持向量机的解,并完成比较。
实验原理对于给定样本集,SVM的任务就是基于样本集在样本空间中确定一个划分超平面,将不同类别的样本分开,即找到w,b使得$y(w^T+b)\ge1$成立,并实现最大化间隔,即最大化$||w||^{-1}$。为求解w的最优解,,由于实验中的数据并不完全是线性可分的,因此采用硬间隔的方法求解存在困难,本次实验分别采用梯度下降法和SMO(序列最小优化算法)来求解。
SVM的任务:
min_W||w||^2/2\\
s.t. y_i(w^T)\phi(x_i)+b)\ge 1,i=1,2,...m
梯度下降法
SVM中的梯度下降方法也类似于逻辑回归中的梯度下降原理,根据迭代的值计算损失和梯度更新参数,每次迭代过程中,计算当前的$y*(w^T+b)$的值,将值小于一的样本进行累加计算梯度,根据梯度和学习率更新w和b。
SMO
SMO算法是John Platt在《Sequential Minimal Optimization: A Fast Algorithm for Training Support V ...
编译原理-LLVM IR语法
问题1: getelementptr请给出 IR.md 中提到的两种 getelementptr 用法的区别,并稍加解释:
%2 = getelementptr [10 x i32], [10 x i32]* %1, i32 0, i32 %0
%2 = getelementptr i32, i32* %1, i32 %0
两种GEP都是取数组中的特定元素的地址指针,区别在于(1)计算基础类型为数组指针,(2)中的计算基础类型为元素指针, (1)中的用法是借助长度为10,数据类型为i32的数组指针取其中某个元素的地址指针,其中数据索引的偏移有两个,因为数据类型是[10 x i32],第一个偏移对应的内存偏移量为偏移值(0) x 10 x 4,第二个偏移对应的内存偏移量为偏移值(%0) x 4,偏移量与原地址相加计算得到的数据存入%2中,类型为i32;(2)中的用法是通过元素指针和偏移值得到某个元素的地址指针,数据类型为i32,因此只有一个偏移值,对应的内存偏移量为偏移值(%0) x 4,偏移量与原地址相加计算得到的数据存入%2中,类型为i32。
问题2: cpp 与 .ll 的 ...
ML算法:逻辑回归
逻辑回归实验内容及步骤本实验主要利用逻辑回归(logistics regression)对kaggle数据集进行分析预测。
数据处理
#NULL项舍弃
df=df.dropna()
ENcode,将非数字型的属性值编码为0~1的数字
df.Gender=df.Gender.map({'Male':1,'Female':0})
df.Married=df.Married.map({'Yes':1,'No':0})
df.Dependents=df.Dependents.map({'1':0,'0':0.3,'2':0.6,'3+':1})
df.Education=df.Education.map({'Graduate':1,'Not Graduate':0})
df.Self_Employed=df.Self_Employed.map({'Yes':1,'No':0})
df.Property_Area=df.Property_Area.map({'Rural':0,'Urban':0.5,'Semiurban':1})
df.Loan_Status=df.Loan_Statu ...
编译原理-词法分析
词法分析实验要求
完成基于flex的C-minus词法分析器
完成基于bison的C-minus语法分析器
实验难点
根据C-minus的词法使用正则表达式完成词法分析器
理解flex和bison的用法以及掌握flex,bison联动构建语法分析器的方法
正确构建C-minus的语法树
实验设计
正则匹配
正确匹配C-minus的所有token,以及注释,空格,换行等特殊字符,利用flex与token的名字关联起来(作为返回值),例如:"if" {pos_start = pos_end-1; pos_end ++; pass_node(yytext); return IF;},同时维护pos_start,pos_end,lines的值,表达式的顺序代表了匹配的优先级:
注释 \/\*(?:[^\*]|\*+[^\/\*])*\*+\/
空格,制表符 " "|\t
换行\n
浮点数[0-9]+\.[0-9]*|[0-9]*\.[0-9]+
整形[0-9]+
变量名 [a-zA-Z_]*
其他token "if" "else" "while" "return""void" "int ...
基于GPT-2的chatbot
chatbot设计该项目的仓库链接:https://github.com/Wonderful-Me/GPT-Chinese
信息爬取本部分通过网络爬虫实现了实时信息的获取,比如查询每日各个省份疫情的情况以及天气情况,微博热点新闻。在输入端输入对应的查询请求后,聊天机器人便可以伪装成浏览器访问对应的网站爬取数据并挑选出需要的数据并返回。
新冠疫情聊天人可以识别与“新冠疫情”相关的问题,自动爬取各个省份今日新冠疫情的新增情况,具体实现功能如下:
查询省份:可以对某个省份的疫情状况(新增确诊和新增无症状)
点击右下方链接即可跳转到相关网站查询详情
通过echarts柱状图显示各个省份的确诊情况,支持拖动和缩放
#alist 存储城市名,新增确诊和新增无症状
for i in citylist:
if (i['today']['wzz_add'] == 0):
clist.append([i['name'],i['today']['confirm'],0])
else:
clist.append([i['name'], i['today'] ...
ChatBot
the design of CHatBotsome resourcesGPT-2 中文文本生成
Re-Subject:
采用此组合为主要的参考内容,其他的为辅
https://github.com/yangjianxin1/GPT2-chitchat
(近期也在开始琢磨这个项目)
使用指南见:GPT-2生成式多轮对话入门——-深入理解“用于中文闲聊的GPT2模型”项目_三重极简的博客-CSDN博客_gpt2
https://github.com/thu-coai/CDial-GPT【[论文](GPT.pdf)】
https://github.com/Morizeyao/GPT2-Chinese【信度高、体量大 / 相关面广,下辖可选项多】
hughqiu/GPT2-Chinese: Chinese version of GPT2 training code, using BERT or BPE tokenizer. (github.com) 【中意】
使用指南见:GPT-2中文文本训练及生成_是木子啦~的博客-CSDN博客_gpt2中文生成
数据集来源:
大规模中 ...
Knowledge Framework of OS PART II CH3
Part IIProcess Concept & OperationsConcepts of Process the building of processing
Pre-processor:like #define,#include —-try “gcc -E hello.c”
Compiler and Optimizer
compiler:Syntax checking and analyzing
if no syntax:construct the intermediate codes
i.e,assembly
Optimizer :optimize the codes
check the parameter of gcc
Assembler and Linker
assembler assembles hello.s and generate hello.o
the linker puts together the objects files as well as library files
compile multiple files?
makefile ...
Knowledge Framework of OS PART I CH1&CH2
Knowledge Framework of OS :PART I CH1&CH2textbook: Operating System Concepts 10th Edition check
course home : http://staff.ustc.edu.cn/~ykli/os2022
ch1 Overview of an Operating Systemsystem organizationcomputer-system organization
One or more CPUs, device controllers connect through common bus providing access to shared memory
Concurrent execution of CPUs and devices competing for memory cycles
I/O devices and the CPU can execute concurrently
Each device controller is in charge of a partic ...
以git-ftp为主的学习记录
以git-ftp为主的学习记录
原本的目的是美化个人FTP主页(之前都是用FileZilla进行课程pdf文件等的传输,看到同学的个人主页后突然意识到也可以利用hexo完成相关功能,虽说没什么用,但也记录一下学习的过程。
……遇到了好多问题> _ <尚未完成
操作环境:win11 wsl2+Ubuntu 20.04 LTS,USTC ftp(默认首页为public_html下的index.html文件
git-ftp关联优点:便于管理ftp
在github中创建名为git-ftp的repo后,使用git clone操作克隆到本地(或者可以在本地进行git init操作,创建.git文件,使用git remote操作与远程链接;
因为2021年8月13起github不允许在git操作时进行登录确认,因此要提前配置好:
git config --global user.name YOURNAME
git config --global user.email YOUREMAIL
要使用git-ftp的功能,需要先安装git-ftp:(确保git已经安装)sudo apt-get ...