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。
由於時間原因,上面總結的還比較粗糙,算是第一個版本吧,後面還會繼續深度總結和完善。