Python語言的優(yōu)勢
基于以下三個原因,選擇Python作為實現(xiàn)數(shù)據(jù)挖掘算法的編程語言:
(1) Python的語法清晰;
(2) 易于操作純文本文件;
(3) 使用廣泛,存在大量的開發(fā)文檔。
Python具有清晰的語法結(jié)構(gòu),也被稱作可執(zhí)行偽代碼(executable pseudo-code)。
默認安裝的Python開發(fā)環(huán)境已經(jīng)附帶了很多高級數(shù)據(jù)類型,如列表、元組、字典、集合、隊列等,無需進一步編程就可以使用這些數(shù)據(jù)類型的操作。
使用這些數(shù)據(jù)類型使得實現(xiàn)抽象的數(shù)學概念非常簡單。此外,還可以使用自己熟悉的編程風格,如面向?qū)ο缶幊獭⒚嫦蜻^程編程、或者函數(shù)式編程。
Python語言處理和操作文本文件非常簡單,非常易于處理非數(shù)值型數(shù)據(jù)。
Python語言提供了豐富的正則表達式函數(shù)以及很多訪問Web頁面的函數(shù)庫,使得從HTML中提取數(shù)據(jù)變得非常簡單直觀。
Python語言挖掘的特色
諸如MATLAB和Mathematica等高級程序語言也允許用戶執(zhí)行矩陣操作,MATLAB甚至還有許多內(nèi)嵌的特征可以輕松地構(gòu)造數(shù)據(jù)挖掘應用,而且MATLAB的運算速度也很快。
然而MATLAB的不足之處是軟件費用太高,單個軟件授權(quán)就要花費數(shù)千美元。
雖然也有適合MATLAB的第三方插件,但是沒有一個有影響力的大型開源項目。
Java和C等強類型程序設(shè)計語言也有矩陣數(shù)學庫,然而對于這些程序設(shè)計語言來說,最大的問題是即使完成簡單的操作也要編寫大量的代碼。
程序員首先需要定義變量的類型,對于Java來說,每次封裝屬性時還需要實現(xiàn)getter和setter方法。另外還要記著實現(xiàn)子類,為了完成一個簡單的工作,必須花費大量時間編寫了很多無用冗長的代碼。
Python語言則與Java和C完全不同,它清晰簡練,而且易于理解,即使不是編程人員也能夠理解程序的含義,而Java和C對于非編程人員則像天書一樣難于理解。
Python語言是高級編程語言,可以花費更多的時間處理數(shù)據(jù)的內(nèi)在含義,而無須花費太多精力解決計算機如何得到數(shù)據(jù)結(jié)果。Python語言使得很容易表達自己的目的。
Python語言的缺點
Python語言唯一的不足是性能問題。Python程序運行的效率不如Java或者C代碼高,但是可以使用Python調(diào)用C編譯的代碼。這樣,就可以同時利用C和Python的優(yōu)點,逐步地開發(fā)數(shù)據(jù)挖掘應用程序。
可以首先使用Python編寫實驗程序,如果進一步想要在產(chǎn)品中實現(xiàn)數(shù)據(jù)挖掘,轉(zhuǎn)換成C代碼也不困難。
聯(lián)系客服