当前课程知识点:R语言数据分析 > 上部:问道 > 第3章 格言联璧话学习 > 第3章 格言联璧话学习
欢迎大家来到《R语言数据分析》课程
今天要与大家交流一个非常有意思的话题
叫做 格言联璧话(机器)学习
应该说任何一个领域
经过一段时间的积累之后
都会有很多格言警句
然后对于我们这个机器学习来讲
也有几十年的历史了
里面也积累了很多非常精辟的语言
然后我这里面就给大家列出十条左右
我们一起来交流一下
第一条是什么
数学是宇宙的语言
这个世界真正的逻辑是概率计算
前面这半句话大家都应该广为认同了
任何一门学科它真的要比较成熟的话
它最终都需要通过数学的语言来表达出来
通过数学的语言来表达
要非常精确的刻画任何一个领域的
不管是自然界的
是自然系统还是社会系统
它其实都是需要什么
最后要通过数学的方式来表达这个规律
但是我们这个世界是比较复杂的
所以真正的逻辑是什么
它是概率计算
包括我们后面学到的比如说
有监督学习分类
它其实是什么
可以把它视为一个函数
从X映射到y 即 y=f(X)
但是你会发现
后面这个映射过程也不是百分之百的
当X取某个值的时候
y就必然去某个值
它其实都是什么
都是概率的过程
这个系统是一个真实的系统的时候
这个系统越复杂
我们后面确定性的规律反倒越少
反倒是一些不确定性的规律更多一点
当然说我们这个世界真正的逻辑是概率计算
还有另外一个理解是什么
就是也有一些数学家
试图通过概率来重新改写什么
我们这个数学体系
所以说概率也是一个非常好的视角
这是我们第一句话
和大家分享的
数学是宇宙的语言
然后这个世界真正的逻辑是概率计算
第二句话
相关并不意味着因果
这什么意思
很多时候我们能找到一些
尤其是在做数据分析的时候
我们能找到不同变量之间相关关系
但是我们想说的是相关关系 函数关系
甚至函数关系
它都不能等同因果关系
我们可以举个例子
比如说我们在农村住的时候
你会发现鸡叫三遍 天快亮了
对不对
也说鸡叫和这个天亮它是有关系的
甚至说这种关系是一种函数关系
怎么样
你可以通过鸡叫你来预测天是不是要亮
但是我想说的是什么
它并不是因果关系
并不是因为鸡叫天才亮
你即便把这个村里面所有鸡都宰了
这天还是得亮
所以我们从数据本身的角度来讲
我们能找到这个相关关系
也能找到这个函数关系
我甚至能做一些预测
但是它并不是因果关系并不能做控制
当然并不表示它(规律/模式)没有意义
其实比如说我们以前在农村住的时候
假如没有闹钟
这个时候就是听鸡叫 就能预测天亮
这个预测过程还本身是有用的
所以我们要把它这个区别开来
相关关系函数关系这个因果关系
我们把它区别开来
虽然它不能等同于这个因果关系
但是它仍然是有价值的
这是我们第二句
第三句
所有的模型都是错的
但是有些模型是有用的
这个就非常有意思了
我们一般来讲都说建模的时候
我想建一个好的模型
一个正确的模型
我们都在讲究正确的
但我们首先一个观念是什么
在做数据分析的时候
所有模型都是错的
这里边有两个理解
第一个是什么
我们从机器学习框架来讲
它是怎么样
所谓的建模过程是一个什么
是一个选择的过程
从已有的模型集里面
候选集里面选一个跟实际数据
拟合最好的 这么一个过程
那毫无疑问
它其实本质上和实际存在的规律
它本来就不一样
所以它本质上就是错的
这是一种理解
就为什么说所有模型都是错的
第二种理解是什么
因为我们所有的机器学习也好
数据分析也好
它都是属于什么
从逻辑推理角度讲
它就是一个归纳法
归纳法是一个似真推理
是一个或然性的推理
它本身就不能说是正确的
所以我们说所得到的模式也好 模型也好
它都是什么都是错的
但是有些模型是有用的
什么意思
可以和我这个实际的数据拟合得非常好
也能用来做判断
也能用来做预测
也得用来做描述
正是因为所有模型都是错的
有些模型是有用的
所以才说我们的模型的评估
和我们模型的构建模型的选择是同等重要的
即便哪怕是对于我们这么一个简单的模型
就最早学过的这个1+1=2
这最简单的数学模型 对不对
你同样什么
也不能说它是对的 [作为模型的角度而非纯数学的角度]
这时候也要根据实际的情境
在某些情境之下它才是有用
所以必须在有了模型评估之后
才来说我这个模型适不适用
比如说我们说1个苹果加另外1个苹果
等于2个苹果
这毫无疑问是有用的
对不对
但比如说一滴水加另外一滴水放在一起
它还是一滴水
这个时候1+1=1
是不是
再比如说我这个开关
你按一下这个灯亮了
你再按一下 是两倍亮吗
当然不是了
1+1=0
对吧 关掉了
所以即便是1+1=2这么一个简单的模型
它其实是什么
你也不能说它是对的
它只是在某些情况之下是有用
那究竟在我们目前这个情景里面有没有用
你需要做的什么
一定要做模型评估
假如没有模型评估的话
你这个数据分析这个流程是不完整的
是不完整的
这是我们要给大家交流的第三条
第三条格言警句
咱们再来看
没有明确的证据表明
一个模型会优于另外一种模型
就当我面对所有问题情境的时候
所有的模型都差不多
它大概是这么一个意思
这个时候大家就很纳闷了
比如说我现在深度学习神经网络
多好的模型
那要是和一个什么线性模型相比
那肯定是这个神经网络
这个深度学习的模型更好了
为什么说线性模型和深度学习
这么复杂的模型
这么高端的模型
它竟然是放在同样的位置
为什么有这么一个所谓的原理
咱们看一个实际的例子
比如说我现在有三列数据
一个是x1 一个是x2 一个是Y
我们看这个名字我们知道了
我们想拟合一个关系什么
Y=f(x1, x2) 对吧
想拟合这么一个函数
想把这个函数找到
那大家看看这么一组数据
当然我只列其中一部分数据
对于这么一组数据的话
那我究竟是用非常复杂神经网络好
支持向量机好
还是用一个简单线性模型好
应该说给人直接上讲
肯定应该是一个相对比较高大上的模型
一听起来支持向量机这个模型多好
一听神经网络模型多好
对不对
但是我想告诉大家的是
对目前这个情境来讲
最好的模型是什么
就是线性模型
为什么
因为我这个X1是什么
可以说是∠A(角A)
x2是∠B
y是∠C
我是分别把这三个角的角度测量出来
假如我不告诉你的时候
你可能只是拿到这三列数据
但我告诉你是
第一列表示∠A 第二列表示∠B
第三列表示∠C的时候
很自然就要想 就意识到
Y等于多少
180-x1-x2
当然我们实际测量的时候有些误差
对吧
所以它可能这里面后面要有一个什么
一个随机(误差)项对不对
但是没有哪个模型会比这个线性模型更好
采用线性模型的时候
它肯定会比什么
比其他什么神经网络其他的一些模型
你再这么复杂 再怎么高大上
都没有这个简单的线性模型好
当然我们这边只是举个例子
表示什么意思
对于不同的场景来讲
不同的模型是有适用范围的
即便是一个再简单模型
只要它是适用的 它就是最好的
它就是最好的
当我面对所有情境的时候
无所谓哪一个模型更好
那个模型更坏
这是我们要跟大家一块交流的
第四个格言警句
咱们再来看
成功的机器学习应用
不是拥有最好的算法
而是拥有最多的数据
什么意思
当我数据量太少的时候
模型再好都是没有意义的
比如说现在只有10条数据
20条数据
假如是这么小的数据量的时候
几乎就不需要采用任何模型了
为什么
当我这个数据我都能
人工能看得出来非常清楚的时候
我能把你们的模式看得一清二楚的时候
你根本就不需要再拟合任何模型
因为没有哪个神经网络比人脑这个神经网络更好
对吧
人脑能看到很多
一粒沙里见世界 半瓣花上说人情
你可以看很多很多内在的背后的故事
只有当我这个数据量到一定程度之后
才能发挥什么
发挥这个机器的作用
才能发挥这个算法模型的作用
所以我们说成功的机器学习的应用
你必须有一定的数据的积累
而且我们可以看一下
比如说目前用的最好的
比如说深度学习也好
或者其他一些数据分析的应用
你发现都是什么
比如说互联网企业 电商企业
或者那些工业生产的一个过程
都是什么 都是积累了大量的数据
然后才显示这个模型的一个优势
咱们再看第六条
这句话就比较俏皮一点了
叫 “特征选不好 参数调到老”
我们都知道
所谓机器学习建模的过程
其实就是什么
有一个候选集
有了候选集之后我来调参数
直到把这个参数调到最能吻合我的什么
我的数据
调完参数其实就相当于什么
建完模了
但我们这么有一句话叫做
特征选不好 参数调到老
什么意思
当你的特征没有选择正确的时候
你参数再怎么调也调不到理想的效果
这怎么理解
比如说我根据一个人什么学历
根据一个人的智商
根据一个人的成长环境
来预测他未来毕业五年之后
他的那个薪资水平
这是可以的
这个时候的特征
因为这个特征跟我的薪资水平它确实相关
我是从逻辑上讲它是正确的
但是假如我选另外一个特征
比如说我根据他的姓名来判断
他毕业十年之后的薪资
因为姓名也很有讲究
比如说
比如说我这个姓名叫艾新波
艾是天格
新是地格
波是人格
根据这个天格地格人格来判断
毕业十年之后
毕业五年 十年之后
他的薪资水平
这个时候你再怎么预测他也预测不准
为什么
因为那个时候可能就不是科学而是迷信了
因为这个本身这个特征已经选得不好了
假如你特征选择不好的时候就相当于什么
问道于盲 缘木求鱼
不可能得到一个有效的规律
这是我们所谓的第六条
这个格言警句
跟大家一块交流一下
然后有了前面两条之后
我们再看觉得很自然得到什么
第七条了
数据和特征决定了什么
决定了我这个机器学习的上限
模型和算法只是什么
逼近这个上限
所以你的数据怎么样
你选的特征怎么样
基本上已经确定了
最后这个模型最好的性能是什么
所谓的做算法建模的过程
只是在逼近这个上限
就有了前面这两条之后
很自然有了这第七条
咱们来看第八条
如何赢得机器学习的比赛
那就是把别人的模型拿过来
然后集成在一起
这句话说起来看来很随意
但其实说得有一定的道理
不能说它完全正确
但是它确实也有一定的道理
为什么
这句话可以从两个角度来理解
第一个角度什么
就反映了什么
集成学习 组合学习的一个优势所在
我们后面也会讲
单个的模型都算是弱分类器
当把多个模型放在一起的时候
这个时候很有可能就变成一个强分类器了
它的性能指标会远远优于单个的弱分类器
这是一种理解
另外一种理解是什么
把现有的很多算法模型
把现有的很多技术方法集成在一起的时候
来解决一个具体的问题情境
这个时候效果也往往非常好
比如前段时间特别火的叫阿尔法狗 AlphaGo
就下棋对吧
它战胜了人类了
应该说是一个标志性的事件
但其实你发现阿尔法狗
没有用到什么全新的技术
都是把已有的技术什么拿过来用用而已
所以这种集成的效果
你发现它也是非常好的
当然我们并不是说在做数据分析的时候
只是做一个拿来主义 只是做组装
我们也希望有些原创的效果
原创的一些算法理论
尤其对于我们中国人来讲
可能集成的事情做的太多了
虽然在工程应用里面确实有些效果
但是你会发现
现有的这些比较流行的算法
比较经典的算法
以中国人命名的 中国人作为原创的实在太少了
所以我们虽然说在强调在具体工程应用的时候
确实集成它非常有效
但同时我们也希望有更多的原创的算法出现
咱们看第九条
数据科学家就是一个
比计算机科学家懂更多统计
比统计学家懂更多计算机的人
所以证明数据科学家他至少两个方面都得懂
第一个是什么
算法基础 理论他得懂
另外一个什么
工具 代码我得懂
对我们这个课程来讲
也就是说 你在学习算法的同时
一定得什么上手
得写代码
对这个尤其是我们比如说 R语言也好
python也好
这些工具性的
这些在偏计算机这一块的
我们是需要加强的
只有这两条腿同时走路的时候
我们在数据科学这一块才能登堂入室
咱们看最后一条
叫做关键在于问题而非模型本身
所以有三句话叫什么
业务敏感是第一位的
算法老道是第二位的
编程熟悉是排最后
对一个数据科学家也好
这个数据工程师也好
他的素质是什么
素质要求是什么
首先是业务敏感
然后是算法老道
其次才是什么
编程熟悉
也就是说你拿到一个问题情境的时候
你首先能找到这个找这个点
要知道怎么结合这个问题情境来选这个特征
要知道大概用哪些算法得到一些结果
并且能结合问题的情境
我把这个结果变成结论
这是非常关键的
所以你业务敏感是第一位的
当然作为一个数据分析人员
必须对什么相应的算法都非常熟
哪些算法应用于哪些情景是有效的
还有就是我们刚才讲到的
计算机这块也得相对比较熟一点
编程也比较熟悉
我能实现它
而不仅仅是坐而论道
那我简单的做一些算法的推导
不是那样
而是具体做什么
做算法的实现
所以业务敏感 算法老道 编程熟悉
这应该是对数据分析的
工程师也好
数据科学家也好
一个素质的要求
以上就是我们分享了十条
关于机器学习的一些格言警句
当然我这边都是九牛一毛
也有更多的一些好的一些说法
也值得我们去仔细的体会它究竟是什么含义
也希望大家在具体的学习过程中能不断积累
本次课到此结束
谢谢大家
-第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章 作业