当前课程知识点:R语言数据分析 >  下部:博术 >  第12章 既是世间法、自当有分别 >  12.8 逻辑斯蒂回归

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

12.8 逻辑斯蒂回归在线视频

下一节:12.9 人工神经网络(I)

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

12.8 逻辑斯蒂回归课程教案、知识点、字幕

大家好

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

今天咱们一起交流一下

逻辑斯蒂回归的相关内容

在咱们前面课程里面讲到

就数学的视角而言

机器学习至少有两个视角是比较重要的

第一个是几何的视角

第二个是概率的视角

比如通过几何的视角

我们可以对这个数据空间进行不断细分

细分完之后

比如说类似于借助这个决策树

我们可以进行分类

在上节课里面我们就开始进入另外一个视角了

就是概率的视角

它具体怎么做的

就是我拿到新的证据之后

我根据这个特征值

根据我这个属性

根据我的特征取值不同

我来判断

我这个类别

不同的类别 它的概率分别是多少

这个条件概率

比如说针对我们这问题来讲

这个类别有两个

一个是文科

一个是理科

假如我这个文科这个条件概率是0.7

理科的条件概率是0.3的话

那毫无疑问

我们相应的这个分类就应该分到

分到文科这一块去

这是我们朴素贝叶斯通过条件概率

进行分类的一个最基本的思路

那好 咱们今天要引入另外一种

通过概率来进行分类的方法是

我们要引入一个新的函数

叫Sigmoid函数

它同样也是利用这个X

利用我们的属性特征取值不同

我来计算一个概率

然后进一步进行分类

其实也就引入到我们今天的主题是

叫逻辑斯蒂回归

虽然它名字叫回归

但其实还是一个分类的方法

咱们看一看

它具体算法原理是什么样的

其实我们所谓的分类

都是根据所具有的属性 特征作出判断

那其实都是在利用信息的过程

把它利用这个属性特征的信息的过程

假如我想利用好这个属性

它们相应的所包含的信息的话

一个最简单办法是什么

我先把这个信息先综合起来

然后再来加以利用

综合这个属性特征的信息

一个最简单方法是把它们加起来

我将它加起来

比如说我是X1 X2 Xm对吧

那好这里面有不同的取值

这里面有我这个语文的成绩

数学成绩外语成绩一直

比如说我这个生物的成绩

我都做个加权的求和

加权的求和

假如我一旦有这个

把这个信息综合利用起来之后

综合起来之后

假如我有个办法

我怎么样

我能将这个信息映射到[0, 1]区间里面去

然后我将这个[0, 1]视为一个概率

这个映射值视为一个概率

概率大于某个阈值的时候

我认为这个事件发生了

比如说文理分科

wlkf=文科 这个事情发生了

那我就判断为文科

否则的话它趋向于小于这个阈值

趋向于零的话

我发现 wlfk=文科 这个事情不发生

就倾向于选理科

那这个时候其实假如我能实现这个目标的话

那其实就可以做分类

当然这边有个问题是

因为我一旦做通过这种加权求和的方式

来做这个信息综合的话

那毫无疑问我这个定义域

它其实它的取值区间是负无穷到正无穷

既然我们这个定义域取值这个综合之后的结果

它的取值在负无穷到正无穷

那毫无疑问我们得想一个办法怎么样

将这个综合之后的结果

怎么样挤压到[0, 1]区间里面来

其中一个选择就是

我采用这个Sigmoid函数

比如说我现在定义这个Z

W0+W1*X1+W2*X2

Wn*Xn

假如这么说

那这个时候我这个Z定义好之后

就是一个综合的一个结果

我将这个综合结果

交给这个Sigmoid函数

1加e的负Z次方分之一

那毫无疑问

无论这个Z的取值范围在哪

它其实都是

它最终都被挤压到[0, 1]区间里面来了

假如我现在有一个办法

将这个W1 W2 Wn我都来拟合出来

达到什么效果

比如说我在历史上已经观测到这个数据集

它一旦起文科的话

那我这个取值Φ(z)这个取值就倾向于1这一边

就大于某个阈值

倾向于1这边

假如他不选文科的话

他就倾向于零这一块小于某个阈值

那好

未来假如我拿到一个新的一个测试样本

那我同样可以把相应的X代进去对不对

代进去之后 求Z

求完Z这之后计算这个概率值

计算概率值之后

我看你是大于这个阈值还是小于这个阈值

假如你大于这个阈值的话

我认为你应该选文科

假如你小于这个阈值的话

我认为你应该选理科

那这也就说

我通过这么一种综合信息利用

然后我挤压到[0, 1]区间里面之后

我就能用来实现分类了

这其实也就是我们

逻辑斯蒂回归的一个最基本的思路

当然肯定有同学会问

我把这个负无穷到正无穷这个取值

挤压到[0, 1]区间里面去

这个函数很多

为什么就非得选这个Sigmoid函数

当然其实我们要找这个原因的话

我们可以看一看一些原始的文献

就这个逻辑斯蒂回归原始的文献

他怎么说的

当然即便是这个原始文献里面

也没有一个绝对的理由

它只是怎么说

根据已有的知识

我们认为这么一种S型的曲线

这么一个是一个Sigmoid函数

它其实用来表示这个概率的话是比较合理的

这种假设是比较合理的

假如我们现在能拟合出

相应的W0 W1 W2一直到Wn

并且我能用来做分类的话

那我这个W究竟代表含义

咱们看一下

我们可以先定义一个事件发生比

这个所谓事件发生比就是

这个事件发生与不发生(概率)的比值

对咱们这个问题来讲就是比如说

我将这个事件"wlfk=文科"这个事件

发生与不发生进行相除

那这时候就得到我这个所谓的事件发生比

当然毫无疑问

下面这个其实就是选理科的这么一个概率

假如我这个概率

这个事件发生的概率我定义为

我前面的Φ(z)的话 Φ(z)=p(y=1|x)

定义为前面Φ(z)的话

那毫无疑问我这个值多少

就是e的z次方

也就是说e的w^T乘以x

w^T乘以x

假如我现在对这个事件发生比

两边同时取对数的话

我们可以看一下

左侧是这么一个部分

那右侧毫无疑问取完对数之后

它就只剩下z了

也就是我们这个信息综合的结果

我们一旦做了这种变换

我们将这种发生比在求对数的这个变换

我们称之为logit变换

一旦取完这个变换之后

其实我们就可以看得出来

我这个相应的W是什么含义

W其实对应到相应的一个X对不对

这个Wi就对应了Xi对吧

那其实表示

这个W其实表示

我相应的Xi增加一个单位之后

我这个事件发生比在对数尺度上的变化

所以这是我们相应的W的一个含义

当然通过这么一个变换我们也看得出来

其实所谓的逻辑斯蒂回归

它其实只是

做完logit变换之后

它其实是一个线性模型

所以我们后面在R里面实现的时候

采用的也是一个广义线性模型来实现它

当然这里面用到的这个连接函数就是logit

咱们还是回到我们的问题本身

我们现在问题最核心的要把这个Φ(z)

这里面W给估算出来

我一旦估算出这个W之后

其实我就能用来做这个分类了

那这个W怎么估算

当然有不同的方法

咱们这里面介绍一下

这个通过极大似然估计的方法

来估算这个相应的这个W

对于我们每一个观测到的样本

这里面其实就是我们每一行

就是数据框

我这个cjb这个数据框里面的每一行

当然我们以前在学这个概率论与数理统计的时候

你看"样本"可能都是一个比较抽象的概念

假如我们一旦开始做数据分析了

我们就把我们实际的数据

看得见摸得着的

我们把它想得更加具体一点

更加具象一点

每一个观察的样本其实就是我们的每一行

它出现概率是多少

这个p(x,y)其实就是p(x)乘以

x发生的情况之下y发生的概率

当然我们刚才说了

这里面我们作为二值分类

就是“wlfk=文科”

这个事情发生还是不发生的问题

那好 毫无疑问

前面这两部分里面必然有一部分它取值为1

当 wlfk=文科 这个事情发生的话

这个Yi我令它为1 yi=1

那好

那这个时候毫无疑问

前面这一部分是我的事件发生的概率

那这部分是1了

1减1

这个零次方毫无疑问是1

假如这个事情不发生的话

然后我用前面这部分是不是就是1对不对

这是它Yi等于0的话

这个概率的零次方毫无疑问就是1对吧

也是这个事件不发生概率

那我们现在拿到的是

m个独立的出现的独立样本

就是我们有m行

对吧

有m行那它相应的这个似然函数多少

因为它是独立的

毫无疑问我们直接相乘就可以

我们可以将这个p(x)这一部分放在一起

为什么放在一起

因为我们现在接下来的任务

主要是估算这个W对不对

我估算哪个W才是最好的W

才进一步用来做分类

那这个时候毫无疑问

我这个p(x)其实跟这个W没有任何关系

所以我真正关注的是前面这一部分

我要通过极大似然估计的方法

来估算出这个W出来

我们先回顾一下

这个极大似然估计的一个最基本的原理

假如这个事件A的发生

它发生的概率与这个参数W有关系

我们将这个发生的概率记为P(A,W)

如果在一次实验中我观测到了这个事件A

那我们认为

这个时候W应该是最有利于A出现的W

也就是说

在各种各样的W里面应该使得 P(A,W)最大

这个W才是比较合理的

换句话说

就是使我们刚才的这个似然函数最大化

这个W才是我们最符合我们历史观测记录的W

按照这个极大似然估计的原理

毫无疑问

这个极大似然估计原理

其实和我们小概率事件原理应该是一致的

当然我们不是说它相同说它是一致的

就是一个事件在小概率事件在一次试验中

它是不会发生的

当它在一次试验中发生了

我观察到了

我就认为这个相应W应该使这概率最大化

就这么一个原理

其实我们通过这种方法

就可以估算出相应的W出来

我们一旦进行W的估算进行参数的估算

其实也是我这个模型的选择也选好了

因为你W不一样

我这才形成一个模型集

然后所谓机器学习是

就是模型机里面选择最好的那一个

所以假如我这个参数估计出来了

其实也就是我这个这个模型也学到了

所以参数估计

我们统计里面老说的参数估计

其实对应到我们机器学习里面学习

咱们来看一看

具体怎么如何做这个事情

我们要重新再看一下我们这个似然函数

这个似然函数是一个连乘的方式

连乘的方式

显然这个连乘是不受欢迎的

为什么呢

这个对数的发明者约翰·纳皮尔曾经说过

在各种数学实践中最麻烦的是

大数字的

相乘 相除 开平方 开立方等等

这里面也有对吧

有很多这样操作

那这时候怎么办

既然他是对数的发明者

那毫无疑问我们这边要做一个操作是取对数

取对数

咱们看一下

假如我对这个刚才这个似然函数

这个函数取对数的话

这个时候就操作就明显就有

这个数学运算就明显简化了

因为一旦取对数的话

这个相乘就变成了

相乘就变成了相加了

再看这个指数放到前面

相乘就可以

瞬间我们这个后面的数学运算

就变得简单了很多

但这边我们需要指出一点是

虽然说我们取对数能使这个数学运算简化

但这并不是他取对数的一个直接的理由

直接理是我第一是能简化它

第二是我这个函数原来这个函数

他所取(值最大的地方)

比如说W让它取到最大值的时候

那同样我是不会改变的

就是取完对数之后我是不会改变的

也就说取这个对数前后

这个函数作为变换前后

我相应的取最大值这个地方的W

它应该是一致的

这样我们才有可能说

我要通过取对数方法来做来简化我的运算

也就是说我们的似然函数

现在变成这么一个形式了

当然假如我们站在机器学习的角度的话

我们一般说学习策略有有经验风险最小化

结构风险最小化

我们其实在这个似然函数前面加一个负号

其实就可以定义为我们的代价函数

里面这一些部分

比如这一部分就可以定义为损失函数

同样我们在后面具体的

通过一些具体的一个算法来实现

这个W估算的过程

其实你会发现

无论是你是站在这个机器学习

通过这个求代价函数最小化

还是站在我们这个极大似然估计的角度

使这个似然函数最大化

你发现它的步骤其实都是类似的

都是相通的

那我们一旦进行这个变换之后

那如何找到相应的W使这个函数最大化

当然我们以前在讲

在学习这个极大似然估计的时候一般都讲

我先有这个似然函数然后取对数

然后解方程组

然后来解决这个问题

但是对于我们目前这个问题来讲

它太复杂了

通过这个套路来做是不行的

前两步是一样的

第三步要找这个最好的W的话使它最大化

需要怎么办

采用这个最优化的方法

通过这个所谓的梯度上升或者梯度下降的方法

来解决这个问题

具体什么含义

比如说我们刚才讲到了

假如我在前面的似然函数前面加一个负号

它其实是一个代价函数

这个代价函数

这个代价函数假如我们现在简化一下这个问题

比如说这代价函数它是受这个W影响

W取值不一样的时候

我这个代价是不一样的对吧

就具体这个偏差是不一样的

所以我们要优化的问题

其实我就想找到这个谷底

就是这个谷底是代价是最小的

偏差是最小的

那好这个相应的W是我最想要的W

那好它要怎么找

其实就是通过这个梯度下降的方法

我先随机找一个点

找完点之后怎么样

我沿着一个正确的方向

走走走走走走

不断的逼近这个谷底

相反 假如我通过这个极大似然估计

这个似然函数角度来看这个问题也是一样

这个相当于

这个相当于比如说我们现在假如说

这个面就是一个水面

就是一个水面

然后一个倒影 倒过来的时候

这个

这个代价函数它倒过来之后

它其实就是我们的似然函数

毫无疑问它也是一样

我也是这个时候其实我就想要似然函数最大化

也是我先随便找一个点

随机找一个W的组合

然后我朝这个正确的方向走

朝正确方向走

走到这个似然函数最大化的地方

也就走到这个山峰的部分

所以这两个问题其实等价的

一个是从山腰走到谷底

一个是从山腰走到山峰

但这里面的山峰和谷底

它其实是在同一个位置

同样W里面

因为它是一个镜像

那好

我们最基本的方法是

假如通过最优化的方法来解决这个问题的话

我是千里之行 始于随机

我先随便找一个

然后沿着正确的方向不断的向它迈进

向最优的地方迈进

那这里面正确方向是

正确方向其实就是这个梯度的方向

假如我是要往下走的话

那我就是梯度的反方向

假如我是往上走的话

那就梯度的方向

这就所谓的梯度下降或者梯度上升

这个方法来不断的逼近它

这所谓的正确的方向

当然我们这需要补充一下

我们所谓的梯度的方向的时候

其实它并不是这个这个峰(山体)的一个切面

而是和我们这W平行的这么一个面

然后你有360度转

这种不同的角度

不同的方向

我们要找到梯度的方向的时候

就是我这个下降或者说这个上升最快的方向

所以通篇看下来

这里面最主要的是

这个通过优化的方法来估算这个W的话

它最基本的思路是

就仿佛是一个瞎子爬山的过程

整个这个全局的状况我是不知道的

但是我知道我当前这一步怎么迈

才能最快的速度走到山峰

这就是一个瞎子爬山的过程

这个梯度怎么计算

因为这个方向正确的方向是梯度的方向

那么梯度怎么计算

我们看一下

比如说我们现在拿到了刚才这个变换之后的

这个似然函数

假如我现在是梯度上升找到这个山峰的话

这个方向怎么找

那我是对这个W求偏导

求偏导

那毫无疑问

求偏导的话其实就是链式法则

就是剥洋葱从外往里一层一层剥就可以

那好

比如这个

先这个对数

就相当于ln这么一个要求对数的话

我先ln(X)求对数

那好

这个就是ln(X)的对数是X分之一

也就是ln(Φ(z))的对数是Φ(z)分之一

那好

进一步的链式法叫向后传导

就是洋葱往里剥就是Φ(z)再对W进行偏导

再求偏导

这里面后面这部分也是一样

1/ln(1-Φ(z))

因为这个还有一个负的Φ(z)那负号放前面来

Φ(z)再对W求偏导的话

我还可以再过一次洋葱再剥一次

这个时候我Φ(z)先对z求偏导

然后z在对W就偏导

Φ(z)对于z求偏导的话

这个函数因为我们用的是Sigmoid函数

Sigmoid函数是

Φ(z)等于1加e的负z次方分之一对吧

这个还是一个非常好的性质

它对这z求偏导

就是Φ(z)(1-Φ(z))

Φ(z)(1-Φ(z))

那后面这个Z对这个W求偏导

那就好办了

这个z对w求偏导

因为z就是我们刚才讲的

W0+W1*X1+W2*X2+...

那毫无疑问

它剩下就是X对不对

实际上就是X

所以最终我们的结果求偏导

刚才说这个梯度的我们找到了

z找到了这个求偏导的结果

这个方向我们找到了

我们的前进的方向也好

或者是向下走的方向

向上走的方向我们找到了

他具体的迭代过程是什么样的

千里之行始于随机

我怎么不断的逼近这个谷底

或者逼近这个山峰

我们看一下这个具体过程

首先我们确定了

梯度方向是增加最快的方向或者说减小

反方向是减小最快的方向对吧

然后我要做一个每一次每走一步的时候

相当于我这个W在不断的更新

相当于我这W在不断变化

把它朝这个山峰进行迈进

那好

方向我先确定了

然后我怎么样一个步长

这个λ也就所谓的学习率的问题

按照这个学习率按照这个方向

按照这个步长不断的迈进

不断迭代不断迭代不断迭代

当然我们并不说一下能迭代

就能准确迭到这个山峰的最高点

而是我需要有一个终止条件

什么意思呢

当我两次迭代他们之间的差

这个差值已经小于某个阈值的时候

比如说我相应的这个似然函数的差值

我相应的这个代价函数差值

已经小于某个阈值的时候

那怎么办

那我就停止迭代了

证明我已经差不多到了这个山峰了

或者说这是一种那个停止情况

另外一种情况

我迭代走的时间太长 步数太多 走累了

已经达到我预先设定的最大的迭代次数

那我怎么样

我也停止迭代

从而停止迭代的地方的W就是我的

就是我学习到的这个W

这其实就是我们根据这个

极大似然估计原理进行不断的W进行

进行寻优的过程

或者说估计这个W过程

或者说学习这个W过程

一旦拿到这个W之后

毫无疑问我们可以怎么样

带到我这个Φ(z)这个函数里面来

带到Φ(z)这个函数里面来

因为你这个e的负的WTX已经求出来了

把那个W估算出来之后

我带进来之后

我看看这个Φ(z)这个函数

它究竟取值怎么样

它要是大于某个阈值的话

我认为他就选文科要小于某个阈值的话

它就选理科

当这个阈值一般来讲可能就是设置为0.5

当然也不一定

我们可以设置其他一些更优的阈值

比如0.59 0.6这样都可以

这以上就是我们关于这个逻辑斯蒂回归

它一个最基本的一个原理

咱们看看在R里面是如何实现的

在R里面实现的话

我们刚才讲到了

它其实是一个

一旦进行logit变换之后

它是个线性模型

所以我们用到一个广义线性模型

然后他的连接的函数是logit

所以它本身我们前面讲算法的时候可能讲很久

但是在R里面实现的时候就是一句话的事情

我有相应的数据是吧

然后这个公式里面给出来了

波浪号前面是这个因变量

波浪后面是自变量

一旦我们通过这个glm这个函数

一旦拟合出这个逻辑斯蒂回归模型的话

我们就可以做相应的预测了

可以做相应的预测

比如说我先要看看

我在这个训练集上面它的拟合的效果

看看拟合的效果

那这个时候我把这个模型交给这个predict()

它也是一个统一的接口

我们会发现其实绝大部分的R里面

它的最后用来做预测的

其实都是基于这么一个接口

通过这个imodel的这个模型来预测

针对哪些数据进行进行预测

就是针对还是我们这个训练集这个数据

type是response

这个时候其实我得到的值是它的概率值

那我怎么把它变换成

怎么把它变换成我想要的文理分科这个标签

我可以这样

我先生成一个全都为文科的这么一个向量

它的长度

和我们这个训练集的记录条数是一样的

也说我刚开始把所有的这个标签都设为文科

这个向量里面的

假如我这个预测值小于这个阈值的话

比如说我们目前的阈值0.5

那我就把它相应的位置的元素设为理科

否则的话其他的就是文科了

这就实现了我们前面讲到的

它大于某个阈值

是文科小于某个阈值就是理科

这就是实现了我们这个类别的划分

类别的划分

我们看一下和那个看看和实际的情况相比

拟合效果多少

我们可以调用 Metrics这个包里面的ce()

看看它的那个分类错误率

分类错误率是0.21

基本上这个指标还可以

当然我们最关注还是测试集

因为测试集的测试误差

才是在一定程度上是泛化误差的

我们看看

同样是调这个predict()的函数

这个newdata变成我们测试集了

好 我们看一下

在测试集上的这个分类错误率是0.18

这个就相对比较好了

都已经正确率已经突破了80%以上了

当然我们刚刚讲到了

这里面阈值的设置我们是直接设置为0.5

那当然也有可能

把这个阈值设的更好一点的话

可能这个分类的错误率能进一步降低

我们可以通过一个遍历的方法

来选择一个更优的

一个我们的那个阈值

具体怎么做

我们先

创建一个变量是最优的阈值

然后再创建一个变量是叫最小的偏差

然后把当前的这个阈值我们也做个存储

当然这条语句其实是用来我们做来调试用的

后面我通过一个for循环

怎么样

通过for循环

我来遍历从0.1一直到0.9

所有的阈值

我遍历完之后

我每一个阈值我都算一算

在当前这个阈值上面

它那个分类错误率究竟是多少

假如当前这个阈值上分类错误率最小

我就把这个阈值取到作为最好的阈值

并且我把最小的这个错误率也计算下来

也记录下来

这么一个思路

当然我们后面的代码在for循环的时候

一次一次执行

有的时候我们不便于调试我们的代码

所以有的时候我们一些做法是

我先将其中的某一个取值我先拿过来

然后执行中间这个循环体里面的内容

看它是不是我们想要的结果

那我们看看具体的

就是这个阈值作为这个循环的一个控制变量

从0.1一直遍历0.9

它的步长是0.001

也就是说刚开始0.1然后是0.101

再之后是0.102

一直这样遍历下去

同样我们首先我们先还是跟

我们前面代码是一样的

先生成一个长度和这个训练集长度一样的

记录条数一样的

这么一个全是文科的

这么一个向量

我设定一下

假如它小于我这个阈值的话

我将相应位置上的元素设为理科

我来计算一下我相应的偏差

假如这个偏差

比我当前的这个最小的偏差还小的话

那怎么样

我要更新我这个最小的偏差

同时更新我这个最佳的阈值

这个循环一旦结束完之后

其实我就找到我最佳的阈值了

通过这么一个具体的

通过这么枚举的方法来找这个阈值

这个阈值我们找到

针对我们这个问题来讲是0.592

0.592

这就是我们关于这个逻辑斯蒂回归里面

这个阈值设置一个简单的介绍

当然我们前面讲的都是通过这个留出法

来进行一个我们这个逻辑斯蒂回归模型的评估

假如我们想知道逻辑斯蒂回归

对于我们这份数据来讲

它最后的性能指标能稳定在哪个水平上面

我们还可以通过我们前面讲到k折交叉检验

来进一步验证

当然这个k折交叉检验

和我们前面的框架是一样的

也是找训练集测试集

当前这一折作为测试集

当前其它的k-1折就作为这个训练集

也是通过这个glm广义线性模型

来进行这个模型的拟合

对训练集进行预测

然后我们记录我们这个训练集上面的

它模型的性能指标的表现

然后再对测试集做同样的操作

也是记录下我们这个模型的性能指标表现

同样将它们都放到哪儿去

放到这个 global_performance里面

当前我们这个

global_performance

对这个逻辑斯蒂回归来讲

他的那个训练误差和测试误差总共还是20行

因为我们做了10折嘛

每一折的话

它有一个训练的误差一个测试的误差

准确率以及相应的分类错误率

可以看得出来

这里面的测试误差的话

0.23 0.19 0.17 0.19等等

应该说还是表现非常好的

这以上就是我们关于这个逻辑斯蒂回归

一个简单的介绍

本次课到此结束

谢谢大家

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章 作业

12.8 逻辑斯蒂回归笔记与讨论

也许你还感兴趣的课程:

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