模型中python库函数、方法介绍:
-
IRT引入了numpy,tqdm,scipy,EduCDM这些库
numpy:存储和处理矩阵运算
tqdm:python进度条库
scipy:类似于numpy,使用了其中的stats(一个具有统计功能的库) -
def init_parameters(prob_num,dim)初始化函数,输入两个参数(试题矩阵,学生/试题嵌入维度)
其中用到方法有:
stats.norm.rvs(loc=0.75,scale=0.1,size) 产生一个符合正态分布的随机矩阵 loc均值 scale方差 size矩阵规模
stats.uniform.rvs(size) 产生一个符合均匀分布的随机矩阵
这个函数主要是用来初始化试题难度参数,区分度参数,以及猜测参数 -
def init_prior_prof_distribution(dim)函数:
stats.uninform.rvs()
stats.multivariate_normal.pdf(矩阵,均值mean,方差cov)这是一个多维正态分布的概率密度函数,mean=np.zeros(dim)是一个维度为dim的零矩阵,cov=no.identify(dim)是一个维度为dim*dim的方形矩阵
np.sum()如果没有参数,就是矩阵所有元素求和
该函数是为了初始化生成两个随机矩阵,应该是用在EM算法中 -
def get_Likelihood(a,b,c,prof,R)
R.shape[0]矩阵第一维长度(行数) R.shape[1]矩阵第二维长度(列数)
a试题难度参数 b试题区分度参数 c试题猜测参数
prof是描述学生能力的矩阵
np.expand_dims(矩阵,axis)扩展数组维度
例子 数组a[[1 2 3][4 5 6]] 形状(2,3) 注意【】加的位置
当axis=0时,a扩维为(1,2,3) 数组变为a【[[1 2 3][4 5 6]]】
当axis=1时,a扩维为(2,1,3) 数组变为a[[【1 2 3】][【4 5 6】]]
当axis=2/-1时,a扩维为(2,3,1) 数组变为a[[【1】【2】【3】][【4】【5】【6】]]
np.sum(矩阵,axis)
当axis为0的时候,假如是一个3维矩阵a[2][3][4],sum计算出的是一个34二维矩阵,矩阵中每一项的值来自于求和,例如0行0列的值为a[0][0][0]+a[1][0][0]
axis=1,就是固定第二维,生成24矩阵
以次递推 end
irt3pl自己定义的一个函数(双参数模型)
np.exp() 以e的幂运算 np.dot()矩阵乘法运算 np.log() e为底的对数运算 -
def update_prior()
-
def update_irt() EM采样算法估计a b c
以上def函数只针对本人研究的IRT模型源码,其他库里的函数基本作用介绍如上
对于扩维函数和求和函数,本人参考了两篇写的很好解释文章,引用如下:
np.expand_dims()扩展维度函数
https://blog.csdn.net/qq_37924224/article/details/119816771?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-8.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-8.no_search_linknp.sum()https://blog.csdn.net/rifengxxc/article/details/75008427
np.sum()
https://blog.csdn.net/rifengxxc/article/details/75008427
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)