java数据挖掘算法
主要是方便,python的第三方模块很丰富,而且语法非常简练,自由度很高,python的numpy、scipy、matplotlib模块可以完成所有的spss的功能,而且可以根据自己的需要按照定制的方法对数据进行清洗、归约,需要的情况下还可以跟sql进行连接,做机器学习,很多时候数据是从互联网上用网络爬虫收集的,python有urllib模块,可以很简单的完成这个工作,有些时候爬虫收集数据还要对付某些网站的验证码,python有PIL模块,可以方便的进行识别,如果需要做神经网络、遗传算法,scipy也可以完成这个工作,还有决策树就用if-then这样的代码,做聚类不能局限于某几种聚类,可能要根据实际情况进行调整,k-means聚类、DBSCAN聚类,有时候可能还要综合两种聚类方法对大规模数据进行聚类分析,这些都需要自行编码来完成,此外,基于距离的分类方法,有很多距离表达方式可以选用,比如欧几里得距离、余弦距离、闵可夫斯基距离、城市块距离,虽然并不复杂, 但是用python编程实现很方便,基于内容的分类方法,python有强大的nltk自然语言处理模块,对语言词组进行切分、收集、分类、统计等。
综上,就是非常非常方便,只要你对python足够了解,你发现你可以仅仅使用这一个工具快速实现你的所有想法
② Java大数据就业方向有哪些
可以从事大数据开发工程师,大数据分析等岗位,一般来说可以分成开发和分析两个大方向。
③ java转行大数据要学习哪些技术
对于Java程序员,大数据的主流平台hadoop是基于Java开发的,所以Java程序员往大数据开发方向转行从语言环境上更为顺畅,另外很多基于大数据的应用框架也是Java的,所以在很多大数据项目里掌握Java语言是有一定优势的。
当然,hadoop核心价值在于提供了分布式文件系统和分布式计算引擎,对于大部分公司而言,并不需要对这个引擎进行修改。这时候除了熟悉编程,你通常还需要学习数据处理和数据挖掘的一些知识。尤其是往数据挖掘工程师方向发展,则你需要掌握更多的算法相关的知识。
对于数据挖掘工程师而言,虽然也需要掌握编程工具,但大部分情况下是把hadoop当做平台和工具,借助这个平台和工具提供的接口使用各种脚本语言进行数据处理和数据挖掘。因此,如果你是往数据挖掘工程方向发展,那么,熟练掌握分布式编程语言如scala、spark-mllib等可能更为重要。
Java程序员转大数据工程师的学习路线图:
第一步:分布式计算框架
掌握hadoop和spark分布式计算框架,了解文件系统、消息队列和Nosql数据库,学习相关组件如hadoop、MR、spark、hive、hbase、redies、kafka等;
第二步:算法和工具
学习了解各种数据挖掘算法,如分类、聚类、关联规则、回归、决策树、神经网络等,熟练掌握一门数据挖掘编程工具:Python或者Scala。目前主流平台和框架已经提供了算法库,如hadoop上的Mahout和spark上的Mllib,你也可以从学习这些接口和脚本语言开始学习这些算法。
第三步:数学
补充数学知识:高数、概率论和线代
第四步:项目实践
1)开源项目:tensorflow:Google的开源库,已经有40000多个star,非常惊人,支持移动设备;
2)参加数据竞赛
3)通过企业实习获取项目经验
如果你仅仅是做大数据开发和运维,则可以跳过第二步和第三步,如果你是侧重于应用已有算法进行数据挖掘,那么第三步也可以先跳过。
④ 给师弟师妹们学习数据挖掘的一些建议
给师弟师妹们学习数据挖掘的一些建议
看着刚进实验室的师弟师妹们的迷茫,虽然也与他们进行过一些零散的交谈,但是都不够系统。因此,根据自己的经历给出学习数据挖掘的一些建议,大家可以根据自身的情况,具体问题具体分析,作为参考。希望在上一届的基础上,走的更深,走的更远。
一. 读研与数据挖掘基础
首先介绍一下大家都比较关心的几个问题,包括我们组的研究方向是什么,论文相关问题,大数据与工作相关问题,上海户口问题几个方面。
1. 我们组的研究方向是什么
我们组大的研究方向是数据挖掘,论文的研究方向是推荐算法。要注意大的研究方向,论文的研究方向与工作方向的区别和联系。
2. 论文相关问题
读研究生免不了会思考一个问题,读研的意义是什么?我自己认为读研的最大意义是训练自己系统化的严谨的分析思维能力。在导师给定论文研究方向后,如何确立更细的研究方向,如何检索资料,如何阅读英文论文,如何提出自己的创新点,如何做实验,如何写论文,如何修改论文,如何投稿,如何退修,如果是国际会议,还要去做英文口头报告,与同行交流等,这些问题都是需要自己去思考的。
3. 大数据与工作相关问题
数据挖掘属于大数据专业吗?当然属于。现在大数据找工作相对还是比较理想的。关键是要学习哪些课程呢?以前给大家推荐了很多的书籍,但是效果却恰恰相反,因为实在太多了根本看不完,更不知阅读书籍的顺序,浅尝辄止,最后一本书也没有看完,研究生就结束了。
(1)最低保障书籍
无论将来做什么,熟练掌握一门编程语言,一个数据库,数据结构,算法都是必备的。
《高性能MySQL》
《数据结构与算法分析:Java语言描述》
《算法》:http://book.douban.com/subject/19952400/
(2)Python与机器学习
《集体智慧编程》
《社交网站的数据挖掘与分析》
《数据挖掘:概念与技术》
Python官方文档:https://www.python.org/
Scikit-Learn官方文档:http://scikit-learn.org/stable/
(3)Java相关书籍
《Java开发实战经典》
《Java Web开发实战经典》
《Java虚拟机规范》
Java SE:http://docs.oracle.com/javase/8/docs/api/
Java EE:http://docs.oracle.com/javaee/6/api/
(4)Hadoop与Spark书籍
《大数据日知录:架构与算法》
《Hadoop权威指南》
《大数据Spark企业级实战》
《Scala编程》
Hadoop官方网站:http://spark.apache.org/
Spark官方网站:http://spark.apache.org/
Scala官方网站:http://www.scala-lang.org/
说明:认准目标,耐住性子,一步一步往前走。要把上面推荐的书籍硬着头皮读完,数据挖掘基本也就算是入门了。
4. 上海户口问题
上海户口属于积分制,如果想要在校期间就拿到,那么唯一的方式就是参数每年的研究生数据建模比赛,并且获奖。获奖比例还是很高的。其实,好好学习Python,买本数学建模的书籍看完,看几篇近些年来的获奖论文,比赛时硬着头皮钻研一道题目并且写好论文,基本上都可以获奖。
二. 数据挖掘进阶
数据挖掘涉及多个方向,但是通常从数学统计,数据库和数据仓库,机器学习三个方向来进行研究。当我想学习一个方向的时候,最希望做的事情就是让别人给我列出一个书单。因为我也会给你们列出一个书单,让你们慢慢研究吧。
1. 数学统计
(1)理论数学:复变函数,实变函数,泛函分析,拓扑学,积分变换,微分流形,常微分方程,偏微分方程等。
(2)应用数学:离散数学(集合,逻辑,组合,代数,图论,数论),具体数学,张量分析,数值计算,矩阵论,逼近论,运筹学,凸优化,小波变换,时间序列分析等。
(3)概率:概率论,测度论,随机过程等。
(4)统计:统计学,多元统计,贝叶斯统计,统计模拟,非参数统计,参数统计等。
2. 数据库和数据仓库
《数据库系统概念》
《数据库系统实现》
《数据仓库》
《分布式系统:概念与设计》
3. 机器学习
通信原理;数据挖掘;机器学习;统计学习;自然语言处理;信息检索;模式识别;人工智能;图形图像;机器视觉;语音识别;机器人学等。(这方面的经典书籍都可以看看,后面慢慢补充)
4. 其它书籍
(1)Linux
(2)网络原理,编译原理,组成原理,
(3)JVM
(4)UML
(5)软件工程
(6)设计模式
(7)云计算与Docker
(8)并行计算
(9)需求分析
三. 学习与方法
作为一名软件工程师,需要熟练掌握的工具,如下所示:
(1)博客
除了学习之外,更要思考和总结,把还没有忘却的记忆缓存序列化成为文字,记录在博客中。
(2)语言
大数据常用的语言包括Java,Scala,Python。如果一定要选择精通一门语言,自己选择Scala,同时深度学习JVM。(3)开发工具
自己选择IntelliJ IDEA用于Java和Scala的开发,Eclipse用于Python的开发。
(4)GitHub
每天都要坚持编程,主动参与开源项目。
(5)Linux
工作常用的是Ubuntu 12.04 LTS。
由于时间原因,上面总结的还比较粗糙,算是第一个版本吧,后面还会继续深度总结和完善。