数据挖掘 与 Web开发何去何从
(0)引子
以下以现实生活中的一个实例引出本博客的探究点。或许类似的情况正发生在你的身边。
小弟工作5年了,近期有点迷茫。
上一份工作在一家比較大的门户站点做web开发和移动互联网数据挖掘(人手比較紧。同一时候做)。后来跳槽到BAT之中的一个做数据挖掘。
数据量倒是很大。可是感觉没有多大意思——就是分析日志,弄报表而已。
之前已经的高性能web开发经验全然用不上。感觉自己还是喜欢做开发,能和业务相关的。
可是数据挖掘大。数据近期挺火的,也是比較纠结。
事实上。这也是非常多人的症结,包含我个人也是迷茫~~~在此,请求博友们献言献策!
不胜感激!
(1)大数据与数学的恩怨
一是公司原来没有一项业务。如今要把一些机器学习这个东西跑起来(从无到有)。二是在你接手的时候公司已经有一定基础了。如今要把性能调上去(从差到优)。前者全然不用不论什么数学,先用别人有的模块/代码把系统撸起来是王道。后者看详细问题。大多数情况不用数学。在偏研究的地方比方Google X的某些部门还是实用的,可能须要比較好的数学功底,一些deep learning(机器学习)的机构,如百度凤巢研究院或者微软亚洲研究院等。
可是,对于一般的数据分析、数据挖掘项目组,特别是对于某一分类器,大多数时候还是看feature找的好不好,找到一个优秀的feature赛过苦逼的在那里调优一万年(身在以KPI优先的公司和拿来就用的大环境,利用已有的开源Lib包)。学好线性代数。统计和凸优化就出门打怪吧。攒系统经验和dirty
trick才是王道。
当然我也不是说就不要搞数学。仅仅是假设你去公司的话,在学好线代统计凸优化的前提下,相同的时间花在学计算机系统的构建和系统性的思考方法上,比学习数学更划算。在大部分的ML研究里。还是微积分和线性代数、概率统计的功底最重要。
(2)大数据衍生的工作岗位
数据研发project师側重于研发,这块我了解的不多,我理解的是主要是数据仓库开发那块。
数据分析师側重分析,主要是结合业务方需求做些相关的数据分析工作。发现问题,找出问题。提出解决方式。
数据挖掘側重挖掘,主要用些数据挖掘算法或者机器学习算法做些分类和预測或者其他工作,比方说流失。违约。推荐等等。
数据产品经理偏重产品经理,主要是负责数据产品的相关pd工作。
数据产品就是基于数据分析或者挖掘研发出来的产品。
假设硬要分析的话,数据研发project师要求有一定的开发功底。工作偏向于数据系统的开发。
数据分析师更像传统的BI。而数据挖掘project师更是以特定需求为目标的数据挖掘工作,比方做人群的偏好挖掘。数据产品经理应该就是产品方向了,以数据业务/产品为目标的产品经理。
说到最后,事实上除产品经理岗位的另3个岗位,工作职责还是非常相似的,主要工作内容以部门要求为准。
引用百科的说法是。数据研发project师:搭建基础设施,让大数据的存储、处理、计算能在要求的时间内,以合理的成本完毕。数据分析师:发现问题,分析问题,得出结论。为决策作支持。数据挖掘project师:通过建立模型。预測、区分感兴趣的对象。
以下通过几张图说明:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
(3)DM 与 ML
1. DM更应用化。ML更偏研究与算法(所以公司一般有数据挖掘project师,机器学习研究员)
2. ML的问题常常是明白定义的。包含数据集及目标(且数据集是固定的);DM通常仅仅定义目标,甚至连目标也没有(给你一堆数据,给我找出有价值、有意思的东西出来);
在定义了目标的情况下,DM能够使用非固定的数据源
3. ML仅仅是DM使用的方法的一种。DM还能够使用其它的方法(比方统计,比方直接看数据)
4. 作为一门交叉学科。ML是DM的一门重要基础,可是DM还有其它的基础学科。最重要的是统计与数据库
5. DM的重点是数据。
所以做DM的人可能花80%的时间在用各种方式倒腾数据上。而仅仅花会20%的时间在算法上。而对ML可能相反,80%的时间都在读Paper,试验算法上。20%的时间用在处理数据上
(4)数据挖掘 之 文本挖掘
数据挖掘(Data mining),又译为资料探勘、数据採矿。它是数据库知识发现(英语:Knowledge-Discovery in Databases。简称:KDD)中的一个步骤。数据挖掘通常是指从大量的数据中通过算法搜索隐藏于当中信息的过程。
数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。
文本挖掘有时也被称为文字探勘、文本数据挖掘等。大致相当于文字分析,一般指文本处理过程中产生高质量的信息。高质量的信息通常通过分类和预測来产生。如模式识别。
文本挖掘通常涉及输入文本的处理过程(通常进行分析,同一时候加上一些衍生语言特征以及消除杂音,随后插入到数据库中) ,产生结构化数据,并终于评价和解释输出。'高品质'的文本挖掘一般是指某种组合的相关性,新颖性和趣味性。
典型的文本挖掘方法包含文本分类。文本聚类,概念/实体挖掘,生产精确分类,观点分析,文档摘要和实体关系模型(即。学习已命名实体之间的关系)
。
借用高斯的一句话并进行改写送给全部做数据挖掘、文本挖掘的人。
“对数据挖掘、文本挖掘的无知不是没有相关知识,而是过于依赖数据挖掘、和文本挖掘而忽视其它”。
文本数据挖掘(Text Mining)是指从文本数据中抽取有价值的信息和知识的计算机处理技术。顾名思义,文本数据挖掘是从文本中进行数据挖掘(Data Mining)。从这个意义上讲,文本数据挖掘是数据挖掘的一个分支。
文本挖掘方法:1.文本分类,是一种典型的机器学习方法,一般分为训练和分类两个阶段。
2.文本聚类,是一种典型的无监督式机器学习方法,聚类方法的选择取决于数据类型。3.信息抽取。
4.摘要。
5.压缩。
当中,文本分类和聚类是两种最重要最主要的挖掘功能。
挖掘工具:1.IBM DB2 intelligent Miner。2.SAS text miner。3.SPSS Text Mining。4.DMC TextFilter(纯文本抽出通用程序库)
应用:文本挖掘传统商业方面的应用主要有,企业竞争情报、CRM、电子商务站点、搜索引擎,如今已扩展到医疗、保险和咨询行业。
(5)人工智能、机器学习、统计学和数据挖掘的前世今生
我假定题主是想得到一个清晰的图,上面有各个领域清晰的分界线。
因此。在这里我尝试用我最简单的方式来解释这个问题。
机器学习是一门涉及自学习算法发展的科学。这类算法本质上是通用的。能够应用到众多相关问题的领域。
数据挖掘是一类有用的应用算法(大多是机器学习算法)。利用各个领域产出的数据来解决各个领域相关的问题。
统计学是一门研究如何收集。组织。分析和解释数据中的数字化信息的科学。统计学能够分为两大类:描写叙述统计学和判断统计学。
描写叙述统计学涉及组织,累加和描绘数据中的信息。
判断统计学涉及使用抽样数据来判断整体。
机器学习利用统计学(大多是判断统计学)来开发自学习算法。
数据挖掘则是在从算法得到的结果上应用统计学(大多是描写叙述统计学),来解决这个问题。
数据挖掘作为一门学科兴起,旨在各种各样的行业中(尤其是商业)求解问题,求解过程须要用到不同研究领域的不同技术和实践。
1960年求解问题的从业者使用术语Data fishing来称呼他们所做的工作。
1989年Gregory Piatetsky Shapiro使用术语knowledge Discovery in the Database(KDD,数据集上的知识发掘)。1990年一家公司在商标上使用术语数据挖掘来描写叙述他们的工作。现现在现现在数据挖掘和KDD两词能够交换使用。
人工智能这门科学的目的在于开发一个模拟人类能在某种环境下做出反应和行为的系统或软件。
因为这个领域极其广泛,人工智能将其目标定义为多个子目标。然后每一个子目标就都发展成了一个独立的研究分支。
这里是一张人工智能所要完毕的主要目标列表(亦称为AI问题)
1、Reasoning(推理)
2、Knowledge representation(知识表示)
3、Automated planning and scheduling(自己主动规划)
4、Machine learning(机器学习)
5、Natural language processing(自然语言处理)
6、Computer vision(计算机视觉)
7、Robotics(机器人学)
8、General intelligence or strong AI(通用智能或强人工智能)
正如列表中提到的,机器学习这一研究领域是由AI的一个子目标发展而来。用来帮助机器和软件进行自我学习来解决遇到的问题。
自然语言处理是还有一个由AI的一个子目标发展而来的研究领域。用来帮助机器与真人进行沟通交流。
计算机视觉是由AI的目标而兴起的一个领域,用来辨认和识别机器所能看到的物体。
机器人学也是脱胎于AI的目标,用来给一个机器赋予实际的形态以完毕实际的动作。
它们之间有层次等级的区分吗。应该是如何一回事?
解释这些科学和研究层次关系的一个方法是分析其历史。
科学和研究的起源
统计学——1749年
人工智能——1940年
机器学习——1946年
数据挖掘——1980年
统计学的历史公认起源于1749年左右。用来表征信息。研究人员使用统计学来表征国家的经济水平以及表征用于军事用途的物质资源。
随后统计学的用途扩充到数据的分析及其组织。
人工智能的历史碰巧存在两种类型:经典的和现代的。经典人工智能可在古时的故事和著作中看得到。然而,1940年当人们在描写叙述用机器模仿人类的思想时才出现了现代人工智能。
1946年,作为AI的分支。机器学习的起源出现了,它的目标在于使机器不通过编程和明白的硬接线进行自我学习来对目标求解。
能否够这样说,它们是利用不同方法解决相似问题的四个领域?
可以这么来说(统计学,人工智能和机器学习)是高度相互依赖的领域,没有其它领域的引领和帮助,他们不可以单独存在。
非常高兴能看到这三个领域是一个全局领域而非三个有所隔阂的领域。
正如这三个领域是一个全局领域。它们在解决共同目标时发挥了自己的优势。因此,该方案适用于很多不同领域中。由于隐含的核心问题是一致的。
接下来是该数据挖掘出场了,它从全局获取解决方式并应用到不同的领域(商业、军事、医学、太空)来解决同一隐含本质的问题。
这也是数据挖掘扩大其受欢迎程度的时期。
我希望我的解释已经回答了答主所提问一切疑问。我相信这能清晰地帮助不论什么一个想要理解这四个领域关键点的人们。假设你对该话题有不论什么想要说的或者要分享的。请在评论里写下你的想法。
(6)总结
文件夹---相关文章
数据挖掘 与 Web开发何去何从的更多相关文章
- 我两年的web开发生涯
我两年的web开发生涯 与以前的文章分享给大家自己的知识和观点不同,这篇文章更多的是写给自己的总结. 现在是 2017年10月18. 从 2015年9月 开始接触前端开发,至今两年零一个月. 从 20 ...
- 2016年后web开发趋势是什么?
2016 年后 Web开发趋势是什么 来源:yafeilee.me 发布时间:2016-05-06 阅读次数:1378 3 近二年的进展 前端发展日新月异, 甚至有一句戏言: "每六星期 ...
- 2020 python web开发就业要求锦集
郑州 Python程序员 河南三融云合信息技术有限公司 6-8k·12薪 7个工作日内反馈 郑州 1个月前 本科及以上2年以上语言不限年龄不限 微信扫码分享 收藏 Python程序员 河南三融云合信息 ...
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑 ...
- Go web开发初探
2017年的第一篇博客,也是第一次写博客,写的不好,请各位见谅. 本人之前一直学习java.java web,最近开始学习Go语言,所以也想了解一下Go语言中web的开发方式以及运行机制. 在< ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- .NET Web开发技术简单整理
在最初学习一些编程语言.一些编程技术的时候,做的更多的是如何使用该技术,如何更好的使用该技术解决问题,而没有去关注它的相关性.关注它的理论支持,这种学习技术的方式是短平快.其实工作中有时候也是这样,公 ...
- web 开发自动化grunt
现在web开发自动化已很流行,如何进行压缩文件,如何进行测试js是否正确,如何进行 检测html文件是否规范等等都可以通过web自动化技术进行实现,只要打一个命令即可. 本文主要是通过grunt进行实 ...
- eclipse SE增加Web开发插件
最近接触了些java项目,之前安装了eclipse SE版本.没有Web开发插件,调试不了Web代码.点击“Window”--“Preference” 左边菜单栏是找不到“Server”项来配置服务器 ...
随机推荐
- ruby操作mysql
require "win32ole" require 'pathname' require 'mysql2' excel = WIN32OLE.new('excel.applica ...
- 简单使用EL进行标签的替换
package com.ceshi; public class HtmlShow { public static String transfer(String txt,String cssClass) ...
- java异常处理及400,404,500错误处理
java代码中经常碰到各种需要处理异常的时候,比如什么IOException SQLException NullPointException等等,在开发web项目中,遇到异常,我现在做的就 ...
- maven打包加入依赖包以及加入本地依赖包的方法
Maven引入本地Jar包并打包进War包中 1.概述 在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来. 2. 拷贝至项目根目录 项目 ...
- Linux用户空间与内核空间(理解高端内存)【转】
转自:http://www.cnblogs.com/wuchanming/p/4360277.html Linux 操作系统和驱动程序运行在内核空间,应用程序运行在用户空间,两者不能简单地使用指针传递 ...
- LeetCode OJ--Median of Two Sorted Arrays ***
http://oj.leetcode.com/problems/median-of-two-sorted-arrays/ 找两个有序数组的中位数,因为有序数组,并且复杂度要求O(lg(m+n))所以想 ...
- 神秘的FrontCache
用jmap -histo的时候,发现堆内存中有很多奇怪的对象,其class name为 java.util.HashMap$FrontCache 跳转到HashMap的源码中,直接搜索FrontCac ...
- SPOJ LIS2 - Another Longest Increasing Subsequence Problem(CDQ分治优化DP)
题目链接 LIS2 经典的三维偏序问题. 考虑$cdq$分治. 不过这题的顺序应该是 $cdq(l, mid)$ $solve(l, r)$ $cdq(mid+1, r)$ 因为有个$DP$. #i ...
- eclipse启动的时候 一直未响应状态 然后闪退
解决方案:在你的工作目录中,有一个.metadata目录,里面是工作区及各插件的信息,删除此目录可以解决问题.保险起见,先剪切到另一地方.再重启启动.
- 详解JavaScript变量提升
变量在程序中随处可见.它们是一些始终在相互影响,相互作用的的数据和逻辑.正是这些互动使应用程序活了起来. 在JavaScript中使用变量很重要的一方面就是变量的提升 —— 它决定了一个变量何时可以被 ...