Python 數據分析 與 數據挖掘 (介紹篇)


2019-03-15 20:14:57

楚格

 

介紹:Python 數據分析與挖掘,快速入門的Python and Packet 工具使用方法,其次是解決方案的應用案例,最后是數據分析與挖掘的思維價值。

成長路上會遇到許多難題與困惑,知識就是不斷學習與遺忘,留下的只有解決問題架構經驗方法。

 

 

淺談認識篇

1.數據挖掘建模過程

1.1目標定義:任務理解,指標確定。

1.2數據采集:建模抽樣,質量把控,實時采集。

1.3數據整理:數據探索,數據清洗,數據變換。

1.4構建模型:模式發現,構建模型,驗證模型。

1.5模型評價:設定標准,模型對比,模型優化。

1.6模型發布:模型部署,模型重構。

 

2.數據挖掘建模工具

數據挖掘是個反復的過程,建模工具較多。針對Python進行介紹。

 Python 數據挖掘相關擴展庫

2.1.Numpy:  提供數組支持,以及相應的高效的處理函數

2.2.Scipy:    提供矩陣支持,以及矩陣相關的數值計算模塊

2.3.Matplotlib:  強大的數據可視化工具,作圖庫。

2.4Pandas:         強大靈活的數據分析和探索工具。

2.5.StatsModels: 統計建模和計量經濟學,包括描述統計,統計模型估計和推斷。

2.6.Scikit-Leran: 支持回歸,分類,聚類的強大的機器學習庫。

2.7.Keras:           深度學習庫,用於建立神經網絡以及深度學習模型。

2.8Gensim:         用於做文本主題模型的庫,文本挖掘的庫。

 

3.數據探索

3.1數據質量分析

  數據質量分析的主要任務是檢查原始數據中是否存在臟數據,臟數據一般是指不符合要求,以及不能直接進行相應分析的數據。

  所謂的臟數據包括:缺失值,異常值,不一致的值,重復數據以及含有特殊符號的數據。

  

  缺失值分析:包括記錄和記錄中某個字段信息的缺失,二者都會造成分析結果的不准確。

缺失值產生的原因,1是有些信息暫時無法獲取,或者獲取信息的代價太大;2是有些信息是被遺漏的;3是屬性值不存在。在某些情況下,缺失值並不意味着數據有錯誤。

缺失值也有他的影響,比如數據挖掘建模將丟失大量的有用信息,數據挖掘模型所表現的不確定性更加顯著,模型中蘊含的規律更難以把握,包含空值的數據會使建模過程先入混亂,導致不可靠的輸出。缺失值也是可以處理的,有刪除存在缺失值的記錄,對可能值進行插補和不處理的情況。

 

  異常值分析:是檢驗數據是否有錄入錯誤以及含有不合理的數據。忽視異常值的方式是非常危險的,不加剔除的把異常值包括進數據的計算分析過程中,對結果會產生不良影響,重視異常值的出現,分析其產生的原因,常常成為發現問題進而改進決策的契機。異常值是指樣本中個別值,其數值明顯偏離其余的觀測值。異常值也稱為離群點,異常值的分析也稱為離群點分析。異常值分析有以下個方法。1是簡單統計計量分析,可以先對變量做描述性統計,進而查看那些數據是不合理的。最常常的統計值是最大值和最小值,用於判斷這個變量的取值是否超過了合理部分范圍。2是3δ原則,如果數據服從正態分布,在3δ原則下,異常值被定義未一組測定值中與平均值的偏差超過3倍的標准差的值。在正態分布的假設下,距離平均值3δ之外的值出現的概率是屬於極個別的小概率事件。如果數據不服從正態分布,也可以用遠距離平均值的多少倍標准差來描述。

 

  箱型圖分析:箱型圖提供了識別異常值的一個標准,異常值通常被定義為小於 Q L-1.5IQR或者大於Q u+ 1.5IQR。QL稱為下四分位數,表示全部觀察值中有四分之一的數據取值比它小;Qu稱為上四分位數,表示全部觀察值中有四分之一的數據取值比它大。IQR稱為四分位數間距,是上四分位數與下四分位數之差,其間包含了全部觀察值的一半。

 

  數據不一致性是指數據的矛盾性,不相容性。直接對不一致的數據進行挖掘,可能會產生於實際相違背的挖掘結果。

 

3.2數據特征分析

  對數據進行質量分析以后,接下來可通過繪制圖表,計算某些特征等手段進行數據結構的特征分析。

  分布分析:分布分析能揭示數據的分布特征和分布類型。對於定量數據,欲了解其分布形式是對稱的還是非對稱的,發現某些特大或者特小的可疑值,可通過繪制頻率分布表,繪制頻率分布直方圖,繪制莖葉圖進行直觀的分析,對於定性分類數據,可用於圖餅和條形圖直觀的顯示分布情況。  定量數據的分布分析,對於定量變量而言,選擇組數和組寬是做頻率分布分析時最主要的問題,一般而言按照以下步驟進行。求極差,決定組距與組數,決定分點,列出頻率分布表,繪制頻率分布直方圖。遵循的主要原則,各組之間必須是相互排斥的,各組必須將所有的數據包含在內,各組的組寬最好是相等的。 對於定性變量,常常根據變量的分類類型來分組,可以采用餅圖和條形圖來描述定性變量的分布。

 

  對比分析:是指把二個或者多個相互聯系的指標進行比較,從數量上展示和說明研究對象規模的大小,水平的高低,速度的快慢,以及各種關系是否協調。特別適用於指標間的橫縱向比較、時間序列的比較分析,在對比分析中,選擇合適的對比的標准是十分關鍵的步驟,只有選擇合適的,才能做到客觀的的評價。主要有二種形式,絕對數比較和相對數比較,絕對數比較是利用絕對數進行對比,從而尋找差異的一種方法。相對數比較是由二個聯系的指標對比計算的,用以反映客觀現象之間數量聯系程度的綜合指標,其數值表現為相對數。

 

  統計量分析:用於統計指標對於定量數據進行統計描述,常從集中趨勢二個方面進行分析。平均水平的指標是對個體集中趨勢的度量,使用最廣泛的均值和中位數,反映變異程度的指標則是對個體離開平均水平的度量,使用較廣泛的是標准差,四分位間距。

集中趨勢度量,均值作為一個統計量,均值的主要問題是對極端值很敏感。如果數據中存在極端值或者數據是偏態分布的。那么均值就不能很好地度量數據集中趨勢。為了消除少數極端值的 影響,可以使用截斷均值或者中無數來度量數據的集中趨勢。截斷均值是去掉高低端值之后的平均數。中位數是將一組觀察值按照從小到大的順序排列,位於中間的那個數,即在全部數據中,小於和大於中位數的數據個數相等。眾數,眾數是指數據集中出現最頻繁的值,眾數並不經常 用於度量定型變量的中間位置,更適合定性變量,眾數不具有唯一性,當然,眾數一般用於離散型變量而非連續型變量。

離中趨勢度量,極差,極差對數據集的極端值非常敏感,並且忽略忽略了最大值與最小值之間的數據分布情況。標准差度量數據偏離均值的程度。變異系數,度量標准差相對均值的離中趨勢,CV= S/X。變異系數主要用來比較二個或者多個具有不同單位或者不同波動幅度的數據集的離中趨勢。

四分位數包括上四分位數和下四分位數。將所有數值由小到大排列並分四等份,處於第一個分割點的是下四分位數,處於第二個分割點位置是中位數,處於第三個分割點的數值是上四分位數。四分位數間距,是上下四分位之差,包含了全部觀察值的一半。其值越大,說明數據變異程度越大,反之,說明變異程度越小。

 

  周期性分析:周期性分析是探索某個變量是否隨着時間變化而呈現某種周期變化趨勢,時間尺度相對較長的周期性趨勢,有年度,季度,月度,周度,天度趨勢等。

  

   貢獻度分析:貢獻度分析又稱帕累托分析,它的原理是帕累托法則,又稱2/8定律。同樣的投入放在不同的地方產生不同的效益。

 

  相關性分析:分析連續變量之間線性相關程度的強弱,並用於適當的統計指標表示出來的過程稱為相關分析。1.直接繪制散點圖,判斷二個變量是否具有線性相關關系的最直接方法是直接繪制散點圖。2.繪制散點矩陣圖,需要同時考察多個變量間的相關關系時,一一繪制他們間的簡單散點圖是十分麻煩的,此時可以利用散點圖矩陣同時繪制各變量間的散點圖,從而快速發現多個變量間的主要相關性,在進行多遠線性回歸時尤為重要。3.計算相關系數,為了更加准確地描述變量之間線性相關程度,可以通過計算相關系數進行相關分析。在二元變量相關分析過程中比較常用的有Pearson相關系數和判定系數。Pearson相關系數用於分析二個連續性變量之間的關系,Spearman秩相關系數,pearson線性相關要求連續變量的取值服從正態分布,不服從正態分布的變量,分類或者等級之間的關聯性可采用Spearman秩相關系數,也稱為等級相關系數來描述。因為一個變量的相同取值必須有相同的秩次,所有在計算中的秩次是排序后所在位置的平均值。只有二個變量具有嚴格單調的函數關系,那么他們就是完全Spearsman相關的,這是與pearson相關不同,pearson相關只有在變量具有線性關系時才完全相關的。 判定系數是相關系數的平方,用於衡量回歸方程對y的解釋程度。

 

 

3.3數據探索函數

 Python中用於數據探索的庫主要是Pandas數據分析和 Matplotlib數據可視化。其中,pands提供大量的與數據探索相關性的函數,這些探索函數可大致分為統計特征函數與統計作圖函數,而作圖函數又依賴Matplotlib。

  基本統計特征函數,統計特征函數用於計算數據的均值,方差,標准差,分位數,相關系數,協方差等,這些統計特征反映出數據的整體分布。

sum()計算數據樣本的總和

mean()計算數據樣本的算術平均值

var()計算樣品的方差

std()計算數據樣本的標准差

corr()計算數據樣本的SpearmanPearson相關系數矩陣

cov()計算數據樣本的協方差矩陣

skew()樣本值的偏度(三階矩)

kurt()樣本值的峰度(四階矩)

describe()給出樣本的基本描述

  拓展統計特征函數,主要有累積計算cum和滾動計算pd.rolling。

cumsum()   依次給出前1,2,3,···,n個數的和

cumprod()  依次給出前1,2,3,···,n個數的積

cummax()  依次給出前1,2,3,···,n個數的最大值

cummin()  依次給出前1,2,3,···,n個數的最小值

   

  統計作圖函數,通過統計作圖函數繪制的圖表可以直接的反映數據以及統計計量性質以及內在規律,主要應用於matplotlib庫,

plot()  繪制二維圖,折線圖

pie()  繪制餅圖

hist()  繪制二維條形直方圖,可顯示數據的分配情形

boxplot()  繪制樣本的箱型圖

 

  

 

4.數據預處理

  數據預處理的主要內容包括數據清洗,數據集成,數據變換和數據規約。

 

4.1數據清洗,主要是刪除原始數據集中的無關數據,重復數據,平滑噪聲數據,篩選掉與挖掘主題無關的數據,處理缺失值,異常值等。    

處理缺失值的方法有三類,刪除記錄,數據插補和不處理。數據插補方法最常用,插補方法有幾種:1均值中位數眾數插補,根據屬性值的類型,用該屬性取值的均值中位數眾數插補。2使用固定值,將缺失值的屬性值用一個常數替換。3最近臨插補,在記錄中找到與缺失樣本最接近的樣本的該屬性值插補。4回歸方法,對帶有缺失值的變量,根據已有數據和其有關的其他變量的數據建立擬合模型預測缺失的屬性值。5差值法,插值法是利用已知點建立合適的差值函數,未知值由對應X求出函數值近似替代。如果通過刪除小部分記錄,達到既定目標,那么刪除含有缺失值的方法是做有效的,然而這種方法卻又很大局限。  

異常值處理,在處理時,異常值是否剔除,需要視情況而定,因為有些異常值可能蘊含有用的信息。異常值常用處理方法,刪除含有異常值的記錄,直接將含有異常值的記錄刪除。視為缺失值,將異常值視為缺失值,利用缺失值處理方法進行處理,平均值修正,可用前后二個觀測值的平均值修正該異常值。不處理,直接在具有異常值的數據上挖掘模型。

 將含有異常值的記錄直接刪除的方法簡單易行但是缺點也狠明顯,在觀測值很少的情況下,這種刪除會造成樣本量不足,可能會改變變量的原有分布,從而造成分析結果的不准確。視為缺失值處理的好處可以利用現有變量的信息,對異常值進行填補。在很多情況下,要先分析異常出現的可能原因,在判斷異常值是否應該舍棄,如果是正確的數據,可以直接在具有異常值數據集上進行挖掘建模。

 

4.2數據集成

  數據挖掘需要的數據往往分布在不同的數據源中,數據集成就是將多個數據源合並做一個一致數據存儲的過程,如數據倉庫。在數據集成時,來自多個數據源的現實的表達形式是不一樣的,有可能不匹配,要考慮實體識別問題和屬性冗余問題,從而將數據源在最低層上加以轉換,提煉和集成。  實體識別,指從不同數據源識別出現實世界的實體,它的任務是統一不同源數據的矛盾之處,同名異義,異名同義,單位不統一。 冗余屬性識別,數據集成往往導致數據冗余,同一屬性多次出現,同一屬性命名不一致導致重復,仔細整合不同數據能減少甚至避免數據冗余與不一致,從而提高數據挖掘的速度和質量。對於冗余屬性要先分析,檢測到后再將其刪除。有些冗余屬性可以用相關分析檢測,給定二個數值型的屬性A和B,根據其屬性值,用相關數度量一個屬性在大多程度上蘊含另一個屬性。

 

4.3數據變換

   數據變換主要對數據進行規范化處理,將數據轉換成適當的形式,用於挖掘任務以及算法的需要。簡單函數變換,是對原始數據進行某些數學函數變換,常用的變換包括平方,開方,取對數,差分運算。簡單的函數變換常用來將不具有正態分布的數據變換成具有正態分布的數據,在時間序列中,有時簡單的對數變換或者差分運算就可以將非平穩序列轉換成平穩序列。

規范化,數據規范化(歸一化)處理事數據挖掘的一項基礎工作,不同評價指標往往具有不同的量綱,數值間差別可能很大,不進行處理可能影響到數據分析的結果,為了消除指標之間的量綱和取值范圍差異的影響,需要進行標准化處理,將數據按照比例進行縮放,使之落入一個特定的區域,以便進行綜合分析,數據規范化對於基於距離挖掘的挖掘算法尤為重要。最小-最大規范化也是離差標准化,是對原始數據的線性變換,將數值值映射到【0,1】之間。離散標准化保留了原始數據存在的關系,是消除量綱和數據取值范圍影響的最簡單辦法,這種處理方法的缺點是若數值集中且某個數值很大時,規范化后各值接近0,並且相差不大。零--均值規范化,也稱為標准差標准化,經過處理的數據均值為0,標准差為1.x=(x-原數據均值)/標准差。 小數定標規范化,通過移動屬性值的小數位數,將屬性值映射到【-1,1】,移動的小數位數決定屬性絕對值的最大值。

連續屬性離散化,一些數據挖掘算法,特別是某些分類算法,ID3和Apriori算法,要求數據是分類屬性形式,這樣,常常需要將連續屬性換成分類屬性,即連續屬性離散化。1離散化的過程,就是數據的取值范圍內設定若干離散的划分點,將取值范圍划分為一些離散化的區間,最后用不同的符號或者整數值代表在每個子區間的數據值,所有,離散化涉及二個任務,確定分類以及如何將連續屬性值映射到這些分類值。 常用離散化方法。1等寬法,將屬性的值域分成具有相同寬度的區間,區間的個體由數據本身的特點決定,或者由用戶指定,類似制作頻率分布圖。2等頻法,將相同數量的記錄放進每個區間。這二種方法簡單,易於操作,但是需要人為的規定划分區間個數。同時,等寬法缺點在它離群點比較敏感,傾向於不均勻的把屬性值分布到各個區間,有些區間包含許多數據,而另一些區間的數據極少,這樣會嚴重損壞建立的決策模型。等頻法雖然避免了上述問題的產生,卻可能將相同的數據值分到不同區間以滿足每個區間固定的數據個數。3基於聚類分析法,一維聚類的方法包括二個步驟,首先將連續屬性值用於聚類算法(K-Means)進行聚類,然后再將聚類得到的鏃進行處理,合並到一個鏃的連續屬性值並作同一標記,聚類分析的離散化也需要用戶指定簇的個數從而決定產生的區間數。 4.屬性構造,在數據挖掘過程中為了提取更有用的信息,挖掘更深層次的模式,提高挖掘結果的精度,我們需要利用已有的屬性構造出新的屬性,並加入到現有的屬性中。

5.小波基函數,小波基函數是一種具有局部支集函數,並且平均值為0,小波基函數有Haar小波基,db系列小波基.

 

4.4數據規約

  在大數據上進行復雜的數據分析和數據挖掘需要很長時間,數據規約產生更小,但是保持原有數據完整性的新數據集,在規約后的數據集上進行分析和數據挖掘將更有效率。數據規約的意義在於,降低無效,錯誤數據對建模的影響,提高建模的准確性,少量且代表性的數據將大幅度縮減數據挖掘所需要的時間。降低數據存儲的成本。

4.1屬性規約

  屬性規約通過屬性合並來創建屬性維數,或者直接通過刪除不相關的屬性來減少數據維度,從而提高數據挖掘的效率,降低計算成本,屬性規約的目標是尋找出最少的屬性子集並確保新數據子集的概率分布,盡肯能接近數據概率分布。

合並屬性:將一些就屬性合並為新屬性

逐步向前選擇:從一個空屬性集開始,每次從原來的屬性集合中選擇一個當前最優的屬性添加到當前屬性子集中。直到無法選擇出最優屬性或者滿足一定閾值約束為止。

逐步向后選擇:從一個全屬性開始,每次從當前屬性子集中選擇一個當前最差的屬性並將其當前屬性子集中消去,直到無法選擇出最差屬性為止或者滿足一定閾值約束為止。

決策樹歸納:利用決策樹的歸納方法初始數據進行分類歸納學習,獲得一個初始決策樹,所有沒有出現在這個決策樹上的屬性局可以認為無關屬性,因此將這些屬性從初始集合中刪除,就可以獲取一個較優的屬性子集。

主成分分析:用較少的變量去解釋原始數據中大部分變量,即將許多相關性很高的變量轉換成彼此相互獨立或者不相關的變量。

 

 4.2數值規約

  數值規約指通過選擇代替的,較小的數據來減少數據量,包括參數方法包括參數方法和無參數方法兩類。有參數方法是使用一個模型來評估數據,只需要存放參數,而不是存放實際數據。無參數方法就是需要存放實際數據。

 

 

5.挖掘建模

  數據挖掘目標和數據形式可以建立分類與預測,聚類分析,關聯規則,時序模式和偏差檢測等模型,幫助企業提取數據中蘊含的商業價值,提高企業的競爭力。

5.1分類與預測

  分類和預測是預測問題的兩種主要類型,分類主要是預測分類標號,離散屬性,而預測主要是建立連續值函數模型,預測給定自變量對應的因變量的值。

分類是構造一個分類模型,輸入樣本的屬性值,輸出對應的類別,將每個樣本映射到預先定義好的類別。分類建模建立在一有類標記得數據集上,模型在已有樣本上准備可方便的計算,所以分類屬於有監督的學習。

預測是指建立二種或者二種以上變量相互間依賴的函數模型,進行預測或者控制。

實現過程:分類算法有二步,第一步學習步,通過歸納分析訓練樣本集建立分類模型得到分類規則,第二步分類步,先用已知的測試樣本集評估分類的准確率,如果准備率是可以接受的,則使用該模型對未知標號的待測樣本進行預測。預測模型的實現也有二步,第一步通過訓練集建立預測屬性的函數模型,第二步在模型通過檢測后進行預測或者控制。

 分類與預測算法

1回歸分析,確定預測屬性數值型與其他變量相互依賴的定量關系最常用方法。包括線性回歸,非線性回歸,Logistic回歸,嶺回歸,主成分回歸,偏最小二乘歸等模型。

2決策樹,采用自頂而下的遞歸方式,在內部節點進行屬性值比較,並根據不同的屬性值,從該節點向下分支,最終得到的節點是學習划分的類。

3人工神經網絡,是一種模仿大腦神經網絡結構和功能而建立的信息處理系統,表示神經網絡的輸入與輸出變量之間關系模型。

4貝葉斯網絡,又信度網絡,是Bayes方法的拓展,是目前不確定知識表達和推理領域最有效的理論模型之一。

5支持向量機是一種通過某種非線性映射,把低維的線性可分,在高維空間進行線性分析的算法。

 

5.2聚類分析

  聚類分析是在沒有給定划分類別的情況下,根據數據相似度進行樣本分組的一種方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM