《Python 數據挖掘實踐》課件-第2章 Python概述_第1頁
《Python 數據挖掘實踐》課件-第2章 Python概述_第2頁
《Python 數據挖掘實踐》課件-第2章 Python概述_第3頁
《Python 數據挖掘實踐》課件-第2章 Python概述_第4頁
《Python 數據挖掘實踐》課件-第2章 Python概述_第5頁
已閱讀5頁,還剩44頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于Python編寫簡單案例31Python的基本概念,使用版本與應用領域Python開發環境搭建2目錄Python中與數據挖掘相關的第三方庫4Python是一門簡單易學且功能強大的編程語言。它擁有高效的高級數據結構,并且能夠用簡單而又高效的方式進行面向對象編程。Python優雅的語法和動態類型,再結合它的解釋性,使其在大多數平臺的許多領域成為編寫腳本或開發應用程序的理想語言。要認識Python,首先得明確一點,Python是一門編程語言!這就意味著,至少原則上來說,它能夠完成Matlab能夠做的所有事情(因為大不了從頭開始編寫),而且大多數情況下,同樣功能的Python代碼會比Matlab代碼更加簡潔、易懂;而另一方面,因為它是一門編程語言,所以它能夠完成很多Matlab不能做的事情,比如開發網頁、開發游戲、編寫爬蟲來采集數據等。Python簡介Python的簡介Python以開發效率著稱,也就是說它致力于以最短的代碼完成同一個任務。Python通常為人詬病的是它的運行效率,而Python還被稱為“膠水語言”,它允許我們把耗時的核心部分用C/C++等更高效率的語言編寫,然后由它來“黏合”,這很大程度上已經解決了Python的運行效率問題。事實上,在大多數數據任務上,Python的運行效率已經可以媲美C/C++語言。Python簡介Python的簡介Python語言的特點黑格爾說,存在即合理。一件事物能存在必有其合理性,而若該事物同時被大多數人接收與欣賞,那它必定具備許多獨到之處與優點。Python作為一種比較優秀的編程語言,其優點主要有以下幾點:擴展性良好。Python不僅可以引入.py文件,還可以通過接口和庫函數調用由其它高級語言(如C語言、C++、Java等)編寫的代碼類庫豐富。世界各地的程序員通過開源社區又貢獻了十幾萬個幾乎覆蓋各個應用領域的第三方函數庫通用靈活。Python是一門通用編程語言,可被用于科學計算、數據處理、游戲開發、人工智能、機器學習等各個領域模式多樣。Python既支持面向對象編程,又支持面向過程編程良好的中文支持。Python3.x解釋器采用UTF-8編碼表達所有字符信息,編碼支持英文、中文、韓文、法文等各類語言Python簡介TIOBE編程語言排行榜Python版本的前世今生2000年10月,Python2.0發布,Python從基于maillist的開發方式轉為完全開源的開發方式。2008年12月,Python3.0版本發布,并被作為Python語言持續維護的主要系列。2010年,Python2.x系列發布了最后一個版本,其主版本號為2.7,同時,Python的維護者們聲稱不在2.x系列中繼續對主版本號升級,Python2.x系列慢慢退出歷史舞臺。2012年Python3.3版本發布,2014年Python3.4版本發布,2015年Python3.5版本發布,2016年Python3.6版本發布,2018年6月27日Python3.7.0發布,2019年10月14日Python3.8.0發布目前Python的最新版本為2020年2月24日發布的3.8.2。從2020年官方不在更新Python2.x版本Guido于1989年定下目標之后便投身于Python語言的設計之中,但Python的第一個公開版本直到1991年才行,此版本使用C語言實現,能調用C語言的庫文件。Python語言的特點黑格爾說,存在即合理。一件事物能存在必有其合理性,而若該事物同時被大多數人接收與欣賞,那它必定具備許多獨到之處與優點。Python作為一種比較優秀的編程語言,其優點主要有以下幾點:擴展性良好。Python不僅可以引入.py文件,還可以通過接口和庫函數調用由其它高級語言(如C語言、C++、Java等)編寫的代碼類庫豐富。世界各地的程序員通過開源社區又貢獻了十幾萬個幾乎覆蓋各個應用領域的第三方函數庫通用靈活。Python是一門通用編程語言,可被用于科學計算、數據處理、游戲開發、人工智能、機器學習等各個領域模式多樣。Python既支持面向對象編程,又支持面向過程編程良好的中文支持。Python3.x解釋器采用UTF-8編碼表達所有字符信息,編碼支持英文、中文、韓文、法文等各類語言Web開發人工智能自動化運維開發大數據處理游戲開發云計算爬蟲Python的應用領域基于Python編寫簡單案例31Python的基本概念,使用版本與應用領域Python開發環境搭建2目錄Python中與數據挖掘相關的第三方庫4需要什么開發環境?操作系統選擇Python的官網:/Python是跨平臺的語言,因此腳本可以跨平臺運行,然而不同的平臺運行效率不一樣,一般來說Linux下的速度會比Windows快,而且是對于數據分析和挖掘任務。此外,在Linux下搭建Python環境相對來說容易一些,很多Linux發行版自帶了Python程序,并且在Linux下更容易解決第三方庫的依賴問題。當然,Linux的操作門檻較高,入門的讀者可以先在Windows熟悉,然后再考慮遷移到Linux下。操作系統選擇安裝python解釋器1.進入Windows版本軟件下載頁面,根據操作系統版本選擇相應軟件包。本教材使用的是Windows1064位操作系統,此處選擇3.8.1版本、.exe形式的安裝包。安裝python解釋器2.勾選“AddPython3.8toPATH”,選擇“InstallNow”開始自動安裝Python解釋器、配置環境變量。片刻后安裝完成。安裝python解釋器3.在【開始】菜單欄中搜索“python”,找到并單擊打開Python3.8(64bit)。4.在控制臺中輸入Python,按下Enter鍵進入Python環境安裝python編輯器工欲善其事,必先利其器。雖然安裝Python解釋器、配置環境變量之后,便可開始Python程序的開發,但使用好的編輯器能大大提升開發效率。常用的Python編輯器有PyCharm、JupyterNotebook等等。安裝python編輯器PyCharm常用于編輯Python項目,它具備非常齊備的功能,如調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制等,使用PyCharm可以實現程序編寫、運行、測試的一體化。安裝python編輯器Professional和Community是PyCharm的兩個版本,這兩個版本的特點如下。Professional版本特點提供PythonIDE的所有功能,支持Web開發。支持JavaScript、CoffeeScriptTypeScript、CSS和Cython等。支持遠程開發、Python分析器、數據庫和SQL語句。Community版本特點輕量級的PythonIDE,只支持Python開發。免費、開源、集成Apache2的許可證。智能編輯器、調試器、支持重構和錯誤檢查,集成VCS版本控制。安裝python編輯器1.PyCharm下載當Python環境安裝成功后,還需要安裝一個集成開發環境PyCharm,用于開發Python程序。進入PyCharm的官網(/pycharm),下載Community的PyCharm安裝包。2.PyCharm安裝與配置關鍵步驟1:在InstallationOptions選項卡,分別勾選“64-bitlauncher”,“.py”,“AddlaunchersdirtothePATH”。關鍵步驟2:點擊“NewProject”,在“Location”處的文本框中顯示新建Python工程項目的默認存儲路徑,用戶也可以自定義存儲路徑。點擊“Projectinterpreter”之后,可以選擇自定義Python解釋器,也可以選擇“Existinginterpreter”。安裝Anaconda開發一個可以實現復雜功能的Python程序時,Python自身提供的模塊已不夠,還需要安裝大量的第三方模塊,費時費力。此時,可以選用集成幾乎所有常用科學計算庫的Anaconda(例如Pandas,numpy,matplotlib等)。它是一個免費軟件,并且集成了大量第三方庫,用戶無需安裝,便可以直接使用。核心配置如圖:基于Python編寫簡單案例31Python的基本概念,使用版本與應用領域Python開發環境搭建2目錄Python中與數據挖掘相關的第三方庫4使用PyCharm編寫Python程序1.單擊桌面上PyCharm的快捷方式打開PyCharm,初次打開PyCharm時會彈出JetBrainsPrivacyPolicy窗口,用戶需在該窗口中勾選同意用戶協議;之后會進入PyCharm的主題選擇窗口,在該窗口中選擇PyCharm的主題后方可啟動PyCharm,進入PyCharm的歡迎窗口。使用PyCharm編寫Python程序2.單擊“CreateNewProject”進入CreateProject窗口。使用PyCharm編寫Python程序3.在CreateProject窗口可以設置項目的存儲路徑,這里設置項目存儲路徑為E:\python\PycharmProjects(可以根據實際情況自行設定),設置完成后單擊“Create”按鈕,進入項目界面。使用PyCharm編寫Python程序4.經以上操作后我們創建了一個空Python項目,之后還需要在項目中添加Python文件。右擊項目名稱,在彈出的下拉菜單中選擇【New】→【PythonFile】。使用PyCharm編寫Python程序5.單擊下拉列表中的“PythonFile”將彈出“NewPythonfile”窗口。6.這里輸入的文件名為“sum”,文件添加完成后的PyCharm窗口。基于Python編寫簡單案例31Python的基本概念,使用版本與應用領域Python開發環境搭建2目錄Python中與數據挖掘相關的第三方庫4模塊的安裝導入與使用以模塊形式組織代碼不僅可保證代碼的可維護性,也可提高代碼的可復用性。Python內置了一些標準模塊,Python的使用者也貢獻了許多豐富且強大的第三方模塊。標準模塊可以直接導入與使用,第三方模塊則需先行安裝。庫的導入與添加庫的導入Python本身內置了很多強大的庫,如數學相關的math庫,可以為我們提供更加豐富復雜的數學運算:導入庫的方法,除了直接“import庫名”之外,還可以為庫起一個別名:importmathmath.sin(1)#計算正弦math.exp(1)#計算指數math.pi#內置的圓周率常數importmathasmm.sin(1)#計算正弦庫的導入與添加庫的導入此外,如果并不需要導入庫中的所有函數,可以特別指定導入函數的名字:直接地導入庫中的所有函數:frommathimportexpase#只導入math庫中的exp函數,并起別名ee(1)#計算指數sin(1)#此時sin(1)和math.sin(1)都會出錯,因為沒被導入frommathimport*#直接的導入,也就是去掉math.,但如果大量地這樣引入第三庫,就容易引起命名沖突。exp(1)sin(1)庫的導入與添加添加第三方庫Python自帶了很多庫,但不一定可以滿足我們的需求。就數據分析和數據挖掘而言,還需要添加一些第三方的庫來拓展它的功能。安裝第三方庫一般有以下幾種思路:Python數據分析擴展--第三方庫Python本身的數據分析功能不強,需要安裝一些第三方擴展庫來增強它的能力。本書用到的庫有Numpy、Scipy、Matplotlib、Pandas、Scikit-Learn、Keras、Gensim等,下面將對這些庫的安裝和使用進行簡單的介紹。Python數據分析擴展--第三方庫NumpyNumpy(代碼見C2文件夾numpy中001.py-005.py)Python并沒有提供數組功能。雖然列表可以完成基本的數組功能,但它不是真正的數組,而且在數據量較大時,使用列表的速度就會慢得難以接受。為此,Numpy提供了真正的數組功能,以及對數據進行快速處理的函數。Numpy還是很多更高級的擴展庫的依賴庫,我們后面介紹的Scipy、Matplotlib、Pandas等庫都依賴于它。值得強調的是,Numpy內置函數處理數據的速度是C語言級別的,因此在編寫程序的時候,應當盡量使用它們內置的函數,避免效率瓶頸的現象(尤其是涉及到循環的問題)。Python數據分析擴展--第三方庫NumpyNumpy。在Windows中,Numpy安裝跟普通的第三方庫安裝一樣,可以通過pip安裝:pipinstallnumpy也可以自行下載源代碼,然后使用以下方式安裝:pythonsetup.pyinstall在Linux下上述方面也是可行的,此外,很多Linux發行版的軟件源中都有Python常見的庫,因此還可以通過Linux自帶的軟件管理器安裝,如在Ubuntu下可以用如下方式安裝:sudoapt-getinstallpython-numpyPython數據分析擴展--第三方庫ScipyScipyNumpy提供了多維數組功能,但它只是一般的數組,并不是矩陣,比如當兩個數組相乘時,只是對應元素相乘,而不是矩陣乘法。Scipy提供了真正的矩陣,以及大量基于矩陣運算的對象與函數。SciPy包含的功能有最優化、線性代數、積分、插值、擬合、特殊函數、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算,顯然,這些功能都是挖掘與建模必備的。Python數據分析擴展--第三方庫ScipyScipyScipy依賴于Numpy,因此安裝它之前得先安裝好Numpy。安裝Scipy的方式與安裝Numpy的方法大同小異,需要提及的是,在Ubuntu下也可以用類似的安裝Scipy。sudoapt-getinstallpython-scipyPython數據分析擴展--第三方庫MatplotlibMatplotlib(代碼見C2文件夾中Matplotlib-006.py-011.py)Matplotlib是最著名的繪圖庫,它主要用于二維繪圖,當然它也可以進行簡單的三維繪圖。它不僅提供了一整套和Matlab相似但更為豐富的命令,讓我們可以非常快捷地用Python可視化數據,而且允許輸出達到出版質量的多種圖像格式。Matplotlib的安裝并沒有什么特別之處,可以通過pipinstallmatplotlib安裝或者自行下載源代碼安裝,在Ubuntu下也可以用類似的安裝。sudoapt-getinstallpython-matplotlib注意Matplotlib的上級依賴庫相對較多,手動安裝的時候,需要逐一把這些依賴庫都安裝好。Python數據分析擴展--第三方庫MatplotlibMatplotlib如果讀者使用的是中文標簽,就會發現中文標簽無法正常顯示。這是因為Matplotlib的默認字體是英文字體所致,解決它的辦法是在作圖之前手動指定默認字體為中文字體,如黑體(SimHei):plt.rcParams['font.sans-serif']=['SimHei']#這兩句用來正常顯示中文標簽其次,保存作圖圖像時,負號有可能顯示不正常,可以通過以下代碼解決:plt.rcParams['axes.unicode_minus']=False#解決保存圖像是負號'-'顯示為方塊的問題Python數據分析擴展--第三方庫PandasPandas(代碼見C2文件夾中Pandas-012.py-013.py)Pandas是Python下最強大的數據分析和探索工具(貌似沒有之一)。它包含高級的數據結構和精巧的工具,使得在Python中處理數據非常快速和簡單。Pandas建造在NumPy之上,它使得以NumPy為中心的應用很容易使用。Pandas的名稱來自于面板數據(paneldata)和python數據分析(dataanalysis),它最初被作為金融數據分析工具而開發出來,由AQRCapitalManagement于2008年4月開發,并于2009年底開源出來。Pandas的功能非常強大,支持類似SQL的數據增、刪、查、改,并且帶有豐富的數據處理函數;支持時間序列分析功能;支持靈活處理缺失數據;等等。Python數據分析擴展--第三方庫安裝:Pandas的安裝相對來說比較容易一些,只要安裝好Numpy之后,就可以直接安裝了,通過pipinstallpandas或下載源碼后pythonsetup.pyinstall安裝均可。由于我們頻繁用到讀取和寫入Excel,但默認的Pandas還不能讀寫Excel文件,需要安裝xlrd(讀)和xlwt(寫)庫才能支持Excel的讀寫:pipinstallxlrd#為Python添加讀取Excel的功能pipinstallxlwt#為Python添加寫入Excel的功能Python數據分析擴展--第三方庫Pandas

使用:首先,Pandas基本的數據結構是Series和DataFrame,Series顧名思義就是序列,類似一維數組,DataFrame則是相當于一張二維的表格,類似二維數組,它的每一列都是一個Series。為了定位Series中的元素,Pandas提供了Index這一對象,每個Series都會帶有一個對應的Index,用來標記不同的元素,Index的內容不一定是數字,也可以是字母、中文等,它類似于SQL中的主鍵。類似地,DataFrame相當于多個帶有同樣Index的Series的組合(本質是Series的容器),每個Seiries都帶有一個唯一的表頭,用來標識不同的Series。#-*-coding:utf-8-*-importpandasaspd#通常用pd作為pandas的別名。

s=pd.Series([1,2,3],index=['a','b','c'])#創建一個序列sd=pd.DataFrame([[1,2,3],[4,5,6]],columns=['a','b','c'])#創建一個表d2=pd.DataFrame(s)#也可以用已有的序列來創建表格

d.head()#預覽前5行數據d.describe()#數據基本統計量

#讀取文件,注意文件的存儲路徑不能帶有中文,否則讀取可能出錯。pd.read_excel('data.xls')#讀取Excel文件,創建DataFrame。pd.read_csv('data.csv',encoding='utf-8')#讀取文本格式的數據,一般用encoding指定編碼。Python數據分析擴展--第三方庫StatsModelsStatsModelsPandas著眼于數據的讀取、處理和探索,而StatsModels則更加注重數據的統計建模分析,它使得Python有了R語言的味道。StatsModels支持與Pandas進行數據交互,因此,它與Pandas結合,成為了Python下強大的數據挖掘組合。安裝StatsModels相當簡單,既可以通過pip安裝,又可以通過源碼安裝,對于Windows用戶來說,官網上甚至已經有編譯好的exe文件供下載。如果手動安裝的話,需要自行解決好依賴問題,StatModel依賴于Pandas(當然也依賴于Pandas所依賴的),同時還依賴于pasty(一個描述統計的庫)。Python數據分析擴展--第三方庫Scikit-LearnScikit-LearnScikit-Learn是Python下強大的機器學習工具包,它提供了完善的機器學習工具箱,包括數據預處理、分類、回歸、聚類、預測、模型分析等。Scikit-Learn依賴于NumPy、SciPy和Matplotlib,因此,只需要提前安裝好這幾個庫,然后安裝Scikit-Learn就基本上沒有什么問題了,安裝方法跟前幾節一樣,要不就是pipinstallscikit-learn安裝,要不就是下載源碼自己安裝。Python數據分析擴展--第三方庫Scikit-Learn使用:所有模型提供的接口有:

model.fit():訓練模型,對于監督模型來說是fit(X,y),對于非監督模型是fit(X)監督模型提供:

model.predict(X_new):預測新樣本

model.predict_proba(X_new):預測概率,僅對某些模型有用(比如LR)

model.score():得分越高,fit越好非監督模型提供:

model.transform():從數據中學到新的“基空間”。

model.fit_transform():從數據中學到新的基并將這個數據按照這組“基”進行轉換。Python數據分析擴展--第三方庫KerasScikit-Learn已經足夠強大了,然而它并沒有包含一種強大的模型——人工神經網絡。人工神經網絡是功能相當強大的、但是原理又相當簡單的模型,在語言處理、圖像識別等領域都有重要的作用。近年來逐漸火起來的“深度學習”算法,本質上也就是一種神經網絡,可見在Python中實現神經網絡是非常必要的。本書用Keras庫來搭建神經網絡。事實上,Keras并非簡單的神經網絡庫,而是一個基于Theano的強大的深度學習庫,利用它不僅僅可以搭建普通的神經網絡,還可以搭建各種深度學習模型,如自編碼器、循環神經網絡、遞歸神經網絡、卷積神經網絡等等。由于它是基于Theano的,因此速度也相當快。Python數據分析擴展--第三方庫Keras安裝:安裝Keras之前首先需要安裝Numpy、Scipy、Theano。安裝Theano首先需要準備一個C++編譯器,這在Linux下是自帶的。因此,在Linux下安裝Theano和Keras都非常簡單,只需要下載源代碼,然后用pythonsetup.pyinstall安裝就行了,具體可以參考官方文檔。Python數據分析擴展--第三方庫安裝:可是在Windows下就沒有那么簡單了,因為它沒有現成的編譯環境,一般而言是先安裝MinGW(Windows下的GCC和G++),然后再安裝Theano(提前裝好Numpy等依賴庫),最后安裝Keras,如果要實現GPU加速,還需要安裝和配置CUDA(天下沒有免費的午餐,想要速度、易用兩不誤,那么就得花點心思)。值得一提的是,在Windows下的Keras速度會大打折扣,因此,想要在神經網絡、深度學習做更深入研究的讀者,請在Linux下搭建相應的環境。Python數據分析擴展--第三方庫Keras

使用:用Keras搭建神經網絡模型的過程相當簡潔,也相當直觀,它純粹地就像搭積木一般。我們可以通過短短幾十行代碼,就可以搭建起一個非常強大的神經網絡模型,甚至是深度學習模型。如簡單搭建一個MLP(多層感知器):要注意的是,Keras的預測函數跟Scikit-Learn有所差別,Keras用model.predict()方法給出概率,model.predict_classes()給出分類結果。#-*-coding:utf-8-*-fromkeras.modelsimportSequentialfromkeras.layers.coreimportDense,Dropout,Activationfromkeras.optimizersimportSGD

model=Sequential()#模型初始化model.add(Dense(20,64))#添加輸入層(20節點)、第一隱藏層(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論