申明:本文作者才识有限,仅作为学习记录,如有差错,欢迎指正!也希望对他人有些许助益.

在R语言中有一些关于教育诊断的一些包,我试着进入R包的CRAN,进行关键词检索,找到我想要试玩的那些教育数据挖掘(或许叫教育诊断更为恰当),我搜索的关键词有Item Response Theory(项目反应理论), Knowledge Space(知识空间), education.

首先,我要试玩的是kst(Knowledge Space Theory),kst的基本思想是一个学生对某领域知识的掌握程度可以通过该学生对问题的应答情况来体现,问题可以被学生答对打错。知识空间通俗意义上讲为构成某一领域知识的所有可能的知识状态的集合。

用途:自适应构造每个学生的学习路径,针对不同学生所缺乏的知识点来推荐相应的高速有效的学习路径。

要想了解学生的知识状态,首先我们要精心设计一系列能够具体测试相应知识点的问题,然后让学生参加测试,这样能够正确回答的问题就可以表征学生的知识状态。

知识空间现已应用在数学、物理学、化学、医学等学科领域。如果想应用于计算机领域也未尝不可。

但知识空间的构建,往往需要领域专家进行构建,但这往往太过费时,且精度不一。这也是知识空间不能广泛应用于实际的关键问题,如何摆脱专家进行构建知识点及其相互关联这是才要点。

杨文正等人提出了让学生在学习的过程中自己构建知识点及其相互关联,相应的让专家也构建该领域的知识点及其关联,然后进行对比分析,但文章提到使用知识空间技术进行分析,却没有提供更多的使用知识空间进行分析的研究细节,只是简单的使用了知识空间的概念。

对于知识空间理论来说,测试学生对某一领域知识的掌握程度可以转换为学生解答相应知识点构成问题的对与错的个数,而按章节组织的知识可以更加容易的构成知识空间领域的知识点,且知识间相互关系也更加容易被算法所获得。

首先,引入关键词:
知识结构:Knowledge structure
知识空间:Knowledge space
猜测关系:Surmise relation
蕴含关系:Entail relation


kst简介:

知识空间理论基于集合理论框架,提供了在特定知识领域里使用数学的形式来操作知识结构.kst包提供了基础的函数来产生/处理/操作知识结构和知识空间。知识空间了理论中最基础的假设是每个知识域(domain)可以由问题(problems)集合或者项目(items)集合进行表示.知识空间理论中假设给定的项目之间相互关系,即一个项目是另一个项目的前提条件。这种前提关系被定义为猜测关系(surmise relations),它在不同项目间建立了拟序关系(quasi-order)。这种猜测关系的优势在于减少了知识状态的数量,提供了更加可靠的知识状态。

首先,打开终端,输入:R,

输入:install.packages(“kst”),进行安装R包。

加载kst包:library(kst)

1.知识结构(knowledge structure)

定义:知识结构被表示为(Q,K)(Q,K),其中QQ是一个非空集合,KK是QQ形成的子集,它至少包含了QQ和空集∅\varnothing. 集合QQ成为知识结构(Q,K)(Q,K)的域(domain),且∪K=Q\cup K = Q.

通俗意义上讲,Q是由一系列的问题构成,称为知识结构的域(domain),K是由Q的子集组成的集合,其中的集合元素称为知识状态,且K至少包含了Q以及空集∅\varnothing.
对于给定的知识结构( Q, K) , ≤是定义在Q上的关系: r≤q⟺Kr⊇Kqr\leq q\iff K_r\supseteq K_q, 其中r,q∈Q,Kr,Kqr, q\in Q, K_r, K_q∈K表示包含问题r,q的知
识状态的集合。 当r,q之间满足上述关系时, 称r可以从q猜测出来。 在应用上可以理解为: 从问题r的解决猜测出学生也可以解决问题q, 或者说解决问题q是解决问题r的前提, 对应的关系≤称为猜测关系, 猜测关系的存在可以大大方便知识结构的建立过程, 我们也可以从猜测关系的存在可知并不是所有子集都能成为知识状态。

kstructure()函数是包kst中构建知识结构的函数。

>kst <- kstructure(set(set("d"),set("a","c"),set("e","f"),set("a","b","c"),set("a","c","d"),set("d","e","f"),set("a","b","c","d"),set("a","c","e","f"),set("a","c","d","e","f")))> kst
{{"d"}, {"a", "c"}, {"e", "f"}, {"a", "b", "c"},{"a", "c", "d"}, {"d", "e", "f"}, {"a", "b","c", "d"}, {"a", "c", "e", "f"}, {"a", "c", "d","e", "f"}}
> sets_options("quote",FALSE)  #去掉引号
> kst
{{d}, {a, c}, {e, f}, {a, b, c}, {a, c, d}, {d,e, f}, {a, b, c, d}, {a, c, e, f}, {a, c, d, e,f}}
#输入在cmd框上输入kstructure,即可看其源码:
> kstructure
dependencies:library(sets),library(relations)
function (x)
{#检查xif (!inherits(x, "relation") & !inherits(x, "set")) {stop(sprintf("%s must be a relation or a set of subsets.", dQuote("x")))}#将关系转换成集合if (inherits(x, "relation")) {relmat <- relation_incidence(x)mode(relmat) <- "logical"x <- as.set(apply(relmat, 2, function(z) as.set(names(which(z)))))}else {x <- as.set(lapply(lapply(x, as.character), as.set))}names(x) <- NULLclass(x) <- unique(c("kstructure", class(x)))x
}

安装R包Rgraphviz:

source("http://bioconductor.org/biocLite.R")biocLite("Rgraphviz")

参考资料:

1.knowledge space
2. kst源码
3. 杨文正, 邹霞. 运用知识空间理论分析概念图[J]. 中国电化教育, 2011(3):83-87.
4. 傅骞, 孙波. 知识空间理论与项目反应理论对比研究[J]. 中国电化教育, 2004(5):75-76.
5. 傅骞, 刘志波, 陈良柱. 基于扩展知识空间理论的新一代教育资源平台研究[J]. 电化教育研究, 2006(4):39

试玩R语言中教育诊断的那些包(一):kst相关推荐

  1. R语言中的管道操作——magrittr包

    R语言中的管道操作--magrittr包 一.项目环境 开发工具:RStudio R:3.5.2 相关包:magritter 二.数据准备以及问题阐述 这次要解决的问题是如何使用提取数据框中所有包含缺 ...

  2. R语言中最强的神经网络包RSNNS

    转载自:http://www.dataguru.cn/article-1470-1.html R语言中已经有许多用于神经网络的package.例如nnet.AMORE以及neuralnet,nnet提 ...

  3. R语言中用于计算Rsquare的包rsq

    文章目录 理论介绍 线性模型情形 广义线性模型情形 函数介绍 rsq()的介绍 实例 rsq.partial()的介绍 相关文献 pcor()函数介绍 vresidual()函数介绍 实例 理论介绍 ...

  4. R语言中通过鞅残差(martingale residual)分析、可视化自变量与鞅残差的关系判断指定连续变量和风险比HR值是否存在着线性趋势、Cox回归对线性条件的诊断

    R语言中通过鞅残差(martingale residual)分析.可视化自变量与鞅残差的关系判断指定连续变量和风险比HR值是否存在着线性趋势.Cox回归对线性条件的诊断 目录

  5. R语言数据分析笔记——t检验(含正态性检验和方差齐性检验在SPSS和R语言中的操作t检验(单样本、双独立样本、配对样本)在Excel、SPSS、R语言中的操作)

    前言:本文为个人学习笔记,为各大网站上的教学内容之综合整理,综合整理了①假设分析的基础知识.②正态性检验和方差齐性检验在SPSS和R语言中的操作.③t检验(单样本.双独立样本.配对样本)在Excel. ...

  6. R+openNLP︱openNLP的六大可实现功能及其在R语言中的应用

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- openNLP是NLP中比较好的开源工具,R语 ...

  7. 如何在R语言中建立六边形矩阵热图heatmap可视化

    原文链接:http://tecdat.cn/?p=18879 这是一个六边形热图可视化程序,主要用到的知识RColorBrewer,fields,也就是R中的可视化绘图库(点击文末"阅读原文 ...

  8. R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts))

    R语言ggplot2可视化:使用ggfortyify包中的autoplot函数自动可视化时间序列数据(Time Series Plot From a Time Series Object (ts)) ...

  9. R语言中使用pkgbuild::find_rtools查看是否有Rtools、使用Sys.which函数查看make是否存在、如果没有则安装、使用writeLines函数绑定R和Rtools

    R语言中使用pkgbuild::find_rtools(debug = TRUE)查看是否有Rtools.使用Sys.which函数查看make是否存在.如果没有则安装Rtools.使用writeLi ...

最新文章

  1. 用koa mongodb 做了个简单的博客系统
  2. 域策略 设置本地管理员
  3. html5联系人字母,HTML5 字符串逐个字母变换
  4. maven 强制更新_Android App内部更新Library的方法
  5. linux grep 正则搜索某段时间内的日志
  6. adb 启动命令,pc启动两个微信,INSTALL_FAILED_CONFLICTING_PROVIDER
  7. python 内置函数 builtins_python学习笔记(七)——内置函数
  8. gradle 失败 编译项目_maven常见问题处理(3-3)Gradle编译时下载依赖失败解决方法...
  9. jsp,servlet中文乱码问题
  10. linux:账号管理
  11. 自适应学习率的优化算法(from goodfellow deep learning)
  12. Istio 中的智能 DNS 代理功能
  13. 阿里云安全组已经开放端口但是服务器端口还是不能访问
  14. docker中容器与容器之间通讯
  15. mac系统安装Anaconda后再打开终端自动进入Anaconda环境
  16. 2021-2027全球与中国铝质气雾罐市场现状及未来发展趋势
  17. Pandas 删除列
  18. 如何免费下载道客巴巴文档
  19. Docker 问题集锦(15) - ERROR: for * Cannot start service *: driver failed programming external
  20. kali linux实现arp攻击对方主机

热门文章

  1. android仿高德地图首页,Android BottomSheet 的使用(仿高德地图的列表效果)
  2. C语言——基础指针篇
  3. 反反爬之破解同程旅游加密参数!你学会了吗?
  4. 【mcuclub】PM2.5粉尘浓度检测模块GP2Y10
  5. 一个人的时候要学会坚强
  6. Visual Studio 2019调试HTK代码
  7. 横岗无线充android,3线圈无线充电方案
  8. python开发工具PyCharm详细使用
  9. python unescape函数_Python:unescape特殊字符,不分割数据
  10. 转:华为网络工程师离职总结:资质平庸的人该怎么办?震惊了无数人!