delphi excel 隐藏数据表 从零开始,如何学习数据挖掘?

[更新]
·
·
分类:互联网
2819 阅读

delphi excel 隐藏数据表

从零开始,如何学习数据挖掘?

从零开始,如何学习数据挖掘?

数据挖掘:What?Why?How?
这个问题思考了很久,作为过来人谈一谈,建议先看下以前的一些回答。
什么是数据挖掘?
怎么培养数据分析的能力?
如何成为一名数据科学家?
磨刀不误砍柴工。在学习数据挖掘之前应该明白几点:
数据挖掘目前在中国的尚未流行开,犹如屠龙之技。
数据初期的准备通常占整个数据挖掘项目工作量的70%左右。
数据挖掘本身融合了统计学、数据库和机器学习等学科,并不是新的技术。
数据挖掘技术更适合业务人员学习(相比技术人员学习业务来的更高效)
数据挖掘适用于传统的BI(报表、OLAP等)无法支持的领域。
数据挖掘项目通常需要重复一些毫无技术含量的工作。
如果你阅读了以上内容觉得可以接受,那么继续往下看。
学习一门技术要和行业靠拢,没有行业背景的技术如空中楼阁。技术尤其是计算机领域的技术发展是宽泛且快速更替的(十年前做网页设计都能成立公司),一般人没有这个精力和时间全方位的掌握所有技术细节。但是技术在结合行业之后就能够独当一面了,一方面有利于抓住用户痛点和刚性需求,另一方面能够累计行业经验,使用互联网思维跨界让你更容易取得成功。不要在学习技术时想要面面俱到,这样会失去你的核心竞争力。
一、目前国内的数据挖掘人员工作领域大致可分为三类。
1)数据分析师:在拥有行业数据的电商、金融、电信、咨询等行业里做业务咨询,商务智能,出分析报告。
2)数据挖掘工程师:在多媒体、电商、搜索、社交等大数据相关行业里做机器学习算法实现和分析。3)科学研究方向:在高校、科研单位、企业研究院等高大上科研机构研究新算法效率改进及未来应用。
二、说说各工作领域需要掌握的技能。
(1).数据分析师
需要有深厚的数理统计基础,但是对程序开发能力不做要求。需要熟练使用主流的数据挖掘(或统计分析)工具如Business Analytics and Business Intelligence Software(SAS)、SPSS、EXCEL等。需要对与所在行业有关的一切核心数据有深入的理解,以及一定的数据敏感性培养。经典图书推荐:《概率论与数理统计》、《统计学》推荐David Freedman版、《业务建模与数据挖掘》、《数据挖掘导论》、《SAS编程与数据挖掘商业案例》、《Clementine数据挖掘方法及应用 》、《Excel 2007 VBA参考大全》、《IBM SPSS Statistics 19 Statistical Procedures Companion》等。
(2).数据挖掘工程师
需要理解主流机器学习算法的原理和应用。需要熟悉至少一门编程语言如(Python、C、C 、Java、Delphi等)。需要理解数据库原理,能够熟练操作至少一种数据库(Mysql、SQL、DB2、Oracle等),能够明白MapReduce的原理操作以及熟练使用Hadoop系列工具更好。经典图书推荐:《数据挖掘概念与技术》、《机器学习实战》、《人工智能及其应用》、《数据库系统概论》、《算法导论》、《Web数据挖掘》、《 Python标准库》、《thinking in Java》、《Thinking in C 》、《数据结构》等。
(3).科学研究方向
需要深入学习数据挖掘的理论基础,包括关联规则挖掘 (Apriori和FPTree)、分类算法(C4.5、KNN、Logistic Regression、SVM等) 、聚类算法 (Kmeans、Spectral Clustering)。目标可以先吃透数据挖掘10大算法各自的使用情况和优缺点。
相对SAS、SPSS来说R语言更适合科研人员The R Project for Statistical Computing,因为R软件是完全免费的,而且开放的社区环境提供多种附加工具包支持,更适合进行统计计算分析研究。虽然目前在国内流行度不高,但是强烈推荐。可以尝试改进一些主流算法使其更加快速高效,例如实现Hadoop平台下的SVM云算法调用平台--web 工程调用hadoop集群。
需要广而深的阅读世界著名会议论文跟踪热点技术。如KDD,ICML,IJCAI,Association for the Advancement of Artificial Intelligence,ICDM 等等;还有数据挖掘相关领域期刊:ACM Transactions on Knowledge Discovery from Data,IEEE Transactions on Knowledge and Data Engineering,Journal of Machine Learning Research Homepage,IEEE Xplore: Pattern Analysis and Machine Intelligence, IEEE Transactions on等。
可以尝试参加数据挖掘比赛培养全方面解决实际问题的能力。如Sig KDD ,Kaggle: Go from Big Data to Big Analytics等。
可以尝试为一些开源项目贡献自己的代码,比如Apache Mahout: Scalable machine learning and data mining ,myrrix等(具体可以在SourceForge或GitHub.上发现更多好玩的项目)。
经典图书推荐:《机器学习》 《模式分类》《统计学习理论的本质》《统计学习方法》《数据挖掘实用机器学习技术》《R语言实践》,英文素质是科研人才必备的《Machine Learning: A Probabilistic Perspective》《Scaling up Machine Learning : Parallel and Distributed Approaches》《Data Mining Using SAS Enterprise Miner : A Case Study Approach》《Python for Data Analysis》等。
三、以下是通信行业数据挖掘工程师的工作感受。
真正从数据挖掘项目实践的角度讲,沟通能力对挖掘的兴趣爱好是最重要的,有了爱好才可以愿意钻研,有了不错的沟通能力,才可以正确理解业务问题,才能正确把业务问题转化成挖掘问题,才可以在相关不同专业人才之间清楚表达你的意图和想法,取得他们的理解和支持。所以我认为沟通能力和兴趣爱好是个人的数据挖掘的核心竞争力,是很难学到的;而其他的相关专业知识谁都可以学,算不上个人发展的核心竞争力。
说到这里可能很多数据仓库专家、程序员、统计师等等都要扔砖头了,对不起,我没有别的意思,你们的专业对于数据挖掘都很重要,大家本来就是一个整体的,但是作为单独一个个体的人来说,精力有限,时间有限,不可能这些领域都能掌握,在这种情况下,选择最重要的核心,我想应该是数据挖掘技能和相关业务能力吧(从另外的一个极端的例子,我们可以看, 比如一个迷你型的挖掘项目,一个懂得市场营销和数据挖掘技能的人应该可以胜任。这其中他虽然不懂数据仓库,但是简单的Excel就足以胜任高打6万个样本的数据处理;他虽然不懂专业的展示展现技能,但是只要他自己看的懂就行了,这就无需什么展示展现;前面说过,统计技能是应该掌握的,这对一个人的迷你项目很重要;他虽然不懂编程,但是专业挖掘工具和挖掘技能足够让他操练的;这样在迷你项目中,一个懂得挖掘技能和市场营销业务能力的人就可以圆满完成了,甚至在一个数据源中根据业务需求可以无穷无尽的挖掘不同的项目思路,试问就是这个迷你项目,单纯的一个数据仓库专家、单纯的一个程序员、单纯的一个展示展现技师、甚至单纯的一个挖掘技术专家,都是无法胜任的)。这从另一个方面也说明了为什么沟通能力的重要,这些个完全不同的专业领域,想要有效有机地整合在一起进行数据挖掘项目实践,你说没有好的沟通能力行吗?
数据挖掘能力只能在项目实践的熔炉中提升、升华,所以跟着项目学挖掘是最有效的捷径。国外学习挖掘的人都是一开始跟着老板做项目,刚开始不懂不要紧,越不懂越知道应该学什么,才能学得越快越有效果。我不知道国内的数据挖掘学生是怎样学的,但是从网上的一些论坛看,很多都是纸上谈兵,这样很浪费时间,很没有效率。
另外现在国内关于数据挖掘的概念都很混乱,很多BI只是局限在报表的展示和简单的统计分析,却也号称是数据挖掘;另一方面,国内真正规模化实施数据挖掘的行业是屈指可数(银行、保险公司、移动通讯),其他行业的应用就只能算是小规模的,比如很多大学都有些相关的挖掘课题、挖掘项目,但都比较分散,而且都是处于摸索阶段,但是我相信数据挖掘在中国一定是好的前景,因为这是历史发展的必然。
讲到移动方面的实践案例,如果你是来自移动的话,你一定知道国内有家叫华院分析的公司(申明,我跟这家公司没有任何关系,我只是站在数据挖掘者的角度分析过中国大多数的号称数据挖掘服务公司,觉得华院还不错,比很多徒有虚名的大公司来得更实际),他们的业务现在已经覆盖了绝大多数中国省级移动公司的分析挖掘项目,你上网搜索一下应该可以找到一些详细的资料吧。我对华院分析印象最深的一点就是2002年这个公司白手起家,自己不懂不要紧,一边自学一边开始拓展客户,到现在在中国的移动通讯市场全面开花,的确佩服佩服呀。他们最开始都是用EXCEL处理数据,用肉眼比较选择比较不同的模型,你可以想象这其中的艰难吧。
至于移动通讯的具体的数据挖掘的应用,那太多了,比如不同话费套餐的制订、客户流失模型、不同服务交叉销售模型、不同客户对优惠的弹性分析、客户群体细分模型、不同客户生命周期模型、渠道选择模型、恶意欺诈预警模型,太多了,记住,从客户的需求出发,从实践中的问题出发,移动中可以发现太多的挖掘项目。最后告诉你一个秘密,当你数据挖掘能力提升到一定程度时,你会发现无论什么行业,其实数据挖掘的应用有大部分是重合的相似的,这样你会觉得更轻松。
四、成为一名数据科学家需要掌握的技能图。(原文:Data Science: How do I become a data scientist?)
人一能之,己十之;人十能之,己千之。果能此道矣,虽愚,必明;虽柔,必强。
与君共勉。
以上,祝各位挖掘到自己的快乐和金矿:)

我想做一个自己用的web app都需要学会哪些操作?


撇开各种不同的Web技术不谈,弄清楚Web Apps定义最困难的是如何从各种纷繁复杂的Web App中提取出他们的共同特征。当用户登录一个网站(如Pixlr),大家很容易理解这是在访问一个Web App。但是对那些仅仅提供基础服务(如电话查询或是信息查询)的网站,区分用户是否在访问Web App就变得相当困难了。
其实这些服务大多都是Web App。我常常这样问自己这个程序是否完成了某个任务?。即便它只完成了某个非常小的任务,那么它也是一个Web App。Google的搜索引擎就是一个Web App,它本质上和电话查询服务没有什么区别。
这样说来,也并非所有的网站都是Web App。如果这个网站并没有执行任何任务,那么它就并不是Web App。
界面
元素变化
力求简洁明了是用户界面设计的重要原则。在同一时间给用户展示的功能越多,用户需要寻找和思考的时间也就越多。同样,界面中存在的选项越少,可用功能就越明显、越容易浏览。不过简化界面并非轻而易举,尤其是你不想减少应用程序功能的情况下。
将高级功能隐藏起来是一种有效的简化方法。搞清楚在界面中用户最经常用的是哪些功能,然后把其他功能隐藏处理。这些可由下拉式菜单和控件完成。例如,搜索栏中的高级过滤器可以做成尾部的特殊下拉菜单样式。当用户需要这些过滤器的时候只需要几次点击就可以使用。决定哪些功能保留展示哪些需要隐藏起来,并不是一个简单的工作,需要取决于功能控件的重要程度和被使用的频繁程度。
增加阴影
弹出式菜单和窗口周边的阴影不仅仅是为了视觉美观。阴影一方面增大了菜单或窗口的尺寸,有助于将菜单或窗口从背景中区别开来另一方面通过灰度化的边缘阴影可以屏蔽背景内容的噪音干扰。
这个技巧根植于传统桌面程序,帮助用户将注意力集中在弹出的窗口。由于很多模态窗口不容易从桌面程序内容页面中凸显出来,阴影可以使它们看起来具有立体效果、仿佛悬浮于其他内容之上,于是拉近了模态窗口与用户的距离。
为实现这样的效果,设计师往往将透明的PNG背景图片作为容器,再把内容填充到容器中,同时等距离填充弹出框各边缘。或者使用具有透明边框的背景图片,并将内容框绝对定位在其中。另外,也可以使用基于JavaScript的lightboxes命令或者CSS3中的drop shadows命令,但需要注意浏览器是否支持。
提醒用户
当设计web app的时候,不仅需要关心一般情况下的信息展示,还要确保界面在空白状态时表现良好、具有指引作用。页面中还没有产生任何信息的时候,可以在空白区域放置一条帮助信息告诉用户如何开始。
例如,一个项目管理的应用程序主页会列出用户的项目,假如还没有什么项目信息,可以为用户提供一个项目创建页面的链接。即使这个页面上已经存在了这样一个功能按钮,一个额外的帮助并不会有什么妨碍。这个技巧可以有效地鼓励用户试用该服务,并在注册后立即进行使用。通过应用程序的单一操作步骤可以帮助用户理解这个应用的优势以及对他们是否有用。
此外,只为用户展示最重要的功能选项也很关键。一股脑的将众多功能倾泻给用户并没有什么实际意义。需要牢记的是,用户通常想从应用中获得或多或少的信息,但却不想跳进细节中,用户没有时间也没有兴趣。在空白状态中激励用户,可以显著地降低用户的流失率,并帮助潜在的用户更好的理解程序系统是如何工作的。
Button
许多web app拥有自定义样式的按钮。默认的输入按钮可能不适合某些情景,文字链接有时候看起来又太含蓄。需要注意的是,把链接做成Button样式的时候,它们就应该有button的表现形式。
比如,在点击button的时候它们应该会出现被压过的样子。这不仅仅是纯粹的视觉变化。及时反馈给用户,可以使web app感觉起来更灵敏,与桌面应用程序的用户体验更接近。可以使用CSS添加按钮的pressed等状态,实现处于不同状态下显示不同背景图片的功能。
情境导航
在既定的情境下考虑用户希望看什么、需要什么是非常重要的。不需要在每一个地方都放置相同的导航控件,因为用户不是在任何情况下都需要它们。
上下文情境导航最好的一个例子就是Office 2007中,原先默认的工具栏集合被换成了带状控件形式。每一项tab控制着一组相关联的功能,如编辑图形、校对或者简单书写。Web app可以从这种上下文情境导航中获益,仅展示用户需要的、而不是所有可用的功能,从而保持用户界面的整洁清爽。
关键功能
并不是所有的控件都拥有相同的重要性。例如创建一个新的条目,页面中会有创建取消两个button. 这里的创建就要更加重要些,因为这是大多数情况下用户即将要做的事情。极少的情况下用户才会去点击取消。虽然这两个控件并排放置,但是不要给予相同的重视程度。
为了将注意力引导到创建上,我们可以尝试使用不用的风格或样式。一种方式是将创建设计成button样式,取消设计成文字链接样式。另一种方式是在视觉上使用使用不同的颜色,并使button略有凸起的效果。这样便于抓住用户的目光。
优点
第一、使用W3C标准的HTML(标准通用标记语言下的一个应用)语言开发,能够轻松实现跨平台,移动应用开发者不再需要考虑复杂的底层适配和跨平台开发语言的问题。与此同时,使用HTML来开发的Web App在投入上会大大的低于传统的Native App。
第二、基于当下开始普及流行的HTML5,Web App可以实现很多原本Native App才可以实现的功能,比如LBS的功能、本地数据存储、音视频播放的功能,甚至还有调用照相机和结合GPU的硬件加速功能。
第三、移动应用的迭代周期平均不到1个月,用户需要频繁的重新下载与升级。而Web App则无需用户下载,并且和传统网站一样可以动态升级。
第四、Web App有App的特性,更有Web的特性。每一个Native App在当前的用户使用场景下是相对孤立的,而Web App则可以像传统互联网网页那样相互链接,从一个Web App直接跳转到另外一个Web App。这无论是从用户的使用体验层面还是从应用之间的数据传输来看都是非常不错的选择。
制作
常用工具
ASP,PHP,HTML,JAVA等。使用这些常见的网络开发工具,可以制作绝大部分的webapp程序,使其在网站页面上实现传统的C/S架构软件的功能,也就是我们常说的SaaS模式。
其他工具
CBX,AthTekWebAPPKit等。CBX和AthTek WebAPP Kit都是国产软件,它们的主要功能就是以将使用传统编程语言如C,C ,Delphi等开发的C/S架构客户端软件工程,以所见即所得的方式,快速部署到网络服务器上,让传统的编程语言也能够实现基于web的互联网应用程序开发。
一键生成webapp工具
百度SiteApp是致力于为开发者、站长提供从生成WebApp到流量、用户引入再到变现的综合服务平台,亦是国内首家的WebApp在线生成服务平台。