如何用Python進(jìn)行大數(shù)據(jù)挖掘和分析?快速入門(mén)路徑圖!
大數(shù)據(jù)無(wú)處不在。在時(shí)下這個(gè)年代,不管你喜歡與否,在運(yùn)營(yíng)一個(gè)成功的商業(yè)的過(guò)程中都有可能會(huì)遇到它。
什么是 大數(shù)據(jù) ?
大數(shù)據(jù)就像它看起來(lái)那樣——有大量的數(shù)據(jù)。單獨(dú)而言,你能從單一的數(shù)據(jù)獲取的洞見(jiàn)窮其有限。但是結(jié)合復(fù)雜數(shù)學(xué)模型以及強(qiáng)大計(jì)算能力的TB級(jí)數(shù)據(jù),卻能創(chuàng)造出人類(lèi)無(wú)法制造的洞見(jiàn)。大數(shù)據(jù)分析提供給商業(yè)的價(jià)值是無(wú)形的,并且每天都在超越人類(lèi)的能力。
大數(shù)據(jù)分析的***步就是要收集數(shù)據(jù)本身,也就是眾所周知的“數(shù)據(jù)挖掘”。大部分的企業(yè)處理著GB級(jí)的數(shù)據(jù),這些數(shù)據(jù)有用戶數(shù)據(jù)、產(chǎn)品數(shù)據(jù)和地理位置數(shù)據(jù)。今天,我將會(huì)帶著大家一起探索如何用 Python 進(jìn)行大數(shù)據(jù)挖掘和分析?
為什么選擇Python?
Python***的優(yōu)點(diǎn)就是簡(jiǎn)單易用。這個(gè)語(yǔ)言有著直觀的語(yǔ)法并且還是個(gè)強(qiáng)大的多用途語(yǔ)言。這一點(diǎn)在大數(shù)據(jù)分析環(huán)境中很重要,并且許多企業(yè)內(nèi)部已經(jīng)在使用Python了,比如Google,YouTube,迪士尼等。還有,Python是開(kāi)源的,并且有很多用于數(shù)據(jù)科學(xué)的類(lèi)庫(kù)。
現(xiàn)在,如果你真的要用Python進(jìn)行大數(shù)據(jù)分析的話,毫無(wú)疑問(wèn)你需要了解Python的語(yǔ)法,理解正則表達(dá)式,知道什么是元組、字符串、字典、字典推導(dǎo)式、列表和列表推導(dǎo)式——這只是開(kāi)始。
數(shù)據(jù)分析流程
一般可以按“數(shù)據(jù)獲取-數(shù)據(jù)存儲(chǔ)與提取-數(shù)據(jù)預(yù)處理-數(shù)據(jù)建模與分析-數(shù)據(jù)可視化”這樣的步驟來(lái)實(shí)施一個(gè)數(shù)據(jù)分析項(xiàng)目。按照這個(gè)流程,每個(gè)部分需要掌握的細(xì)分知識(shí)點(diǎn)如下:
數(shù)據(jù)獲取:公開(kāi)數(shù)據(jù)、Python爬蟲(chóng)
外部數(shù)據(jù)的獲取方式主要有以下兩種。
***種是獲取外部的公開(kāi)數(shù)據(jù)集,一些科研機(jī)構(gòu)、企業(yè)、政府會(huì)開(kāi)放一些數(shù)據(jù),你需要到特定的網(wǎng)站去下載這些數(shù)據(jù)。這些數(shù)據(jù)集通常比較完善、質(zhì)量相對(duì)較高。
另一種獲取外部數(shù)據(jù)的方式就是爬蟲(chóng)。
比如你可以通過(guò)爬蟲(chóng)獲取招聘網(wǎng)站某一職位的招聘信息,爬取租房網(wǎng)站上某城市的租房信息,爬取豆瓣評(píng)分評(píng)分***的電影列表,獲取知乎點(diǎn)贊排行、網(wǎng)易云音樂(lè)評(píng)論排行列表。基于互聯(lián)網(wǎng)爬取的數(shù)據(jù),你可以對(duì)某個(gè)行業(yè)、某種人群進(jìn)行分析。
在爬蟲(chóng)之前你需要先了解一些 Python 的基礎(chǔ)知識(shí):元素(列表、字典、元組等)、變量、循環(huán)、函數(shù)………
以及,如何用 Python 庫(kù)(urllib、BeautifulSoup、requests、scrapy)實(shí)現(xiàn)網(wǎng)頁(yè)爬蟲(chóng)。
掌握基礎(chǔ)的爬蟲(chóng)之后,你還需要一些高級(jí)技巧,比如正則表達(dá)式、使用cookie信息、模擬用戶登錄、抓包分析、搭建代理池等等,來(lái)應(yīng)對(duì)不同網(wǎng)站的反爬蟲(chóng)限制。
數(shù)據(jù)存?。篠QL語(yǔ)言
在應(yīng)對(duì)萬(wàn)以內(nèi)的數(shù)據(jù)的時(shí)候,Excel對(duì)于一般的分析沒(méi)有問(wèn)題,一旦數(shù)據(jù)量大,就會(huì)力不從心,數(shù)據(jù)庫(kù)就能夠很好地解決這個(gè)問(wèn)題。而且大多數(shù)的企業(yè),都會(huì)以SQL的形式來(lái)存儲(chǔ)數(shù)據(jù)。
SQL作為最經(jīng)典的數(shù)據(jù)庫(kù)工具,為海量數(shù)據(jù)的存儲(chǔ)與管理提供可能,并且使數(shù)據(jù)的提取的效率大大提升。你需要掌握以下技能:
提取特定情況下的數(shù)據(jù)
數(shù)據(jù)庫(kù)的增、刪、查、改
數(shù)據(jù)的分組聚合、如何建立多個(gè)表之間的聯(lián)系
數(shù)據(jù)預(yù)處理:Python(pandas)
很多時(shí)候我們拿到的數(shù)據(jù)是不干凈的,數(shù)據(jù)的重復(fù)、缺失、異常值等等,這時(shí)候就需要進(jìn)行數(shù)據(jù)的清洗,把這些影響分析的數(shù)據(jù)處理好,才能獲得更加精確地分析結(jié)果。
對(duì)于數(shù)據(jù)預(yù)處理,學(xué)會(huì) pandas (Python包)的用法,應(yīng)對(duì)一般的數(shù)據(jù)清洗就完全沒(méi)問(wèn)題了。需要掌握的知識(shí)點(diǎn)如下:
選擇:數(shù)據(jù)訪問(wèn)
缺失值處理:對(duì)缺失數(shù)據(jù)行進(jìn)行刪除或填充
重復(fù)值處理:重復(fù)值的判斷與刪除
異常值處理:清除不必要的空格和極端、異常數(shù)據(jù)
相關(guān)操作:描述性統(tǒng)計(jì)、Apply、直方圖等
合并:符合各種邏輯關(guān)系的合并操作
分組:數(shù)據(jù)劃分、分別執(zhí)行函數(shù)、數(shù)據(jù)重組
Reshaping:快速生成數(shù)據(jù)透視表
概率論及統(tǒng)計(jì)學(xué)知識(shí)
需要掌握的知識(shí)點(diǎn)如下:
基本統(tǒng)計(jì)量:均值、中位數(shù)、眾數(shù)、百分位數(shù)、極值等
其他描述性統(tǒng)計(jì)量:偏度、方差、標(biāo)準(zhǔn)差、顯著性等
其他統(tǒng)計(jì)知識(shí):總體和樣本、參數(shù)和統(tǒng)計(jì)量、ErrorBar
概率分布與假設(shè)檢驗(yàn):各種分布、假設(shè)檢驗(yàn)流程
其他概率論知識(shí):條件概率、貝葉斯等
有了統(tǒng)計(jì)學(xué)的基本知識(shí),你就可以用這些統(tǒng)計(jì)量做基本的分析了。你可以使用 Seaborn、matplotlib 等(python包)做一些可視化的分析,通過(guò)各種可視化統(tǒng)計(jì)圖,并得出具有指導(dǎo)意義的結(jié)果。
Python 數(shù)據(jù)分析
掌握回歸分析的方法,通過(guò)線性回歸和邏輯回歸,其實(shí)你就可以對(duì)大多數(shù)的數(shù)據(jù)進(jìn)行回歸分析,并得出相對(duì)精確地結(jié)論。這部分需要掌握的知識(shí)點(diǎn)如下:
回歸分析:線性回歸、邏輯回歸
基本的分類(lèi)算法:決策樹(shù)、隨機(jī)森林……
基本的聚類(lèi)算法:k-means……
特征工程基礎(chǔ):如何用特征選擇優(yōu)化模型
調(diào)參方法:如何調(diào)節(jié)參數(shù)優(yōu)化模型
Python 數(shù)據(jù)分析包:scipy、numpy、scikit-learn等
在數(shù)據(jù)分析的這個(gè)階段,重點(diǎn)了解回歸分析的方法,大多數(shù)的問(wèn)題可以得以解決,利用描述性的統(tǒng)計(jì)分析和回歸分析,你完全可以得到一個(gè)不錯(cuò)的分析結(jié)論。
當(dāng)然,隨著你實(shí)踐量的增多,可能會(huì)遇到一些復(fù)雜的問(wèn)題,你就可能需要去了解一些更高級(jí)的算法:分類(lèi)、聚類(lèi)。
然后你會(huì)知道面對(duì)不同類(lèi)型的問(wèn)題的時(shí)候更適合用哪種算法模型,對(duì)于模型的優(yōu)化,你需要去了解如何通過(guò)特征提取、參數(shù)調(diào)節(jié)來(lái)提升預(yù)測(cè)的精度。
你可以通過(guò) Python 中的 scikit-learn 庫(kù)來(lái)實(shí)現(xiàn)數(shù)據(jù)分析、數(shù)據(jù)挖掘建模和分析的全過(guò)程。
總結(jié):
其實(shí)做數(shù)據(jù)挖掘不是夢(mèng),5步就能讓你成為一個(gè)Python爬蟲(chóng)高手!