和 Python 相比,Matlab 能否成為深入學習數據挖掘的工具?

對matlab比較熟悉,用起來比較得心應手,感覺謝菲爾德遺傳演算法工具箱和神經網路工具箱都非常好用,而且編程簡單,調試程序也很容易,python只學過一些基礎,想要熟練到matlab那個程度還需要一段時間,可能是被matlab慣壞了,總覺得python各種不舒服……問題來了,請問如果擺脫python只用matlab能不能深入學習數據挖掘知識呢,在將來會不會遇到瓶頸,具體可能會遇到哪些實際問題?順便求推薦matlab和python應用於數據挖掘方面的書單,謝謝


竟然被邀請回答這個……其實我對數據挖掘這方面搞得不多,但是既然和機器學習差不多我也拋磚引玉一下:

首先關於MATLAB和python的效率問題,我個人感覺其實不是問題。我至今沒有見過做矩陣運算比MATLAB快的,但是寫程序習慣不好多寫幾個for的話MATLAB也有可能變得很慢。之前有人說1.3G的csv導入MATLAB就掛了,這個估計只可能發生在用GUI直接點import的情況下。

其次,選擇哪種語言入手主要取決於包的多少,而不是很泛泛的「這個語言好不好」。就比如我之前做一些視覺上的東西,肯定就需要用Matlab,但是現在開始學一些deep learning的東西,那就轉用python。原因就是MATLAB對於圖像的介面很方便,而且有各種成熟的演算法可以用;而現在deep learning的主流框架的介面都是python。

最後,我覺得你該考慮的不是「學習數據挖掘應該用什麼語言」而是「我做這個project應該用什麼語言」。


請看下錶:

1.【搜狗招聘】商務搜索部-數據挖掘研發工程師

-熟悉linux平台、shell編程,熟悉python/perl腳本語言

2.【百度內推】百度音樂高級數據分析師

-具備Unix/Linux環境工作能力,能使用shell/python等腳本語言優先

3.【阿里】北京急招數據開發/數據挖掘專家

-精通JAVA或Python,有並發應用或者分散式應用軟體開發經驗優先

4.【陽光保險集團 社招】大數據分析

-熟練使用Java、C++、Python語言中的一種;

乾貨吧!

我的答案只代表此刻我的立場,與語言本身沒有關係。

如果硬要推薦一門「深入」的數據挖掘語言,

那麼,R語言似乎被稱為統計學家的語言,而數據挖掘很大一塊隸屬於統計學範疇。

僅供參考。


不是很清楚matlab和python應用於數據挖掘方面的有哪些書。

但我推薦下Harvard CS109這門課 http://cs109.github.io/2014/ 。裡面會介紹一套基於python的做機器學習的工具,非常好用!只要把裡面的作業都做下來,用python做ML不是問題。


咳咳....真的,還是用Python吧。

之前我最用熟練的語言就是Matlab,的確,用起來那叫一個爽啊。剛看到Python的時候也覺得跟Matlab一比簡直是渣嘛。

但是...

工業界不要......

進阿里實習,發現哪有用Matlab的,都是清一色的Python大法。

我說我用Matlab的,然後被赤果果的嘲諷了。

果斷換Python搞起,不舒服了一段時間,不過現在Python已經成了我的首選語言了。

數據挖掘這種東西吧,像很多知識表示啊,抓數據啊什麼的活,Matlab都很難整。

作為一門成熟的且有著豐富全面類庫的編程語言,Python確實更能勝任『深入』學習的要求。

我覺得Matlab最大的問題在於:作為一門語言,它的表現力不夠

Matlab沒有指針和引用是個大問題

此外雖然它也提供了可憐的面向對象特性....但真的是太難用了。

很多時候,一些稍微複雜點的數據結構,用Python實現非常容易,但用Matlab就神坑了。

總的來說大概是這麼個情況:

1. 工業界需求:Python 完爆 Matlab

2. 功能豐富程度:Python 完爆Matlab

3. 實用性:Python完爆Matlab

4. 費用:Python完爆Matlab

5. 開發敏捷性:Matlab略優

6. 可視化效果,DEBUG等:Matlab優

因此選python是沒什麼疑問了。當然Matlab我也不會扔掉,對於演算法設計與驗證,以及需要可視化的工作,Matlab仍然是最得心應手的工具。但是正兒八經的開發,還是用Python吧。


別逗了,深入學習數據挖掘...用啥不一樣,又不是深入學習python或者深入學習matlab...至於之前答案中的什麼內存問題啊之類的,如果你的數據量到了平台的瓶頸,那麼你就是用C也還是不夠然後吃虛存啊。上硬體啊。。。[自然matlab有個開放內存上限lululululu,自然matlab本身軟體佔用內存也比python高到不知道哪裡去了,可是matlab寫起來也方便不知道多少,多少函數不用亂七八糟的調來調去了]。

所以一切糾結工具的問題都沒什麼意義,其實是熟悉哪個先用哪個,別因為語法什麼的妨礙了您學習科學文化知識,自然如果都熟悉,反正我就是看心情看時間成本的換著用,如果都不熟悉,那您要不先找找您熟悉的,R也成啊。[我是有多不喜歡R]...

半回答半吐槽,求不摺疊。。


學習數據挖掘的工具

題主也很清楚這只是個學習工具罷了,那個熟悉用哪個就好。

如果要做生產工具,先想想自己創造的價值能不能超過正版授權費。


這學期做自然語言處理,用python,快捷方便,matlab我一直不會用,不過畢竟數學計算能力比較好。不過還是推薦py做,萬能的語言,而且比較實用。用python搞機器學習的書有個《機器學習實戰》挺不錯的,從原理到實例再到實現,簡直是神書。


學術界就用Matlab和Python吧,工業界還是C或者Java的比較多


matlab適合學習和研究,遇到的實際問題就是,在企業界找不到工作


兩個軟體根本不是一個圈子裡的。

首先說說產品開發。 MATLAB自己都說的很清楚,適合做原型產品開發。原型產品做出來了,當然還要很久的路要走。這時候你再用C或者Java或者彙編都行。你在原型產品階段耽誤太多時間實際上是不划算的。至於某些公司裡面有人歧視MATLAB。我只能說,IT圈子裡鄙視鏈這個東西不是一天兩天了。鄙視別人的人到底自己有幾斤幾兩也未可知。

其次。MATLAB強項是數值計算。抓網頁這種任務肯定不適合啦。Python也不是萬能啦。Python和MATLAB比比矩陣運算,比比隨機數發生等肯定是比不過啦。

還有樓上有人說數據量大了MATLAB吃不消。這個, 兄弟你一直是單機跑MATLAB 吧。

最後說說費用問題。國內的環境有些也沒辦法。但是既然人家賣那麼貴肯定有他的道理啦。一個正版的附加值有多少可能大家體會不到。

亂七八糟碼了這麼多。不好意思。


matlab學慣用可以,但是一開始做項目了還是python好用得多。

我一開始寫強化學習的一些演算法的時候就是一個list從頭更新到尾。


1.matlab 雖然好用,不過它是收費的。現在抓盜版比較嚴了,所以企業不得不考慮版權問題了。

2.python 現在挺火。要招相關人才也容易了。

3.python 除了數據分析還有其他用途。很多公司想一個人頂N個。。。。


Python的數據如何保存下來 ,想在matlab中導入?


為了回答這個問題,我用matlab測試了一下~

首先導入數據,1.3G csv 逗號分隔~

就在我將數據導入的時候,電腦掛了T T。估計是內存溢出了……

我覺得就算是順利導入,做神經網路的時候電腦還會掛……

而用python的時候很順利……所以,要是數據量太大,matlab估計hold不住……


推薦閱讀:

大數據,數據挖掘,機器學習三者什麼區別和聯繫?
請問大家如何從移動運營商的數據中提取商業價值呢? ?
sql server、my sql、oracle與hadoop哪個才是未來趨勢?到底有什麼區別?
數據挖掘和機器學習中如何在高維空間上觀察模型的效果?
機器學習和數據挖掘的界限在哪裡?

TAG:Python | 數據挖掘 | MATLAB | 機器學習 |