当前课程知识点:R语言数据分析 > 中部:执具 > 第5章 工欲善其事、必先利其器 > 第5章 工欲善其事、必先利其器
大家好
欢迎来到《R语言数据分析》课程
咱们这门课分成三个部分
第一部分是方法论 (问道)
第二部分是R语言 (执具)
第三部分数据分析 (博术)
第二部分讲R语言这个工具
第三部分讲具体的算法模型
从今天开始我们正式进入第二部分
说到工具的话
我们中国人的话应该说
使用的最的工具是什么
应该就是筷子
几乎已经达到了 日用而不知 的境界
这应该也是任意一种工具用得最好的一种境界
它已经变成身体的一部分了
所以说筷子可能是延伸我们身体的
最好的工具之一
假如说筷子是延伸我们身体最好的工具的话
那应该说代码应该就是
延伸我们思想最好的工具(之一)
我们都知道进入信息化的社会
无论是一个空调 一个电冰箱
还是说一个交通系统
或者说电力系统
或者金融系统 等等
它其实都需要什么
都是运行在芯片和代码之上的
我们对这个世界所有的规则 模式
相应的一些认识
我们最后都通过代码来表达
并且让它驱动我们整个社会生产生活的运行
当然就数据分析而言
我们也是通过相应的算法
来发现客观系统
所存在的规律 模式 模型
也需要通过代码来表达它
尤其是我们做这个数据分析的时候
一旦我们开始写代码的话
其实我们会发现所有的模型
我们有更深刻的认识
所以要学好数据分析的话
编代码应该是必不可少的
那一旦说到编代码
其实有很多编程语言可以供我们选择
也有很多的排行榜
比如说 TIOBE
它会每个月都发布一个编程语言的排行榜
再比如说这两个是基于GitHub
GitHub相应的一些信息
我们也可以对这个编程语言进行一个排行
当然还有其它的一些
比如说这个IEEE (读作I-triple-E)
它也会发布
每年也会发布相应的编程语言的一些排行
因为我们没有办法说
我把每个语言都学完之后
我再来做对比
所以这些排行榜对我们有一定的参考价值
譬如说
我们这个redmonk
它是基于什么
是基于这个GitHub
以及这个Stack Overflow
这两个网站相应的一些指标
进行统计的
这两个网站这个GitHub
和这个Stack Overflow
其实我还是强烈推荐大家多关注一下
不管你是用R也好用Python也好
还是用其它的语言
这两个网站都是非常值得关注
GitHub里面托管了多代码
这个Stack Overflow
这里面是一个问答的一个社群
一个网站
我们几乎日常能碰到的很多问题
里面都有一些讲解
当然不同的编程语言应该说它各有所长
比如说这个IEEE里面
它就对不同的与编程语言有一个简单的描述
比如这个Python
它是一个胶水语言
在各种各样的场景里面都用得到
再比如说我们这个C
假如是做基础编程
尤其是跟硬件相关的话
那毫无疑问应该用C是最好的
假如是大型的复杂的应用开发的话
毫无疑问的Java
等等吧
不同的语言有不同的什么
不同的适用范围
假如说到数据分析的话
Python和我们这个R
我们可以看得到
在这个IEEE里面它对R怎么说的
它用来做统计分析
以及Data Mining 数据挖掘
就是数据分析 数据挖掘 机器学习
R都很擅长
假如是从事数据分析相关的研究工作的话
机器学习也好 数据挖掘也好
我们的编程语言的选择
几乎可以说R和Python
应该就是最好的选择
它们的地位相当于什么
应该说是数据科学领域的双子星
这就好比奔驰和宝马的关系
或者说蜘蛛侠和Superman的关系
当然也可以说是麦当劳和肯德基的关系
在数据分析领域
它们几乎就是这两个寡头
一个是R 一个是Python
这两个语言都非常非常好
当然这两个语言都非常好的话
那我究竟应该是选择R
还是选择这个Python
这好像是一个两难的选择
但其实不应该是一个选择的关系
它并不是一个竞争的关系
它俩都非常好
都值得我们拥有
比如说这个哈德利Hadley
他应该是R社区里面一个大神级的人物
他就说什么
绝大部分的数据分析团队都是用多种语言
一般来讲至少用到R和Python
都是同时用
所以其实我们现在基本有一个共识
就是R和Python并不是说非此即彼
我就选择其中一个
然后我抵制另外一个
不是这样的
就是两个都需要 都值得我们拥有
当然我们在学习这个R和Python的时候
我们建议先学好其中一个
不要说两个同时学
然后这个也没大学好
那个也
混淆在一起
有可能反倒是降低我们学习的效率
当然从R开始学
毫无疑问也是一个非常好的选择
现在还有一个更好的是什么
一个更好的消息就是R和Python
我们可以说它是双子星
也可以说一个是倚天剑
一个是屠龙刀
但现在一个好处是什么
一个非常好的消息是R和Python
现在也在结合了
所以我们这两个都掌握的话
几乎可以说是在数据科学领域
可以倚天屠龙
当然我们这课本身就叫《R语言数据分析》
所以我们这个课的话
主要是讲这个R
Python的内容我们这边是不涉及的
那好
R的话 这个工具
倚天剑也好 屠龙刀也好
那是怎么获取
R非常好 但它也非常便宜
便宜到什么程度
不需要花钱
它是开源的
我只要上这个网站就可以
上这个网站www.r-project.org就可以下载
这里面有相应的下载 R的相应的一些接口
当然我们一般都是先进入一个镜像
进入镜像之后再来下载
我们可以找一个离我们身边最近的
国内的一个镜像就可以
当然具体的下的过程我们就不详细讲了
就像我们说
你出门左手有一个超市就可以
你不会说先迈左脚先迈右脚
那一步一步我们在这课里面就不需要讲了
假如我们用的是windows操作系统的话
你一旦下载完之后安装好
然后你可以通过这个开始菜单
然后就可以把这个R给调用出来了
我们一旦下载完之后
安装好就发现这个R的窗口
非常非常的简单
甚至说有点low了
为什么
因为我们刚才的心理期望是
这是一个数据科学领域的倚天剑屠龙刀
它是最最强大数据分析工具之一
但是我发现一旦下载之后就这么一个小窗口
这么一个小窗口太简单了
我们在windows里面
我想找一个跟它同样简单的
几乎是一个很难的事情
我找了半天之后终于找到了
是什么
这个命令行窗口
无非一个是黑的 一个是白的
那这个时候心理落差这么大
我们就想它真的是我们心目中的
数据分析领域的倚天剑屠龙刀吗
它真的有这么强大吗
这么简单的一个界面
但我想说的是什么
用简单这个字来形容它
可能是不准确的
我们应该怎么形容
应该是简约而不简单
简约而不简单
我们看一下
一旦我们有了这个R之后
有了这个控制台
有了这个窗口之后
我交给它适当的代码
敲入适当代码
我就可以出这个图
比如说可以做描述性的分析
就写了若干行代码之后
一回车
你会发现这个窗口里面
就蹦这么一个漂亮的图出来
这是一个箱线图
再比如说这个是一个相应的一个散点图(组合)
我们还可以
假如加载相应的(扩展)包
当然也是通过代码的方式
加载包 然后执行相应的函数的话
也是交给它若干行代码
我们还可以出这个层峦叠嶂图
就是不同的分组的一个数据分布的情况
这是描述性的分析
我们当然也可以对不同的变量之间
它的相关性进行分析
比如说画这个散点图
当然也可以将这个相关系数算出来
通过这个ggplot2
来绘制相应的相关系数矩阵
当然除了这个相关性分析
除了这个描述性分析之外
我们数据分析的这三个主要的方面
比如关联 分类 聚类
在R里面都完全没问题
比如说我交给它适当的指令
交给它适当代码之后
怎么样
可以挖出一套关联规则
并且可以将它进行可视化
这里面每个气泡表示一条关联规则
当然我们非常关注的
比如说分类问题
就是所谓的有监督学习
可以通过这个决策树
你交给它相应的代码的时候
它会出这么一棵漂亮的树
通过成绩 通过性别
自动进行文理分科的类别划分
再比如说 我们可以通过交给它适当的代码
可以进行聚类
当然这里面是一个层次聚类方法
也是一个三维的
大家注意了
这还是通过这么一个小窗口
给它输相应的命令之后
给它相应的代码之后
自动就出来一个聚类的结果
并且可以进行可视化
当然说这个典型的我们数据分析里面
这个关联 分类 聚类之外
也可以做其它一些主题
比如说我们做时间序列的分析
对时间序列进行分解
然后进行那个时间序列的外推
进行预测
或者说我们对信号进行处理
比如说画一个时频图
或者说经验模态分解EMD
再比如说我们对图像进行处理
图像做一些最基本的操作
再比如说我们进行复杂网络的分析
或者说比如说我们看这个
这是个我们整个
我们那个成语接龙网
形成一个复杂网络
再比如这个空间的数据的分析
我们根据这个空间的特征
我对它进行划分
发现这个区域的划分
和我们行政区域几乎差不多的
等等吧
所有这些图形都是通过这么一个小窗口
得出来的
所以这个时候我们就不能小瞧它了
看起来非常简单
但它本质上是非常强大的
简约而不简单
关键在于我们怎么利用好它
它其实就是一个
就是一个工具
当有了适当的扩展包
有了适当的代码之后
后面所有的功能都可以实现
咱们最后想总结一句
就是所有钟情于这个数据分析的
只要你对数据分析感兴趣
学习R毫无疑问是没有错的
它是一个非常好的起点
这里面是一片广阔的天地我们大有可为
当然从今天开始
我们就正式进入我们这门课的第二个环节
不再是坐而论道 不再是讲方法论了
而是讲具体工具
所以我们也希望
就开始跳到游泳池里面去 开始游泳
而不仅仅在岸上面坐而论道
大家下课之后
在课下可以看看这个
就看这个Github里面
我们这门课的所有的代码 所有的数据
都托管在Github里面
同学们可以怎么可以上这个网站
把相应的代码和数据都下载下来
当我们一旦开始运行相应代码之后
你发现你能看到很多很有意思的结果
这个时候的成就感是难以言表的
本次课到此结束
谢谢大家
-第1章 气象万千、数以等观
--第1章 作业
-第2章 所谓学习、归类而已
--第2章 作业
-第3章 格言联璧话学习
--第3章 作业
-第4章 源于数学、归于工程
--第4章 作业
-讨论题
-第5章 工欲善其事、必先利其器
--第5章 作业
-第6章 基础编程——用别人的包和函数讲述自己的故事
--6.1 编程环境
--6.4 控制流
--第6章 作业
-第7章 数据对象——面向数据对象学习R语言
--第7章 作业
-第8章 人人都爱tidyverse
--第8章 作业
-第9章 最美不过数据框
--第9章 作业
-第10章 观数以形
--第10章 作业
-第11章 相随相伴、谓之关联
--11.1 导引
--第11章 作业
-第12章 既是世间法、自当有分别
--12.1 导引
--第12章 作业
-第13章 方以类聚、物以群分
--13.1 导引
--第13章 作业
-第14章 庐山烟雨浙江潮
--第14章 作业