科学问题
是指一定时代的科学家在特定的知识背景下提出的关于科学知识和科学实践中需要解决而尚未解决的问题。它包括一定的求解目标和应答域,但尚无确定的答案,所以,我们可以尽最大的努力去寻找,去探索。
其要素包括事实基础、理论背景、问题指向、求解目标、求解范围等。
本文主要内容是介绍教育大数据的定义与作用,在了解教育大数据前我们首先要了解什么是大数据。大数据技术是21世纪最具时代标志的技术之一。国务院发布的《促进大数据发展行动纲要》中提出“大数据是以容量大、类型多、存取速度快、应用价值高为主要特征的数据集合”。简单的说,大数据就是将海量碎片化的信息数据能够及时地进行筛选、分析,并最终归纳、整理出我们需要的资讯。
教育大数据是什么?
教育大数据,顾名思义就是教育行业的数据分析应用。
则需要具备5V的特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
其中的“大”主要指的是 Volume(大量),我们现阶段用的数据分析,大部分情况下的数据量还达不到这个“大”的级别。
教育大数据实践的痛点
教育行业在数据分析的应用方面,主要痛点有以下四个方面:
1.数据涉及面窄
数据主要来源为数字化校园系统产生的,其他教学管理的数据多为手工录入非结构化数据
数据维度少,数据来源不足。
2.数据接口不完善
内部信息系统的教务系统、一卡通系统、图书馆系统、财务系统等数据都不规范一致,数据结构也不一样,各业务系统接口对接难度大
业务接口与数据结构还不规范
3.缺乏统一的数据管理平台
没有统一的数据处理中心对数据进行管理,没有人力维护各系统的接入
有效数据量少,数据质量差,达不到大数据处理分析要求
三、教育大数据行业分析体系搭建
在具体的应用方面,即数据分析体系搭建上,可以在以下四个方面开展。
1.教务管理
在这方面可以进行招生分析、就业分析、住宿分析、图书馆分析、资产数据统计分析等。
2.教学创新
在这里可以进行教学质量评估、上网行为分析、学生成绩分析、学生特长能力分析
3.应用创新
可以进行学生轨迹分析、学生画像、学生舆情监控
4.科研支撑
可以开展科研成果分析统计、科研项目研究、科研经费跟踪研究,对整个科研情况有全面的了解和掌握。
四、教育大数据的作用有哪些?
1.大数据或把老师从作业批改中解放
在线教育除了能以优质教育资源为学生提供帮助外,对广大家长、老师和学校也大有裨益。苏静以作业帮家长版的“口算批改”功能为例介绍,家长或老师只需要用手机对着学生作业一扫,就能立刻对作业完成智能批改,显示出批改结果,能够大大节省老师和家长批改作业的时间。
事实上,随着人工智能等新兴技术的深入应用,在线教育平台能够为家长、老师、学校提供更有效的教学辅助。
2.因材施教,将更有的放矢
“人工智能+大数据精准教育”系统能利用大数据技术,完成对学生学习进度、学力、习惯的跟踪和分析,系统后台能够准确对用户进行用户画像,找到他们的知识薄弱点,形成用户学情报告,这可以帮助老师和学校更细致地了解每一个学生的情况,并有的放矢地制定更精准的学生学习计划。
大数据与教育相结合是大势所趋,在教育大数据背景下,知识教学不再只能在学校进行,作为教师,应该清醒地认识到教育的功能究竟是什么,就是教育即生长。在这样一个大数据的时代,应该把关注人的生长提升到重要的地位。
数据引力应用
什么是数据引力
此概念是有意义的;分析工具应缩短提问和获得答案之间的时间间隔。那么,如何缩短数据转化为见解的时间呢?创建分析的位置应尽量靠近数据。
传统上,所有公司数据均在内部防火墙后生成。因此数据仓库、管理员和分析工具也位于公司内是合理的。
但现在的情况不一样了。
您的公司是否有社交媒体帐户?您有外部数据。您网站的性能如何?您有外部数据。您是否跟踪移动点击流?您是否要衡量消费意欲?您是否使用外部行业数据或其他第三方研究?所有这些都是外部数据,可能在云端生成。您现在应该明白了。
外部数据的使用只会变得越来越普遍。据 Constellation Research 预计,到 2020 年,60% 的任务关键型数据都将位于公司外 - 这意味着,三年后超过一半的数据会在外部生成。
为了降低开销、缩短启动时间和实现无限可扩展性,许多技术首先迁移到云端;出于同样的目的,大部分数据也逐渐在云端生成和存储。云为数据分析提供了这些相同的优势。设想一下,只需数分钟即可设置 BI 工具、实时连接 Google Analytics、创建自定义仪表板以分析网站流量并与团队共享。在看到云端托管工具如何快速分析云端生成的数据后,您便会开始真正理解数据引力的重要性。
此外,将所有数据引入单个数据仓库进行分析的时代已经一去不复返,数据源只会变得越来越多样化,分析工具应具有连接所有数据源的能力,帮助您利用数据引力。
即便如此,转换为基于云的 BI 和分析工具并不意味着一蹴而就。请记住,数据引力会影响分析的位置。因此 ,如果数据跨云端和本地存储,分析需要提供连接到数据(无论数据位于何处)的混合解决方案。 云服务根据您的业务需求提供相应支持,而不是一种非此即彼的解决方案。鉴于此,现在许多公司使用混合方法来存储和分析本地数据和云数据。
数据引力应用NLP语言处理
针对目前数据引力模型的多标签懒惰学习分类算法不能同时利用标签相关性以及数据质量的相互作用的问题,提出基于数据引力模型的改进多标签算法IMLDGM。首先,计算训练集中的每个样本数据的K个最近邻居样本,构成新的数据样本集;其次,根据新的数据样本集标签的分布情况计算交互引力系数IGC,同时为每个数据样本建立相关性矩阵来计算标签相关性关系,再计算出每个训练集样本数据的密度以及权重大小;最后计算粒子间的正、负引力大小来构建新的多标签分类模型。仿真实验结果表明,IMLDGM算法子集准确率SA与微平均F1值MF1评价指标均优于对比算法,汉明损失HL也较为明显的降低。
解决数据倾斜思路
更好的数据预处理,异常值的过滤等。因此,解决数据倾斜的重点在于对数据设计和业务的理解,这两个搞清楚了,数据倾斜就解决了大部分了。
1)业务逻辑
我们从业务逻辑的层面上来优化数据倾斜,比如上面的两个城市做推广活动导致那两个城市数据量激增的例子,我们可以单独对这两个城市来做count,单独做时可用两次MR,第一次打散计算,第二次再最终聚合计算。完成后和其它城市做整合。
1孟德尔随机化:Mendelian randomization:MR
2两样本孟德尔随机化:two sample Mendelian randomization:TSMR
3多变量孟德尔随机化:multivariable Mendelian randomization:MVMR
2)程序层面
比如说在Hive中,经常遇到count(distinct)操作,这样会导致最终只有一个Reduce任务。
我们可以先group by,再在外面包一层count,就可以了。比如计算按用户名去重后的总用户量:
(1)优化前
只有一个reduce,先去重再count负担比较大: select name,count(distinct name)from user;
(2)优化后
// 设置该任务的每个job的reducer个数为3个。Hive默认-1,自动推断。
// 设置该任务的每个job的reducer个数为3个。Hive默认-1,自动推断。 set mapred.reduce.tasks=3;
// 启动两个job,一个负责子查询(可以有多个reduce),另一个负责count(1): select count(1) from (select name from user group by name) tmp;
3)调参方面
Hadoop和Spark都自带了很多的参数和机制来调节数据倾斜,合理利用它们就能解决大部分问题。
4)从业务和数据上解决数据倾斜
很多数据倾斜都是在数据的使用上造成的。我们举几个场景,并分别给出它们的解决方案。
- 数据有损的方法:找到异常数据,比如ip为0的数据,过滤掉
- 数据无损的方法:对分布不均匀的数据,单独计算
- hash法:先对key做一层hash,先将数据随机打散让它的并行度变大,再汇聚
- 数据预处理:就是先做一层数据质量处理,类似于数据仓库维度建模时,底层先处理数据质量
【数仓】Hadoop、Hive 和 Spark 中数据倾斜的处理_大风在睡觉的博客-CSDN博客
数据距离应用
余弦相似度Cosine Similarity
当我们对拥有的高维数据向量的大小不关注时,通常会使用余弦相似度。 对于文本分析,当数据由字数表示时,此度量非常常用。 例如,当一个单词在一个文档中比另一个单词更频繁出现时,这并不一定意味着一个文档与该单词更相关。 可能是文件长度不均匀,计数的重要性不太重要。 然后,我们最好使用忽略幅度的余弦相似度。。
汉明距离 Hamming Distance
汉明距离是两个向量之间不同值的个数。它通常用于比较两个相同长度的二进制字符串。它还可以用于字符串,通过计算不同字符的数量来比较它们之间的相似程度。
用例
典型的用例包括数据通过计算机网络传输时的错误纠正/检测。它可以用来确定二进制字中失真的数目,作为估计误差的一种方法。
此外,您还可以使用汉明距离来度量分类变量之间的距离。
曼哈顿距离 Manhattan Distance
曼哈顿距离,通常称为出租车距离或城市街区距离,计算实值向量之间的距离。想象描述均匀网格(如棋盘)上物体的向量。曼哈顿距离是指两个矢量之间的距离,如果它们只能移动直角。在计算距离时不涉及对角线移动。
用例
当数据集具有离散和/或二进制属性时,Manhattan似乎工作得很好,因为它考虑了在这些属性的值中实际可以采用的路径。以欧几里得距离为例,它会在两个向量之间形成一条直线,但实际上这是不可能的。
切比雪夫距离 Chebyshev Distance
切比雪夫距离定义为两个向量在任意坐标维度上的最大差值。换句话说,它就是沿着一个轴的最大距离。由于其本质,它通常被称为棋盘距离,因为国际象棋的国王从一个方格到另一个方格的最小步数等于切比雪夫距离。
用例
如前所述,切比雪夫距离可用于提取从一个正方形移动到另一个正方形所需的最小移动次数。 此外,在允许无限制八向移动的游戏中,这可能是有用的方法。
在实践中,切比雪夫距离经常用于仓库物流,因为它非常类似于起重机移动一个物体的时间。
可夫斯基距离(闵氏距离)Minkowski
Minkowski距离比大多数距离更复杂。 它是在范数向量空间(n维实数空间)中使用的度量,这意味着它可以在任何距离可以表示为具有长度的向量的空间中使用。
该措施具有三个要求:
零向量—零向量的长度为零,而每个其他向量的长度为正。 例如,如果我们从一个地方到另一个地方旅行,那么该距离始终为正。 但是,如果我们从一个地方到自己的地方旅行,则该距离为零。标量因数—当向量与正数相乘时,其长度会更改,同时保持其方向。 例如,如果我们在一个方向上走了一定距离并添加了相同的距离,则方向不会改变。三角形不等式—两点之间的最短距离是一条直线。Minkowski距离的公式如下所示:
关于这个距离度量最有趣的是参数p的使用。我们可以使用这个参数来操纵距离度量,使其与其他度量非常相似。
常见的p值有:
p=1 -曼哈顿距离
p=2 -欧氏距离
p=∞- 切比雪夫距离
用例
p的好处是可以迭代它,并找到最适合用例的距离度量。它允许您在距离度量上有很大的灵活性,如果您非常熟悉p和许多距离度量,这将是一个巨大的好处。
Jaccard指数
Jaccard指数(交并比IOU)是一个用于计算样本集的相似性和多样性的度量。它是交集的大小除以样本集的并集的大小。
实际上,它是集合之间相似实体的总数除以实体的总数。例如,如果两个集合有1个共同的实体,而总共有5个不同的实体,那么Jaccard索引将是1/5 = 0.2。
要计算Jaccard距离,我们只需从1中减去Jaccard指数:
用例
Jaccard索引通常用于使用二进制或二进制数据的应用程序中。 当您拥有一个预测图像片段(例如汽车)的深度学习模型时,可以使用Jaccard索引来计算给定真实标签的预测片段的准确性。
同样,它也可以用于文本相似度分析,以衡量文档之间的选词重叠程度。因此,它可以用来比较模式集。
半正矢距离(haversine)
Haversine距离是指球面上两个点之间的经度和纬度。 它与欧几里得距离非常相似,因为它可以计算两点之间的最短线。 主要区别在于不可能有直线,因为这里的假设是两个点都在一个球面上。
用例
如您所料,Haversine距离通常用于导航。 例如,您可以使用它来计算两个国家之间的飞行距离。 请注意,如果距离本身不那么大,则不太适合。 曲率不会产生太大的影响。
Srensen-Dice 指数
Srensen-Dice指数与Jaccard指数非常相似,它衡量的是样本集的相似性和多样性。尽管它们的计算方法类似,但Srensen-Dice索引更直观一些,因为它可以被视为两个集合之间重叠的百分比,这是一个介于0和1之间的值。
这个指数在距离度量中很重要,因为它允许更好地使用没有v的度量
Jaccard指数是一个用于计算样本集的相似性和多样性的度量。它是交集的大小除以样本集的并集的大小。
实际上,它是集合之间相似实体的总数除以实体的总数。例如,如果两个集合有一个共同的实体,而总共有5个不同的实体,那么DICE指数将是1/5 = 0.2。
用例
用例与Jaccard指数相似。 您会发现它通常用于图像分割任务或文本相似性分析中。
注意:比这里提到的9种距离测量更多。 如果您正在寻找更有趣的指标,我建议您研究以下内容之一:Mahalanobis, Canberra, Braycurtis, and KL-divergence.
HDFS写的流程
client 发起文件上传请求,通过 RPC 与 NameNode 建立通讯,NameNode 检查目标文件是否已存在,父目录是否存在,返回是否可以上传;
client 请求第一个 block 该传输到哪些 DataNode 服务器上;
NameNode 根据配置文件中指定的备份数量及副本放置策略进行文件分配,返回可用的 DataNode 的地址,如:A,B,C;
client 请求3台 DataNode 中的一台A上传数据(本质上是一个 RPC 调用,建立 pipeline),A收到请求会继续调用B,然后B调用C,将整个 pipeline 建立完成,后逐级返回 client;
client 开始往A上传第一个 block(先从磁盘读取数据放到一个本地内存缓存),以 packet 为单位(默认64K),A收到一个 packet 就会传给B,B传给C;A每传一个 packet 会放入一个应答队列等待应答。
数据被分割成一个个 packet 数据包在 pipeline 上依次传输,在 pipeline 反方向上,逐个发送 ack(ack 应答机制),最终由pipeline中第一个 DataNode 节点A将 pipeline ack 发送给client;
当一个 block 传输完成之后,client 再次请求 NameNode 上传第二个 block 到服务器。