终于有人把数据、信息、算法、统计、概率和数据挖掘都讲明白了!
插画设计:万娟
01
什么是数据
数据是什么?这几乎成为一个我们熟视无睹的问题。
有不少朋友脑子里可能会直接冒出一个词“数字”——“数字就是数据”,我相信会有一些朋友会斩钉截铁地这么告诉我。
一些朋友会在稍作思考后回答“数字和字符、字母,这些都是数据”。
不知道你现在是不是正在纠结哪个回答更正确,亦或第二个回答更合理一些,我们先放一放。先看下面这组例子:
这里有6个0,请问它是数据吗?
我们再看这样的例子:
这里有4个1和2个a,那么它是数据吗?
也许你可能会摇摇头,“这到底是啥意思?”不错,这也就是我们在认识数据的过程中存在的一个很要命的问题,几乎在我们出发时就拦住了我们的去路。
我们回过头再想想刚才的问题可能会得到比较令自己和他人信服的回答“承载了信息的东西”才是数据,换句话说,不管是石头上刻的画,或者小孩子在沙滩上歪歪扭扭写出的字迹,或者是嬉皮士们在墙上的涂鸦,只要它表达一些确实的含义,那么这种符号就可以被认为是数据。而没有承载信息的符号,就不是数据。这个观点似乎看上去要比我们前面的回答理性得多,也科学得多,但是这个观点真的不需要补充了吗?
我们假设这两个例子都有一些比较特殊的场景,假设第一组里出现的6个0其实是时分秒的简写,000000表示00点00分00秒,而如果写作112349则表示11点23分49秒的含义,那么它是不是也是数据呢?假设第二组出现的5个1和2个a其实是一组密码,5个1代表一个被约定的地点,aa代表一种被约定的事件,那这组数字字母的意义也有了相应的解读,那么它是不是也是数据呢?
不难看出,一些符号如果想要被认定为数据,那就必须承载一定的信息。而信息很可能是因场景而定,因解读者的认知而定,所以一些符号是不是可以被当做数据,有相当的因素是取决于解读者的主观视角的。不知道这个观点你是不是认可,总之这点很重要。
02
什么是信息
说到这里,我的同事娟娟非常认真且煞有介事地跟我说:“我觉得数字、字母、图像,这些都是数据,跟信息不信息的没啥关系。”看着她认真地跟我抬杠,我觉得蛮好,至少在认识数据过程中积极思考只有好处。
信息一词,在没有学术背景的情况下其实有着很多解释,例如,广播中的声音、互联网上的消息、通讯系统中传输和处理的语音对象、甚至是小区和校园的消息看板,也就是人类社会传播的一切内容。1948年,数学家香农(Claude Elwood Shannon)在题为《通讯的数学理论》的论文中指出:“信息是用来消除随机不定性的东西”。这句话如果要我们来举个例子说明的话,大概可以想象这样一个场景。
我说了两句话:“我今年33岁。”“我明年34岁。”
那么第一句话如果是为了对不了解我的人介绍我的年龄的话而可以算作信息的话,第二句话则不是信息。至少你会觉得说了第一句以后,后面这句简直就是废话,因为这个从第一句话完全可以推导出来。
再比如,某一天巴西足球队和中国足球队进行了比赛。
结果第二天张三告诉我,“昨天巴西队赢了。”
而后李四告诉我,“昨天中国队输了。”
再而后王五告诉我,“昨天的比赛不是平局。”
前提是只要他们都是说实话的人,那么对于我来说,也就只有张三告诉我的能算信息,李四和王五说的则不能算做信息。甚至连张三说的“昨天巴西队赢了”这句话是否能够被算作信息,我们都要表示怀疑,因为这也有点“废话”的意味——但凡对足球运动有点认识的人这几乎可以认定,即便你不告诉我昨天巴西队赢了,我也能猜个八九不离十,因为可能性实在是太大太大了,大到几乎是一定的,几乎是毋庸置疑的。国足的粉丝们请放下手中的臭鸡蛋和烂西红柿,听我把例子讲完。
现在信息是什么清晰多了吧?我们可以粗忽地认为,信息就是那些把我们不清楚的事情阐明的描述,而已经明确或者知晓的东西让我们再“知晓”一遍,这些被知会的内容就不再是信息了。这个概念是很有用的,我们后面在讲信息论的时候也会再做定量的说明,现在只做一个定性的了解。
数据和信息是我们在数据挖掘和机器学习领域天天要打交道的基础,也是我们研究的主要对象。所以对数据和信息有个比较一致性的认识对后面咱们讨论问题是非常有好处的。
03
什么是算法
算法这个名称大家应该通常不陌生,如果你是一个信息相关专业的本科学生,至少在本科一年级或者二年级就接触过不少算法了。随便打开一个人力资源网站去搜搜看“算法工程师”,好的算法工程师的年薪也随便就到三五十万甚至上百万的都有的。
算法是什么?算法可以被理解成为“计算的方法和技巧”,在计算机中的算法大多数指的就是一段或者几段程序,告诉计算机用什么样的逻辑和步骤来处理数据和计算,然后得到处理的结果。
科班出身的信息相关专业的朋友看到这里就会觉得比较亲切了,经典的算法有很多,比如“冒泡排序”算法,这几乎是所有以高级语言为依托的《数据结构》的入门必学;再比如“八皇后问题”算法,这几乎也是我们在讲穷举计算时的经典保留算法案例(就是在国际象棋棋盘上放八个能够横竖斜无限制前进的皇后,让它们之间互相还不能攻击,看有多少种解);还有不少我们听说过的算法,比如MD5算法,ZIP2压缩算法等各种不胜枚举的算法。下图就是八皇后问题的一组解,我们经过穷举是可以求出所有92组解的。
应该说算法是数据加工的灵魂。如果说数据和信息是原始的食材,数据分析的结论是菜肴,那么算法就是烹调过程;如果说数据是玉璞,数据中蕴含的知识是价值连城的美碧,那么算法就是玉石打磨和加工的机床和工艺流程。
算法在高级语言发展了很多年之后,更多的被封装成了独立的函数或者独立的类,开放接口供人调用,然而算法封装地再好却是不能用纯粹不假思索地使用就能获益的东西,要知道,这些封装只是在一定程度上避免了我们重复发明轮子而已。
大家不要以为算法全都是算法工程师的事情,跟普通的程序员或者分析人员无关,算法说到底是对处理逻辑理解的问题。
《孙子兵法·作战篇》有云,“不尽知用兵之害者,则不能尽知用兵之利”,意思是说,不对用兵打仗的坏处与弊端进行充分了解的话同样不可能对用兵打仗的好处有足够的认识。算法的应用是一个辩证的过程,不仅在于不同算法间的比较和搭配使用有着辩证关系,在同一个算法中,不同的参数和阈值设置同样会带来大相径庭的结果,甚至影响数据解读的科学性。这一点请大家务必有所注意。
04
统计、概率和数据挖掘
统计、概率、数据挖掘,这几个词经常伴随出现,尤其是统计和概率两个概念,几乎就像自然界的伴生矿一样分不了家,有很多出版社都出版过叫做《概率统计》的书籍。
我们这本书本身也不准备从学术的角度给统计和概率做严格的区分,在平时工作中我们用的统计大多为计数功能,例如我们在使用EXCEL中也会用到COUNT、SUM、AVERAGE等这些统计函数;如果是在软件开发的朋友在用SQL语言对数据库的某些字段进行计数(count)、求和(sum)、求平均(avg)等函数。而概率的应用大多则是根据样本的数量以及占比得到“可能性”和“分布比例”等描述数值。当然,概率的用法远其实不止这些,在数据挖掘中同样用到大量概率相关的算法。
数据挖掘这个词很多时候是和机器学习一起出现,现在网上众人对这两个词的关系说法也是莫衷一是。有的说数据挖掘包含机器学习,有的说机器学习是数据挖掘发展的更高阶段云云。在我看来,数据挖掘和机器学习这样的词汇命名应该是信息科学自然进化和衍生出来的,带有一定的约定俗成的色彩,人们的看法见仁见智也在情理之中。
我的观点是这样。
首先我认为没有必要一定要给两个词汇划一个界限,或者一定要把他们做严格的概念区分,因为区分的标准到目前本就没有科学而无争议的界定,况且是不是能分清一个算法属于数据挖掘的范畴还是机器学习的范畴对于算法本身使用是没有任何影响的。这两个词大家如果想听解释的话,不妨只从字面意思去理解就已经足够了。
数据挖掘——首先是有一定量的数据作为研究对象,挖掘——顾名思义,说明有一些东西并不是放在表面上一眼就能看明白,要进行深度的研究、对比、甄别等工作,最终从中找到规律或知识,“挖掘”这个词用的很形象。
机器学习——我们先想想人类学习的目的是什么?是掌握知识,掌握能力,掌握技巧,最终能够进行比较复杂或者高要求的工作。那么类比一下机器,我们让机器学习,不管学习什么,最终目的都是让它独立或至少半独立地进行相对复杂或者高要求的工作。我们在这里提到的机器学习更多是让机器帮助人类做一些大规模的数据识别、分拣、规律总结等人类做起来比较花时间的事情。但是请注意,与数据挖掘一起出现的这个机器学习概念和我们说的“人工智能”还是相差甚远,因为这里面对“智能”的考究程度实在是太低了。
05
什么是商业智能
另一个和大数据一起经常出现的词汇是商业智能,也就是我们平时简称的BI(Business Intelligence)。
商业智能——业界比较公认的说法是在1996年最早由加特纳集团(Gartner Group)提出的一个商业概念,通过应用基于事实的支持系统来辅助商业决策的制定。商业智能技术提供使企业迅速分析数据的技术和方法,包括收集、管理和分析数据,将这些数据转化为有用的信息。如果这个书本式的概念读起来还是比较费解,那么就听一个形象的比喻。
公司在日常运营过程中是需要做很多决策的,无时无刻都存在于公司的各个方面,而决策最终不管是股东大会讨论也好还是企业领导部门领导直接发布行政命令也好,最终可能是由于很多因素共同影响做出的结果,无论其来自主观还是客观。
这些决策可以如何得出呢?可以领导直接凭经验决定;可以群策群力开会决定;可以问讯很多行业专家;甚至可以找个算卦先生来占卜……从概念来说都是属于辅助决策。而显然,我们都期望不论最终是如何做出的这些决策和命令,它们都应该是更为理性、科学、正确的。但是如何帮助他们做出更为理性、科学、正确的决策呢?商业智能整体也就是研究这样一个课题,到目前为止,业界普遍比较认可的方式就是基于大量的数据所做的规律性分析。因而,市面上成熟的商业智能软件大多都是基于数据仓库做数据建模和分析,以及数据挖掘和报表的。
可以说,商业智能是一个具体的大的应用领域,也是数据挖掘和机器学习应用的一个天然亲密的场景。而且商业智能这个解决问题的理念其实不仅仅可以应用于商业,还可以应用于国防军事、交通优化、环境治理、舆情分析、气象预测等等。
本文摘编自《白话大数据与机器学习》,经出版方授权发布。
延伸阅读《白话大数据与机器学习》
关于作者
高扬,金山软件西山居资深大数据架构师与大数据专家,有多年编程经验和多年大数据架构设计与数据分析、处理经验,目前负责西山居的大数据产品市场战略与产品战略。专注于大数据系统架构以及变现研究。擅长数据挖掘、数据建模、关系型数据库应用以及大数据框架Hadoop、Spark、Cassandra、Prestodb等的应用。
卫峥,西山居软件架构师,多年的软件开发和架构经验,精通C/C++、Python、Golang、JavaScript等多门编程语言,近几年专注于数据处理、机器学算法的研究、应用与服务研发。
尹会生,西山居高级系统工程师。曾任新浪研发中心技术经理、北京尚观科技高级讲师。擅长企业集群解决方案和内核调优经验,并提供高性能和高可用性集群咨询服务。近4年专注于Hadoop集群、Spark集群在推荐系统和BI相关领域的解决方案。
万娟,星盘科技有限公司UI设计师平面,对VI设计、包装、海报设计等、商业插画、App交互、网页设计等有独到认识。多次参与智能家居和智能音箱等项目的UI设计。多次参加国际和国内艺术和工业设计比赛,并获奖。从小酷爱绘画,理想是开一个属于自己的画室。
点击下方小程序购买哦~
相关文章:

【经验】配置Anaconda源
配置清华源: conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/

oracle update批量修改sql语句编写
update Suncco_Tz_Tbl_Task t set t.taskname网络部储备(室分)土建 , t.tasktype交换-交换主设备-电路域设备 , t.taskbyarea思明 , t.addresscoding2422BG00003735 update SUNCCO_TZ_TBL_TASK task set task.taskname11 , task.type33 where task.TA…

深入卷积神经网络背后的数学原理 | 技术头条
参加「CTA 核心技术及应用峰会」,请扫码报名 ↑↑↑作者 | Piotr Skalski译者 | Monanfei编辑 | 十月Rachel、Jane出品 | AI科技大本营(id:rgznai100)【导读】在计算机神经视觉技术的发展过程中,卷积神经网络成为了其中…

【AI】在win10上安装TensorFlow2,安装成功,但是import tensorflow时报错:pywrap_tensorflow.py“, line 58
目录一、问题描述二、原因分析三、处理过程四、解决方法五、安装2.1和2.0命令的不同点1、TensorFlow2.02、TensorFlow2.1六、使用TenforFlow2.0-GPU时,报错:cudart64_100.dll not found1、错误信息如下2、原因分析3、解决方法七、测试TensorFlow是否支持GPU1、测试对…

SpringMVC4.x源码分析(五):request请求寻址HandlerMethod原理
2019独角兽企业重金招聘Python工程师标准>>> mvc:annotation-driven会将每一个Controllor内的被RequestMapping注解标注的方法解析为HandlerMethod对象,并存储在RequestMappingHandlerMapping的MappingRegistry属性中,寻址就是根据request请求…

在ASP.NET中指定出错页面,不让代码外泄!
在ASP.NET中指定出错页面,不让代码外泄!在ASP.NET中原始的出错页面会暴露部分源代码,由此带来了潜在的安全隐患。ASP.NET允许应用程序出错时显示用户指定的页面,方法是在web.config文件中修改配置信息。 <? xml version"…

【经验】提高github的下载(克隆)速度
原理: 利用码云来克隆GitHub项目,然后从码云下载。 参见博客: 最详细的图文教程帮你解决GitHub下载慢或下载失败问题(2019.8.10亲测有效)

Erlang之父给程序员的两点忠告 | 缅怀
整理 | 伍杏玲出品 | CSDN(ID:CSDNnews)北京时间 4月20日,据Erlang Solutions、Erlang Factories的创始人Francesco Cesarini的推特称,Erlang之父Joe Armstrong于4月20日去世,享年68岁。Francesco怀念道&am…

如何为你的博客文章自动添加版权信息?
转自:http://www.chinaz.com/web/2016/0616/541282.shtml https://www.feifanblog.com/ 好长时间没有分享关于网络技术的文章了,昨天有位朋友问我:“你博客每篇文章末尾的版权声明都是我自己手动添加的吗?”,看到这个问题我想很多…

2011-11-27
大三,这个关键时刻,目前自己正在写软件课程设计程序-教材订购系统,加油!努力!转载于:https://blog.51cto.com/3122770/728090

【Qt】Qt编码风格、命名约定
1、类名称以大写字母开头、函数名称以小写字母开头,并使用驼峰命名法;类名使用名词或名词短语、函数名使用动词或者动词短语; 2、常量应当大写并且尽可能在类的作用域内创建成枚举值,全局常量和宏通常是大写; 3、布尔变…

UC伯克利开源照片“隐写术”StegaStamp,打印照片能当二维码用!| 技术头条
参加「CTA 核心技术及应用峰会」,请扫码报名 ↑↑↑作者 |CV君来源 | 我爱计算机视觉(id:aicvml)要说目前最火的用到手机摄像头的应用是什么,毫无疑问非二维码识别莫属了。微信带起来的二维码热,几乎已经改…

你为世界杯而战,我为生活而战!
这什么23时直播揭幕战俄罗斯vs沙特 开始时间!很庆幸见到了本世界坏中第1个球!(四年一次比赛,四年一博!)接下来看看我在奋斗什么?(人生随时进行比赛,错了、对了、再错了、再对了、只要不放弃学习就有未来!)********************************************…

【C++】重载、重写、隐藏
1、重载:在同一个作用域中两个及以上的函数名相同但是参数个数或类型不同时构成重载,重载的本质是,编译后的函数会有不同的签名; 2、重写:这是类继承中的概念,基类中virtual标记的函数,在派生类…

有了它,AI甚至可以让你知道对方是否真的爱你?
“你到底爱不爱我?”这或许是恋爱双方出现频率最高的问题,想要知道对方大脑在想什么,并不是什么天方夜谭,通过科学技术还真的有望实现。不过,让如此大胆的想法变为现实,我们需要借助什么技术呢?…

基于jwt的用户登录认证
最近在app的开发过程中,做了一个基于token的用户登录认证,使用vuenodemongoDB进行的开发,前来总结一下。 token认证流程: 1:用户输入用户名和密码,进行登录操作,发送登录信息到服务器端。 2&…

跨平台网络游戏趋势和优势
跨平台网络游戏趋势和优势 前几年还是网页游戏蓬勃发展的状态,就有分析指出从明年开始网页游戏市场已经饱和,想想几年前客户端游戏也是同样的窘境,如果将桌面、移动设备、网页统称一个词汇的话,那就是终端,现在各种的终…

IAR生产HEX文件
刚刚接触IAR,编译默认生成的是.a90文件,但直接用avr studio下载时提示非正规HEX文件,不给我下载,郁闷了。 其实也简单,如下图所示配置文件后面加几行字就OK了。 //Output File -Ointel-extended,(XDATA).eep -Ointel-e…

【Qt】重新认识QObject
1、QObject父子对象的是设计模式中组合模式的实现。父对象和基对象不是一个概念,前者是在运行时管理子对象,是动态的,后者是在编译时判定派生关系,是静态的。 2、每个QObject至多有一个父对象,父对象中将子对象的指针放…

抛弃VS Code,我还能用啥编辑器?| 技术头条
作者 | Abhishek Prakash译者 | 苏本如责编 | 屠敏转载自 CSDN(ID:CSDNnews)微软的VS Code无论对Web开发人员或其他程序员来说,都是一款优秀的代码编辑器。凭借其出色的功能,VS Code被认为是最好的开源代码编辑器之一。…

WebClient UI和Tomcat的启动器
WebClient UI 我们在WebClient UI的开发工具里点了Test按钮, 会在浏览器以测试模式打开选中的view。这背后发生了什么事?注意浏览器地址栏的bspwd_cmp_test,这是什么东西?Jerry倾向于把它当作是CRM WebClient UI component在测试模…

通过网络安装VMware ESX Server 5
VMware ESX Server的宿主系统是基于Linux定制开发的,所以,它也和所有的Linux系统一样,除了支持光盘引导安装外,还支持基于PXE的网络引导与安装。在VMware ESX Server 4及其以前的版本中,在通过网络远程安装的时候&…

实战:CNN+BLSTM+CTC的验证码识别从训练到部署 | 技术头条
作者|_Coriander转载自Jerry的算法和NLP(ID: gh_36eba310d433)1.前言本项目适用于Python3.6,GPU>NVIDIA GTX1050Ti,原master分支已经正式切换为CNNLSTMCTC的版本了,是时候写一篇新的文章了。长话短说,开…

MySql练习题参考答案
表结构: /*Navicat Premium Data TransferSource Server : localhostSource Server Type : MySQLSource Server Version : 50624Source Host : localhostSource Database : sqlexamTarget Server Type : MySQLTarget Server Version …

【Qt】Qt源码中涉及到的设计模式
1、单例模式 qApp宏返回指向QApplication的单例 #define qApp (static_cast<QApplication *>(QCoreApplication::instance()))2、MVC模型视图控制器框架 模型是应用程序对象、视图是它的屏幕显示、控制器定义了用户界面对用户输入的反应。 Qt的模型视图框架是经典的MV…

从当前日期算起,获取几天前的日期和几个月前的日期
/*** 从当前日期算起,获取N天前的日期(当前日不算在内),日期格式为yyyy-MM-dd* * param daily 天数* return */public static String getDateByDay(Integer daily) {Date date new Date();int year Integer.parseInt(new Simple…

清华大学人工智能研究院成立听觉智能研究中心,将专注基础研究和成果产业化
4月22日,清华大学人工智能研究院听觉智能研究中心(以下简称听觉中心)成立仪式暨学术前沿报告会在清华大学FIT楼举行。 清华大学副校长、人工智能研究院管委会主任尤政院士在致辞中表示,成立听觉中心是清华大学加速推进人工智能发…

两道面试题,带你解析Java类加载机制
2019独角兽企业重金招聘Python工程师标准>>> 在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa {static{System.out.println("爷爷在静态代码块");} } class Father extend…

【Qt】监视文件和目录的修改:QFileSystemWatcher
一、说明 QFileSystemWatcher用于监视指定文件或目录列表的更改。 注意:监视文件或目录时需要打开相应的文件描述符,因此被监视的文件或目录数据是有限的,受系统允许的文件描述符数据等限制。 二、常用成员函数 1、public 构造、析构函数: QFileSystemWatcher(const QS…

asp.net 2.0中新增的AppendDataBoundItems .dropdownlist 添加第一项
在asp.net 2.0中,新增了一个AppendDataBoundItems属性,十分方便,使可以在执行数据绑定之前将项添加到 listcontrol 对象中。执行数据绑定之后,项集合中包含数据源中的项以及以前添加的项。如果不在绑定数据之前清除列表项…