Python 数据分析与挖掘概述
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Python 數(shù)據(jù)分析與挖掘概述
一、數(shù)據(jù)分析與挖掘介紹
? ? ? ?從人類歷史演變的角度出發(fā),我們回顧整個計算機(jī)的發(fā)展歷程可以看到,從第一臺電子計算機(jī)(ENIAC)于1946年2月誕生到今天,也不過是短短的六十載,但就是在這短短的幾十年過程中,計算機(jī)技術(shù)得到了飛速的發(fā)展,極大地促進(jìn)了社會生產(chǎn)力的提高,提升了生產(chǎn)制造水平。可以說計算機(jī)技術(shù)是近代以來發(fā)展最為迅速的技術(shù)之一。(更多內(nèi)容,可參閱程序員在旅途)
? ? ? 尤其是近年來,隨著半導(dǎo)體技術(shù),通訊技術(shù)的不斷發(fā)展,人類收集數(shù)據(jù)和存儲數(shù)據(jù)的能力都得到了極大的提高。無論是在科學(xué)研究還是社會生活的各個領(lǐng)域中都產(chǎn)生積累了大量的數(shù)據(jù),對這些數(shù)據(jù)進(jìn)行分析以挖掘出蘊含在這些數(shù)據(jù)中的有用信息,已成為我們各個領(lǐng)域的共同需求,對改善人類的生活,促進(jìn)社會的發(fā)展有著極大的作用。
? ? ? 數(shù)據(jù)分析與挖掘是指利用數(shù)學(xué)和計算機(jī)的手段,對收集來的數(shù)據(jù)進(jìn)行適當(dāng)?shù)奶幚砗烷_發(fā),以求最大化地開發(fā)數(shù)據(jù)的功能,發(fā)揮數(shù)據(jù)的作用。具體來說,數(shù)據(jù)挖掘是從海量的數(shù)據(jù)中挖掘出隱含的、先前未知、對決策有潛在價值的關(guān)系、模式、趨勢,并利用這些知識和規(guī)則建立用于決策支持的模型,提供預(yù)測性決策支持的方法、工具、和過程。
? ? ? ?留心觀察就會覺察到,大數(shù)據(jù)分析在我們生活中的應(yīng)用案例屢見不鮮。例如許多電商網(wǎng)站會根據(jù)用戶的歷史瀏覽足跡、購買記錄等數(shù)據(jù),挖掘出用戶的喜好等信息,然后基于用戶的興趣偏好,把用戶感興趣的物品或者視頻、資訊等推薦給用戶,給用戶帶來沉浸式的體驗,讓用戶感到一定的滿足感,優(yōu)化用戶的體驗。
二、數(shù)據(jù)分析的流程
? ? ? ?在了解了數(shù)據(jù)分析與挖掘的相關(guān)背景知識后,我們又應(yīng)該如何開始數(shù)據(jù)分析相關(guān)的工作的呢?首先,我們要清楚的知道一次數(shù)據(jù)挖掘任務(wù)是在什么樣的背景下進(jìn)行的,任務(wù)的最終目的是什么,最終的項目成果是什么,能滿足什么樣的需求,能帶來什么樣的收益。其次,要了解待分析的數(shù)據(jù)的來源,如何獲取這些數(shù)據(jù),準(zhǔn)備好相應(yīng)的數(shù)據(jù)獲取方法;再對獲取到的數(shù)據(jù)進(jìn)行必要的處理,剔除不滿足需求或者明顯有差錯的數(shù)據(jù)。然后,根據(jù)業(yè)務(wù)需求,建立相關(guān)的模型,利用數(shù)據(jù)進(jìn)行訓(xùn)練,不斷地對模型進(jìn)行修正與優(yōu)化。最后,對構(gòu)建好的模型進(jìn)行評估分析,選擇時機(jī)部署在相應(yīng)的系統(tǒng)上面運行。
? ? ? ?2.1 需求分析
? ? ? ?通過與相關(guān)部門人員進(jìn)行交流探討,準(zhǔn)確理解用戶和項目的功能、性能、可靠性等具體要求。
? ? ? ?2.2 數(shù)據(jù)獲取
? ? ? ?要進(jìn)行數(shù)據(jù)分析與挖掘的前提是要有數(shù)據(jù)的支持。數(shù)據(jù)來源可以是公司數(shù)據(jù)庫里面的歷史數(shù)據(jù)信息,也可以根據(jù)具體的項目需要進(jìn)行網(wǎng)絡(luò)爬蟲爬取。
? ? ? ?2.3 數(shù)據(jù)預(yù)處理
? ? ? ?上一步獲取到的數(shù)據(jù)往往不能直接用于建模,其中常常包含有一些臟數(shù)據(jù)。因此,在建模之前需要對數(shù)據(jù)進(jìn)行預(yù)處理,這一階段主要做的工作有:數(shù)據(jù)篩選、數(shù)據(jù)變量轉(zhuǎn)換、缺失值處理、壞數(shù)據(jù)處理、數(shù)據(jù)標(biāo)準(zhǔn)化、主成分分析、屬性選擇、數(shù)據(jù)規(guī)約等。這些名詞看起來比較抽象,但只要處理過一次具體的項目案例,對這些名詞就會很熟悉了。在具體的項目中,根據(jù)數(shù)據(jù)的特征,有選擇的做其中部分或者全部處理,不一定要全部都涉及。
? ? ? ?2.4 分析與建模
? ? ? ?在對數(shù)據(jù)進(jìn)行預(yù)處理之后,我們就可以著手準(zhǔn)備建模的相關(guān)事情了。在建模之前,我們要考慮,此次數(shù)據(jù)分析任務(wù)是屬于數(shù)據(jù)挖掘中的哪類問題,具體的要思考,是屬于這四類問題中的哪一類,分類問題、聚類問題、關(guān)聯(lián)問題、預(yù)測問題。在確認(rèn)了問題的歸屬之后,需要確定具體的分析方法。常見的問題歸屬有:
? ? ? ?1)分類問題:決策樹、貝葉斯、KNN、支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)和邏輯回歸等
? ? ? ?2)聚類問題:劃分聚類、層次聚類、密度聚類、網(wǎng)格聚類、基于模型聚類等。
? ? ? ?3)關(guān)聯(lián)問題:Aprior算法、Carma算法,序列算法等
? ? ? ?4)預(yù)測問題:線性回歸分析、多重線性回歸分析、時間序列等。
? ? ? ?在我們使用Python進(jìn)行數(shù)據(jù)分析的時候,并不需要每個算法都要自己去實現(xiàn),有一些算法已經(jīng)封裝在相關(guān)的模塊中了,我們在使用的時候,只需要調(diào)用這些模塊即可。這也是Python在數(shù)據(jù)分析領(lǐng)域流行的原因之一,豐富的組件,拿來即用,戲稱膠水語言。
? ? ? ?2.5 模型評價與優(yōu)化改進(jìn)
? ? ? ?模型評價的目的是從訓(xùn)練的模型中找出一個最好的,然后根據(jù)具體的業(yè)務(wù)對模型進(jìn)行解釋和應(yīng)用。不同的問題會選擇不同的模型,因此評價方法也會有所不同。例如,我們?nèi)绻芯康氖且粋€分類問題,那我們就會使用分類模型,相應(yīng)地,就會選擇適當(dāng)?shù)姆诸惸P驮u價標(biāo)準(zhǔn)。
? ? ? ?2.6 系統(tǒng)部署
? ? ? ?當(dāng)模型構(gòu)建好,經(jīng)過評估之后,如果沒問題,就可以部署在具體的系統(tǒng)里面,投入使用了。
三、數(shù)據(jù)分析的編程語言選擇
? ? ???目前主流的數(shù)據(jù)分析語言有R,Python,MATLAB三種程序語言。
四、如何利用Python進(jìn)行數(shù)據(jù)分析
? ? ? ?Python是一種面向?qū)ο蟮慕忉屝杂嬎銠C(jī)程序設(shè)計語言,他擁有高效的高級數(shù)據(jù)結(jié)構(gòu),并且能夠用簡單又高效的方式進(jìn)行編程。用Python進(jìn)行數(shù)據(jù)分析的主要原因, 是它的數(shù)據(jù)分析庫很全面。例如:他有三個經(jīng)典的科學(xué)計算擴(kuò)展庫:NumPy,SciPy,Matplotlib。這三個庫是我們進(jìn)行數(shù)據(jù)分析過程中必須要使用的工具模塊,分別提供了快速數(shù)組處理、數(shù)值運算以及繪圖功能。在數(shù)據(jù)處理方面,Pandas 是一個功能強(qiáng)大的為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建工具庫,Pandas 納入了大量庫和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效地操作大型數(shù)據(jù)集所需的工具。除此之外,Scikit-learn庫中包含了很多聚類相關(guān)的算法,這在構(gòu)建聚類模型的時候相當(dāng)有用。正是由于Python擁有這些庫的支持,所以才成為數(shù)據(jù)挖掘領(lǐng)域常用的編程語言。因此,如果使用Python進(jìn)行數(shù)據(jù)分析與挖掘的話,必須要熟練的掌握上述庫的使用。
參考文獻(xiàn):
Python數(shù)據(jù)分析與挖掘(第二版)。 張良均等
Python數(shù)據(jù)分析技術(shù)綜述。 高鴻斌、申肖陽等
機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘。周志華
總結(jié)
以上是生活随笔為你收集整理的Python 数据分析与挖掘概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快播CEO认罪,成人网站对技术的要求有多
- 下一篇: Python基础总结