博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大数据:Let data have sex
阅读量:4094 次
发布时间:2019-05-25

本文共 3462 字,大约阅读时间需要 11 分钟。

首先机器学习这个词应该更侧重于技术方面和各种算法。

一般提到机器学习就会想到语音识别,图像视频识别,机器翻译,无人驾驶等等各种其他的模式识别,甚至于谷歌大脑等AI,这些东西的一个共同点就是极其复杂的算法,所以说机器学习的核心就是各种精妙的算法。

但是这些在工业界机器学习很多职位并不是这么一回事的,相对于以上种种逼格要low很多,公司里面很多任务是数据给你之后你就是尝试“普适的”算法往里面套就是了,所以在工业界很多声称搞机器学习的都是调包侠;再者因为机器学习的算法和模型基本都是一般性的,没有domain knowlege,所以又有了很大一部分工作做特征工程。 

在工作中:

工作内容就是写代码,优化算法,维护代码,维护业务。后台开发技术是最基本的基础,我这里就是c/c++和TCP/IP网络编程,淘宝那里也许主要是java企业里面用这些技术,都是明摆着要赚钱的,老板不管你模型牛逼不牛逼,哪怕你用个傻逼的模型,只要效果好,能赚钱就行。所以,多数时候,简单的模型比各种牛逼论文中的牛逼模型效果好。。。。至于怎么去设计这个模型,看个人的数据敏感度吧,我觉得和理论功底关系不大。有些人总是能找到一些特别好的属性,显著提高算法效果。就比如你看到上面的百度联盟广告,其实也是后台有推荐和数据挖掘算法在跑的。也许,就这个东西,百度就有好几个工程师在跟进,这就是一个业务场景,一个大的互联网公司有成千上万个类似的场景,都有很多工程师在做。当然,数据挖掘可以做很多事情,个性化推荐和个性化广告,是我自己在做的领域,所以多说两句。由于非常方便评测效果,所以做这个领域压力是特别大的,不管你多牛,你算法没效果,说啥都没用。不像一些开发领域,只要你完成开发任务即可,维护修复bug即可。
做data mining和machine learning的人,最好是算法和工程都要兼备,一方面是要掌握一门编程语言,C++或者Java,然后再掌握一门脚本语言,python或者perl或者ruby。当然,会matlab就更是加分了。哦,会hadoop也很欢迎。书籍方面,就是Jiawei Han教授和他的学生(现在也在当老师了)写的《数据挖掘:概念与技术》,配合我们国科大的刘莹老师的PPT,效果更佳。(刘莹的讲课视频。。。讲得很不好,就是读ppt。看jiawei han的就行了)其他的,可以看看王斌老师翻译的《大数据》和bishop的PRML或者MLAPP还是那句老话,数据比算法重要,有很多数据,你即使用最烂的算法,也可能获得非常好的效果;用最牛逼的算法,也可能效果差强人意。利益比算法重要,只要你做的工作可以增加网站流量或者提高商品的销售量,你就是牛逼,老板就认可你,老板不管你用了什么技术或者数学模型。现在的推荐系统,算法并不是最重要的层面了,待解决的问题,基本上都是非干货非技术层面的问题,比如说,怎么解决数据少,cold start,或者说data sparsity的问题

 

数据挖掘则更偏向于“数据”而非算法,而且包括了很多数据的前期处理,用爬虫爬取数据,然后做数据的清洗,数据的整合,数据有效性检测,数据可视化(画图)等等,最后才是用一些统计的或者机器学习的算法来抽取某些有用的“知识”。前期数据处理的工作比较多。

 

总结:

机器学习强调的是算法,而数据挖掘是整个过程,包括:数据仓库,数据建模,数据预处理,算法,工程化等。

机器学习,更注重于模型的训练, 偏于过程。而数据挖据,更注重于获得有效数据,重在目的。

 

数据挖掘(Data Mining)更应该叫Knowledge Discovery in Databases,它是数据库、机器学习、统计的混合体。

 

机器学习是一系列基于概率统计的模型或算法,主要有生成式和判别式两类;数据挖掘首先处理的是数据而不是图像(计算机视觉),所以是对经验数据的原因或结果的分析处理,其中分析的方法很大部分属于机器学习算法,如通过一系列条件估计某个结果的概率,其实就是生成式,数据挖掘还包括预处理和数据实际化建模的问题,高于纯数学算法。

机器学习是对算法的研究,比较理论,重视的是算法的优化,正确率的提高,关注的是算法本身。数据挖掘模式分类则注重的是结果,一个是从数据中提炼出有用的信息,一个是对对象进行分类。如果理解的简单一点,一个是理论的范式,一个是实际应用。数据挖掘有一整套的流程,数据仓库,数据清洗整合,数据处理,数据可视化等等。可以说数据挖掘整体的流程中包含了机器学习机器学习的很多算法就是应用在数据处理这个步骤的,但是数据仓库,清洗整合和数据可视化就包括了许多其他的技术和理论,比如数据库,3D建模,甚至virtual reality的知识,从这个角度来说,数据挖掘涉及的知识面又比机器学习广了许多。直观角度看,数据挖掘更工程一点。模式分类,虽然也包含了一定的无监督学习,但是本身是一个偏向分类的过程。而数据挖掘在数据处理的步骤中包含了很多无监督学习,以及许多模式提取的知识。

DM更注重efficiency,指知识发现的整个过程(爬取、存储、预处理、分析、可视化);ML更注重effectiveness,关注数据分析中的一些有实质性的启发式算法(substantive heuristics),可能这些算法并没有普适性;Statistics更注重数学角度的validity。推荐你看两篇经典文章:

 

数据可视化

北京大学袁晓如教授,最知名的成果是基于平行坐标的改进,他在可视化顶级会议InfoVis和Vis上有多篇文章,还有一篇文章好像是获得了best application paper。有幸去过他实验室两次参观,受益匪浅。

另外,浙江大学的陈为、MSRA的刘世霞、深圳先进研究院的陈宝权、香港一个大学的屈华明。应该都是在做可视化国内比较出名的研究人员。每人都有多篇SIGGRAPH或者InfoVis的paper 。 
数据:数据采集 →数据存储→数据处理→数据分析→数据挖掘
可视化:图表(表格、柱状图、折线图、饼图、散点图、甘特图、K线图、雷达图、地图等)

     动画(交互动画、Timeline等)

可视化工具或库:Tableau、Excel等,D3.js、Raphael、http://plot.ly、ECharts、HighCharts等

可视化三阶段:Chart -> Dashboard -> Story
工程师:
编程技能 (python、R等)
数学知识 (统计学等)
领域知识 (行业术语、各项指标含义、计算方式)
数据嗅觉 (略)

艺术 (+暴击)

(hadoop/hdfs/mapreduce) ( /hive/spark)

数据可视化: R、python的plot的package要用熟。 或者tableau一类的商业软件。
ETL:数据库的那一块,更像data engineer的职位
Data mining/ML: 现在的一些ML的算法

数据可视是分类型的
如果是infographics,则更应该倾向于让人们对事物理解的更好,许多人对统计专业知识并不了解,infographics大部分都会用到PS,以求让大众了解自己在表达的意思。
另一种是将结果展现的更漂亮,这点用基本的统计软件即可。
个人建议还是看用户是怎样,如果是一般人群,还是后者较为良好,但是也更费时间。如果是对统计用较强理解的用户,还是专注于良好的分析,图表只是锦上添花。
研究数据,就是数据分析吧,数据分析理论上是在数据挖掘中的,数据可视化是展示数据挖掘的成果(也就是知识)。这就是说,分析后才能有效地进行可视化,可视化展现给用户的,是分析结果。这个结果帮助用户做决策,在商业应用中可视化几乎都是为了做决策。
那些漂亮图表,是另外一个概念吧,信息图 (infographics),而非可视化(visualization)。
低端用户没有能力去分析与解决数据的能力,再漂亮的图表和曲线都是空谈,
这时应该告诉用户应该去做什么样的决策即可,保留数据可视化入口待用户去验证。
对于中高端中户,简单的数据无法满足他们的需求,这时的数据可视化应该设计成互动型,让用户有机会去发掘出更有价值的信息。
感觉数据可视化本身而言没有太多的深度的东西可以挖,不论是技术还是业务。
重要的还是数据分析,以及业务对数据的需求,从这两个角度下手,可视化才有价值可言
所以可视化的价值不在于本身,专门做可视化现在看来是没价值的

转载地址:http://miaii.baihongyu.com/

你可能感兴趣的文章
c++输出文件流ofstream用法详解
查看>>
字符编码:ASCII,Unicode 和 UTF-8
查看>>
c++ 发邮件(含附件)
查看>>
Window设置Wifi热点的脚本
查看>>
telnet实现简单的邮件发送
查看>>
dos编程详解
查看>>
程序员的职业规划
查看>>
c++ 实现python的split,strip函数
查看>>
c++使用Eigen库计算矩阵特征值
查看>>
VS调试时查看动态数组的全部元素
查看>>
ls -l 每一列的含义
查看>>
安装广告拦截插件abp
查看>>
python处理打卡数据的excel表格
查看>>
Linux虚拟机与本地机共享文件夹
查看>>
[JS] 格式化时间长度(formatDuration)
查看>>
[JS] 变量提升
查看>>
[JS] 检查一个对象是否可迭代
查看>>
Java访问类中的私有成员(private member)
查看>>
输出一个集合所有子集的元素和(Print sums of all subsets of a given set)
查看>>
Java中的迭代器(Iterators in Java)
查看>>