当前课程知识点:R语言数据分析 >  下部:博术 >  第10章 观数以形 >  10.4 高维数据空间

返回《R语言数据分析》慕课在线视频课程列表

10.4 高维数据空间在线视频

下一节:11.1 导引

返回《R语言数据分析》慕课在线视频列表

10.4 高维数据空间课程教案、知识点、字幕

大家好

欢迎来到《R语言数据分析》课程

今天和大家交流一下

如何刻画高维数据空间的形态

其实我们身体所能感知到的

应该都只是一个三维的世界

虽然我们也有说法是

宇宙是11维的

应该说正常人

脑子里所能想象的

应该还是一个三维的空间

所以我们在说到

高维数据空间形态的时候

也并不是说我们要突破三维

然后去构想一个更高维的空间

而是通过一些具体的方式方法

将它直观的表达出来

然后来帮助我们

更加直观的认识

这些不同维度相互之间的关系

具体高维数据空间的一个展示方式

有很多种

我们这个课讲三种

第一种是三维散点图

第二种是脸谱图

第三种是我们的平行坐标图

平行坐标图

好咱们先看第一种

三维散点图

三维散点图它的大概结构

是我们右侧这个图

这个时候我们可以看得出来

至少这里面可以有三个维度可以被映射

X轴 Y轴 Z轴

我们可以分别映射成三个变量

将这三个变量的取值

映射成这三个维度

这三个维度映射完之后

那相应的每一个数据点

在这个数据空间的位置就确定了

除了这个数据点确定之外

其实我们还可以怎么样

进一步的将这个每个点

它的颜色 形状 大小

进一步进行映射

所以我们说

虽然它只是一个三维的一个图形

但其实它所表达的信息

可以突破三维

可以是四维甚至是五维

或者是更高维的

咱们看一下

咱们看一下它在R里是怎么实现的

在R里边实现这个三维散点图的话有很多包

咱们这边用到的是rgl这个包

我们主要是想

通过一个动态的可交互的方式

来展示这个三维散点图

这个时候

调用这个包里的plot3d

毫无疑问它是一个三维的图形

一个绘制的方法

我们可以将sx映射成X

将wl映射成Y

将sw映射成Z轴

这三列进行映射同时

我们还将颜色

将这个颜色映射成文理分科

就是文理分科不一样的话

那好我映射成这个点不同的颜色

通过这个三维的这么一个散点图

我来找一下看看

文理分科

是否和我什么

和我这个数学 物理 生物

是不是有关系

映射完之后

我们可以看到是这么一个图形

当然这个图我是做了一个动画

其实我们要是通过这个R代码实现的话

这个图是可以怎么样

你通过这个鼠标的拖拽

可以不同的角度来旋转

通过不同角度来透视它

它一个分布的情况

通过现在这个动画其实也可以看的出来

红色的

这个部分是什么

是我们相应的理科对不对

那理科相应的

比较集中在哪

在我们这个右上角这个部分

在这个顶角部分

也就是说

理科生的什么

数学 物理 生物成绩

相对文科生来讲

是更加密集的分布在

比较高的分数线这一段的

这就是我们通过三维散点图

来直观展示

我们的这四个维度信息

相互之间的关系

这是三维散点图在R里面的一个实现

相对比较简单比较直接

咱们再看第二种

脸谱图

脸谱图是什么呢

就是在对我们观测对象

进行一个画像

也就是什么呢

我现在有不同的行

也有不同的列

对不对

一个行的话就相当于一个观测对象

比如说我们先拿到数据

一行数据就是一个同学的各科的成绩

然后每一列就相应的是它的特征

有比如说物理化学

比如说我们这边有物理

有化学

有生物的成绩

我们将这三列三个特征的拿过来

我们来表征一下

对脸谱图来讲我们可以调用这个包

这个aplpack这个包

调用这个包里的faces

这个函数

来进行绘制

它绘制的什么呢

我们观测的对象我先选出来

先选出某一些行出来

总共选了8行

也就是8个同学我来绘制一下

根据什么来绘制

根据他的物理wl 化学hx 生物sw成绩

这三门课的成绩

好我们来看看

它有什么特点

这个时候

我就将相应的cjb

相应的这些行这些列我都选出来

这个子集交给faces就可以了

当然后面也有相应的一些参数

包括比如说脸谱的类型

咱们看看具体这个函数它得到的结果是什么

我们刚刚讲了

其实脸谱图就是将什么

观测对象的不同取值不同特征

映射成我们相应的脸部的特征

这其实是非常形象的

我们说认识数据

就是看一看数据的长相

除了通过前面的那种

类似于比如说概率密度图

看它的高矮胖瘦对不对

这个脸谱图也更加直观更加形象一点

我直接看看这个数据长什么样子

我们看一下左侧的

它一个映射的过程

比如说这个物理

映射成什么呢

映射成我这个脸部的高度

化学呢 映射成这个脸部的宽度

哪怕是这两个特征我们也看的出来

这8个同学

它其实差别是挺大的

就在物理 化学 生物这三个科目上面

对三个科目的表现差别是比较大的

好我们看一下上面这四个同学毫无疑问

有点像什么有点像男生是不是

这个脸都比较大

相对比较宽是不是

那下面这个的话也相对

这四个同学也相对秀气一点

恰恰我们上面这四个同学

当然也是我是有意选择的

他恰恰就是什么就是理科生

下面这四个呢恰恰就是文科生

这其实也就是什么一个观测对象

他的特征方面的画像

通过这个脸谱图

来怎么表征

看看这个数据长什么样子

当然我们看这个脸谱图的话

其实发现它有个局限是什么呢

这些脸不能太多了

假如我这个屏幕上有5000张脸

或者甚至更多5万张脸的话

那肯定看不过来

看不出任何特征任何模式出来

也看不出差别出来

所以一般来讲

这个脸谱图

维度的话可能多达多少

可能甚至可以达到几维或者十几维

但是这个数据的观测点的个数

不能太多

它是有一定的限制的

这时候我们就可以引入第三种图形

平行坐标图

平行坐标图来解决这个问题

在我们看那个平行坐标图之前

我们先看看R里面怎么实现的

要绘制平行坐标图的话

比如说我现在想知道

整个我们这文理分科

和我们前面的九门课

究竟有没有什么关系

就这九门课

哪些课对文理分科是有区分度的

这时候我可以绘制一个平行坐标图

来表达这个相应的关系

在绘图之前我先怎么样呢

我先将数据进行一个处理

去进行一个处理

也就是什么

我基于这个成绩表这个数据

我先选出来文科的所有的同学记录

然后呢

根据总成绩进行排序

选出其中的4到13列

这是什么呢

我们这个数据

从第四列开始就是语文成绩了

一直数学 外语 等等等等

12列一直到12列是什么

是生物成绩

这是九门课的成绩

然后第13列就是文理分科了

是将文理分科以及前九门课的成绩

总共10列取出来

将语文一直到生物这九门课

这个成绩进行什么进行一个抖动

因为后面我们在绘制平行坐标的时候

好多同学的成绩比如都是82分的

有好几个同学都取82分

这个时候怎么样 他可能叠在一起了

变成一个点

这时我们抖动一下 让它们不要重叠

好 做完这些操作之后

我选出其中的前50个

也就是文科排前50的

总成绩排前50的同学

同样我也可以怎么样

也可以按照同样的方法

选出理科生排前50的同学

这时候套代码几乎一样

只是这里面的什么文科变成了理科

文科变成理科

一旦我们将文理分科

文科和理科的前50名都取出来之后

我们该怎么样呢将它rbind

也是我们前面讲到的

将这两个数据框怎么样

叠罗汉一样叠起来

变成一个包含一百条记录的什么

同学的成绩

总共也是包含10列

一百行十列的那个数据框

这个数据预处理完之后怎么样呢

我调用这个ggpar一看是什么[gg = ggplot]

就是平行的意思 [par = parallel]

coord一看就是什么 [coord = coordinates]

就是我们的坐标的意思

这也就是说

基于这个ggparcoord的一个绘图系统

一个平行坐标

在这个包里面

将这个数据交给它之后

我的坐标是谁呢

坐标是1到9

然后我的分组变量是谁呢

就是第10列

前9列是我的成绩

第10列是我的什么

文理分科

我们看一下具体结果是什么样的

我们所谓的平行坐标图

就是绘制完之后有这么一个图形

不要望文生义

我们一旦说到高维数据空间

然后又说到平行

说什么平行宇宙等等

没有任何关系

所谓平行坐标图

它其实很简单

很容易理解

这边每一条线是什么呢

就是一条记录

就是我们刚才不说

是100×10的一个数据框吗

那100行的话在这里面有多少条线

有100条线

然后1列的话代表什么呢

每1列的话就是什么啊

就是一个坐标

大家看这是不是每个坐标都是平行的

才称之为平行坐标

每一个每一行记录的话其实是什么

就是这么一条线

在不同的属性上不同的特征上

不同的坐标上它取值不一样

我们从而看出来

它的数据究竟是如何分布的

我们刚才看了设了一个什么

除了这九门课成绩作为这个坐标之外

我们设一个什么

设一个分组变量

将文理分科作为一个分组变量

那这时候可以看得出来

其实像这个化学

这些科目就相对比较有区分度了

这个红线和这个蓝线是区分比较开的

像前面的语文外语这个相对来说

它区分度就差一点

这也是通过平行坐标图

我们来看

我们整个这个数据的分布情况

这也是我们高维数据空间

一个比较有效的一个可视化手段

在讲完了我们这个三维散点图

脸谱图以及平行坐标图之外

我们对数据空间的话

在直观上展示已经有一些手段了

然后呢我们就想介绍

想引入几项具体指标

来表征我们数据空间的形态

当然这个形态既可以表征

我们高维空间的

也可以表征这个一维和二维的

咱们看一下

首先引入第一个指标是什么呢

密度

我们说密度的话

我们就想到什么呢

想到以前物理里面学到什么

所谓密度就是什么

就是物质每单位体积内的质量

它的公式是什么呢

就是m除以v

但是

密度虽然说作为数据空间的形态之一

毫无疑问我们数据是没有质量的

所以我们在数据科学里面

所提到的密度都是指什么呢

它都是指密集程度而已

是密集程度而已

而不是说我这个什么质量除以这个体积

不是这个概念

包括我们以前学过的

比如说概率密度也好

包括后面可能会接触到的

基于密度的聚类等等

这里面密度都是指什么

都是指数据点的一个密集程度而已

当然这里面有很多计算方法

我们一个比较简单

计算方法是什么

就单位面积和单位体积内数据点的个数

这也是用来表达一个密集程度的一个指标

我们接下来看看

如何在R里面通过这么一个简单计算方法

来表征我们数据空间的一个密集程度的情况

或者是这个密度的一个情况

首先

我们针对这个物理和数学

所张成的二维数据空间

以这个为对象

我们要表征它密集程度的话

我们要对每一个格子进行计算

因为它是一个二维的数据空间的话

那我将这个二维数据空间

像棋盘一样分成不同的格子

然后看看落入每一个棋盘格子里面

它的点有多少个

这个时候我首先怎么样

我先定义一下一个breaks

就是所谓不同端点怎么来切分

怎么将这个数据分箱切成不同的格子

好 也是同样

针对这个成绩表这个数据

我选择了select

wl sx这两列

然后怎么样呢

对数据进行一个处理

就针对这个wl和sx

我怎么样

我cut一下

这两列我都cut一下

将它在这个

0 50

再之后这个seq就是50到100

我把它切分成了多少

切分成了11段

切完之后

这个时候就相当于做了什么

wl和sx分别做了离散化了

就分成了格子了

再之后怎么样

我对wl和sx切分完之后

我进行分组统计

然后怎么样

summarise

统计它里面落入点的个数

好 我们看看具体结果是什么

我们对wl和sx怎么样

都进行了切分

都进行离散化

然后当我summarise的时候怎么样

我得到的是落入

就是说原始记录的个数

其实也是落入点落在这个区间的点的个数

那好

这个时候我其实我有什么不同的组合

就是物理在0到50

数学也在0到50里面

这里面有多个点

有多少个同学呢 有一个同学

当然这种组合也有可能是缺失的

在原始记录里面

可能比如说物理是0到50

但是数学处以50到55这个区间

没有任何一个同学是这么一种情况

那这个时候我需要怎么样

加一个complete

这么一个函数来补齐它

确保每一种组合都是存在的

我们一旦得到这个处理好的数据之后

我们可以怎么样

可以将它映射成我们二维数据空间里面

一个密度的一个ggplot2的图

通过图形的方式

来直观展示这个密集程度的分布

具体要展示的话

我们是调用这个ggplot这个函数

就是我们刚才得到这个结果

将X映射成wl

Y映射成sx

它的填充映射成什么 freq

就是刚才我们统计的

落入每一个格子的它的点的个数

具体的映射的图形什么geom_tile

还是我们前面用到的

在相关系数图里面

也用到这个类似这个函数

咱们来看一下具体的得到结果

左侧的话是我们原始的散点图

就是这个sx-wl的一个原始散点图

右侧的话就是什么

就是我们相应的一个密度图了

一个密度分布图

毫无疑问

咱们这700多个同学里面

绝大部分分布在哪

它的物理和数学成绩都是相对偏高的

并且怎么样

尤其是数学成绩更加高一点

这时候我们可以看得出来

整个在我们这个数据空间里面

哪些区域

它分布的同学是相对比较密集的

哪些区域也是相对什么稀疏一点

这就是我们数据空间形态的

其中一个指标叫密度

除了这个表征密度之外呢

我们在后续做建模的时候

其实还需要考虑什么

这个数据空间的均匀程度

比如说我们做聚类分析的话

我们是想找这个数据空间自然的结构

不同的点 有些点是形成一个点群

一簇一簇的

同一簇的点

它相互之间离得近一点

不同的簇的点

它相互之间什么

离得远一点

那这个时候其实就相当于什么

空间里面自然存在的一个距离结构

假如我们这个空间本身是比较均匀的话

那毫无疑问我们做这种聚类是没有意义的

好的 接下来我们看一看

如何表征数据空间的均匀形态

便于我们展示

我们以这个二维的数据空间为例

目前我们看到的

这是一个二维数据空间里面

有若干个数据点

也就是我们观察到数据记录

毫无疑问

假如我们的数据记录

在二维数据空间里面呈现这么一个分布的话

它是相对比较均匀的

也就是说在这么一个数据空间里面

我们所看到的这个点

它没有呈现一个自然的结构

我们看不到这里面有集中的趋势

也没有所谓一些分离的模式

假如对于这么一份数据的话

无论我们是做这个有监督的学习

还是进行无监督的聚类 进行分析

其实都没什么意义

那如何来表征我们一个数据

是否是趋近于这么一种均匀的形态

还是说它本身是有结构的有规律的

我们可以引入一个新的变量

一个新的指标叫什么呢

叫霍普金斯Hopkins统计量

霍普金斯Hopkins统计量

它是告诉我们

我们所拿到的数据

在多大程度上

接近于这个均匀的一个散布的形态

我们注意这个话

是多大程度上接近于这个均匀散布的形态

毫无疑问

其实它是什么

是和这个均匀散布进行一个比较

进行一个比较

这是我们直观上的一个认识

咱们看看具体是如何来实现的

它分那么三个步骤

首先是均匀的从D所在的

这个空间里面抽取N个点

p1 p2 ... pn

也就是说我们拿到了一个给定的数据集

然后这个数据集

比如不同的维度

它张成一个相应的数据空间

那我现在从这个数据空间里面

随机的人为的抽取N个点

这N个点并不是在我这个D的这个数据集里面

而是什么呢

而是我所在的数据空间里面

我人为生成的

所服从的一个相对比较均匀的一个分布的

对这里面每一个点

我都怎么样呢

在这个D里面找一个最近邻

对这里面每个点Pi

我都在D里面找一个最近邻

找到之后怎么办

我计算一下

这个点和最近邻之间的距离

我设它为什么设为Xi

好这是第一步

第二步呢

我从这个D本身就这个数据集本身里面

抽取N个点

比如q1 q2 … qn

这相当于什么呢

相当于我们这个数据集里面抽取的N行

那好 对于每一个点q

每个点qi 我都怎么样

我都在这个数据集里面

找一个最近邻

这个最近邻毫无疑问

只要不是qi本身就可以

假如你qi本身的话毫无疑问

那距离为0了

就除它之外的

D-{qi}

对这个qi来讲

只要不是它自己

那好我找一个最近邻

我同样也是什么

也是计算出来它们之间的距离

也计算这个距离 设为yi

这是第二步

第三步

我们就可以计算这个霍普金斯统计量了

怎么算的呢

大家看一下

分子其实就是什么

所有的yi相加

分母Xi的和加上Yi的和

所以这就是

我们一个霍普金斯统计量

一个最基本的计算过程

相对是比较简单的

那这里面其实我们可以看

回到原来这个

给我们一个直觉是什么呢

直观的理解

是多大程度上也接近于这个均匀散布的形态

毫无疑问

假如我是均匀散布的话

那我这里面两个指标

X和Y它相对应该是比较接近的

也就是说这个值应该是接近于0.5

假如我这个数据本身不是均匀分布的

它有自己的规律有自己的模式

有集中的趋势

这个时候yi呢相对来说

它就趋近于什么

相对比较小

那这个相应的霍普金斯统计量

就会接近于0左右

也就说通过这个霍普金斯统计量

我们也看得出来

它究竟看它的取值

可以看得出来

究竟有多大程度上

接近我们均匀的分布这么一种形态

这样说可能相对比较抽象

咱们看一个具体的例子

比如说我们现在

还是那个二维的数据空间

我们已经拿到了相应的数据

这个是我们拿到数据这个D

它在我们这个数据空间的一个散布的形态

毫无疑问这是有模式的

那这个霍普金斯统计量怎么算呢

我先在这个数据空间里面

随机的生成人工的生成数据

就生成人工数据

比如说我生成四个点

这是相对均匀分布的

对于每个点怎么样

我都找到D里面的最近邻

并且计算这个距离

X1 X2 X3 X4

然后我在这个D本身

这个方框是我们什么

是我们自己关注的数据数据集D

我在这个数据集里面我在找什么

我再找这个四个点

再找四个点

也找什么

也找它相应的最近邻

计算它的距离

Y1 Y2 Y3 Y4

那我们所谓的霍普金是统计量怎么算

所有的Y相加

再除以什么X相加

以及Y相加它们的和

这就是霍普金斯统计量一个计算方法

毫无疑问

我们这个时候一看

因为我们这个数据有这个集中的趋势的话

那这个时候Y相对来说比较偏小的

那这个X呢相对偏大

所以这个值应该会趋近于什么

接近于0左右

往0那个方向靠

所以它也能在一定程度上表明什么

我们这个数据它是有模式

有规律可循的

在具体实践过程中

假如我们在要计算这个

霍普金斯统计量的时候

我们得选择N个点对不对

把它先生成N个人工数据点

然后在我们自己实际数据集里面也选取N个点

这个N怎么取

一般来讲

这个N要比我们实际的数据记录的

记录数要小得多

一种推荐的做法是什么

就N等于0.05乘以这个数据记录数

比如说我们目前拿到数据是700多条

那这时候可能就取30几条数据就足够

也当然也可以说是比如说取0.1左右

就是其它1/10左右的数

比如说700多条数据里面

取70条左右也可以

这里面没有一个说理论上

一个非常非常严格的一个说法

只是有大概符合这么一条规则就可以

咱们看一看在R里面 如何实现

如何计算这个霍普金斯统计量

这个时候我们需要

引入一个新的包叫clustertend

豪无疑问这是什么呢

这聚类的tendency

clustertend = Clustering Tendency

就是我这个它聚类的一个趋势

聚类的趋势

这行代码毫无疑问也是什么

也是为了我们后面的可复现性

加了一个随机数种子

接下来比如说我对这个成绩表

我选择其中的所有九门课

就是yw sx一直到sw这九门课

把这九列选出来

我们放到一个新的变量里面

叫scores

然后我们看一看目前我们的记录是有多少

比如说先把这个行数取出来

乘以 0.05

这个时候就是我想得到的

想要取的N这个点

因为我要从这个数据里面

选择N个点

同时要在这个数据空间里面生成N个点

那这个N的取值我们目前为取为0.05

然后floor毫无疑问是什么

向下取整

地板的意思向下取整

这个时候我们可以算

通过这个clustertend

这个包里面的霍普金斯

这么一个函数进行计算

计算

将这个数据交给它就可以了

相应的N设定好

有这个数据有这个N

这个霍普金斯统计量基本就算出来了

就可以算出来

但是因为每一次随机生成的时候

它可能取的点都不一样

随机生成的那个人工的点数据点也不一样

我们一般是推荐

多做几次

然后再看看它的大致水平怎么样

取个平均值

当然我们也可以从统计上

来做一个假设检验也可以

比如说我那个原假设

就是它等于0.5左右

我看看我的数据实际情况

是不是可以拒绝这个原假设

在R里面要执行多次某个操作的话

可以用这个replicate

这个函数

可以执行这个replicate这个函数

执行100次

然后执行100次这个后面这个函数

执行这个操作

那相应的我们就生成多少

生成了100个霍普金斯统计量

当然我们后面为了便于计算

我们它返回的结果是一个什么

是一个列表

那我unlist

将这个列表的所有数据拉平了

变成一个长度为100的一个数值向量

我们求一下平均值

应该是0.15左右 0.157

也就是说这个数据还是相对比较什么

相对比较有规律可行的

是比较倾斜的

并没有接近于0.5左右

当然对这100个数据

我们也可以看一看这个箱线图

看一下这个趋势的分布

看看这个趋势的分布

这就是我们在R里面通过这个

clustertend这么一个包

来计算这个霍普金斯统计量

来看到我们数据分布的一个形态

以上我们将通过一些

可视化的方法来观察我们的数据的分布

同时也介绍了一些具体指标

不管分散程度也好

离散程度也好

包括我们最近讲的这些

比如说这个密度的形态

这个均匀程度的形态

等等

其实所有这些认识数据的手段

都是为了什么呢

都是为了让我们和这个数据更加熟悉

对这个数据更加亲切

你真正要发现数据背后的规律的话

其实我们就需要什么

先认识这个数据

先拉近这个数据的距离

熟悉这个数据之后

我们后面才采用相应的模型

相应的算法挖掘数据背后的规律

这其实也是我们认识数据主要目的所在

本次课到此结束

谢谢大家

R语言数据分析课程列表:

上部:问道

-第1章 气象万千、数以等观

--第1章 气象万千、数以等观

--第1章 作业

-第2章 所谓学习、归类而已

--2.1 所谓学习、归类而已(I)

--2.2 所谓学习、归类而已(II)

--2.3 所谓学习、归类而已(III)

--2.4 所谓学习、归类而已(IV)

--第2章 作业

-第3章 格言联璧话学习

--第3章 格言联璧话学习

--第3章 作业

-第4章 源于数学、归于工程

--第4章 源于数学、归于工程

--第4章 作业

-讨论题

--如何发挥人工智能的头雁效应

中部:执具

-第5章 工欲善其事、必先利其器

--第5章 工欲善其事、必先利其器

--第5章 作业

-第6章 基础编程——用别人的包和函数讲述自己的故事

--6.1 编程环境

--6.2Mini案例

--6.3 站在巨人的肩膀上

--6.4 控制流

--6.5 函数(I)

--6.6 函数(II)

--第6章 作业

-第7章 数据对象——面向数据对象学习R语言

--7.1 向量与因子(I)

--7.2 向量与因子(II)

--7.3 矩阵与数组(I)

--7.4 矩阵与数组(II)

--7.5 列表与数据框(I)

--7.6 列表与数据框(II)

--第7章 作业

-第8章 人人都爱tidyverse

--第8章 人人都爱tidyverse

--第8章 作业

-第9章 最美不过数据框

--第9章 最美不过数据框

--第9章 作业

下部:博术

-第10章 观数以形

--10.1 一维数据空间(I)

--10.2 一维数据空间(II)

--10.3 二维数据空间

--10.4 高维数据空间

--第10章 作业

-第11章 相随相伴、谓之关联

--11.1 导引

--11.2 关联规则(I)

--11.3 关联规则(II)

--11.4 关联规则(III)

--第11章 作业

-第12章 既是世间法、自当有分别

--12.1 导引

--12.2 近邻法(I)

--12.3 近邻法(II)

--12.4 决策树(I)

--12.5 决策树(II)

--12.6 随机森林

--12.7 朴素贝叶斯

--12.8 逻辑斯蒂回归

--12.9 人工神经网络(I)

--12.10 人工神经网络(II)

--12.11 支持向量机

--第12章 作业

-第13章 方以类聚、物以群分

--13.1 导引

--13.2 划分方法

--13.3 层次方法

--第13章 作业

-第14章 庐山烟雨浙江潮

--第14章 庐山烟雨浙江潮

--第14章 作业

10.4 高维数据空间笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。