數據挖掘(第2版) 課件 王朝霞 第4、5章 回歸、聚類_第1頁
數據挖掘(第2版) 課件 王朝霞 第4、5章 回歸、聚類_第2頁
數據挖掘(第2版) 課件 王朝霞 第4、5章 回歸、聚類_第3頁
數據挖掘(第2版) 課件 王朝霞 第4、5章 回歸、聚類_第4頁
數據挖掘(第2版) 課件 王朝霞 第4、5章 回歸、聚類_第5頁
已閱讀5頁,還剩97頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

高級大數據人才培養叢書之一,大數據挖掘技術與應用數據挖掘(第二版)第四章回歸of592高級大數據人才培養叢書之一,大數據挖掘技術與應用回歸是一種基于統計原理,對大量統計數據進行數學處理,并確定變量(或屬性)之間的相關關系,建立一個相關性的回歸方程(函數表達式),并加以外推,用于預測今后的因變量的變化的方法?;貧w分析本質上是一種因素分析的方法。根據因變量和自變量的函數表達式分為:線性回歸分析、非線性回歸分析。根據因變量和自變量的個數可分為:一元回歸分析、多元回歸分析、邏輯回歸分析和其它回歸分析等。More應用到市場營銷的各個方面,如客戶尋求、保持和預防客戶流失活動、產品生命周期分析、銷售趨勢預測及有針對性的促銷活動等。4.1回歸基本概念第四章回歸4.2一元回歸分析4.3多元線性回歸分析3.1數據挖掘概述4.5其他回歸分析習題4.4邏輯回歸分析of593高級大數據人才培養叢書之一,大數據挖掘技術與應用4.6實戰:獲得最大有效率時的藥物用量回歸分析是研究中常用的一種統計方法,即研究變量之間的關系并對其構建模型。對于社會經濟現象,很難確定因變量和自變量之間的關系,因為它們大多是隨機的,只有通過大量的觀察統計,才能找出其中的規律,隨機分析是利用統計學原理描述隨機變量關系的一種方法?;貧w分析可簡單理解為信息分析與預測,信息即統計數據,分析即對信息進行數據處理,預測就是加以外推,也就是適當擴大已有自變量取值范圍,并承認該回歸方程在該擴大的定義域內成立,然后就可以在該定義域上取值進行“未來預測”。當然,對回歸方程可以進行有效的控制。因此,回歸分析主要解決下面兩方面的問題:1)確定變量之間是否存在相關關系,若存在,則找出數學表達式。2)根據一個或幾個變量的值,預測或控制另一個或幾個變量的值,且要估計這種控制或預測或以達到何種精確度。4.1.1回歸分析的定義of5944.1回歸基本概念第四章回歸

4.1.2回歸分析步驟of5954.1回歸基本概念第四章回歸為使回歸分析方程較能符合實際,首先應盡可能判斷自變量的可能種類和個數,并在觀察事物發展規律的基礎上定性回歸方程的可能類型;其次,力求掌握較充分的高質量統計數據,再運用統計方法,利用數學工具和相關軟件,從定量方面計算或改進定性判斷;另外,從本質上講,回歸分析是一種統計分析,回歸分析的結果和檢驗結果只有統計意義。4.1.2回歸分析要注意的問題of5964.1回歸基本概念第四章回歸4.1回歸基本概念第四章回歸4.2一元回歸分析4.3多元線性回歸分析3.1數據挖掘概述4.5其他回歸分析習題4.4邏輯回歸分析of597高級大數據人才培養叢書之一,大數據挖掘技術與應用4.6實戰:獲得最大有效率時的藥物用量

4.2.1一元回歸分析的模型設定of5984.2一元回歸分析第四章回歸

4.2.1一元回歸分析的模型設定of5994.2一元回歸分析第四章回歸在進行消費行為研究中,從一個地區抽取20個不同家庭的月可支配收入和消費數據,如下表所示:例4.1of59104.2一元回歸分析第四章回歸序號消費(百元)可支配收入(百元)序號消費(百元)可支配收入(百元)172.310011132.3189292.5112012149.82143135.220013115.318849413014132.21975163.524015149.5206610011416100.25142786.51261779.61128142.362131890.2134912015619116.516910112.5616720126170以可支配收入為橫軸、消費為縱軸畫出樣本數據的散點圖例4.1of59114.2一元回歸分析第四章回歸從圖中可以看出,可支配收入和消費之間存在明顯的線性關系。但所有點并不在一條直線上,表明二者之間的關系是一種隨機關系。

4.2.1一元回歸分析的模型設定of59124.2一元回歸分析第四章回歸

4.2.2一元線性回歸模型的參數估計of59134.2一元回歸分析第四章回歸

4.2.3基本假設下OLS估計的統計性質of59144.2一元回歸分析第四章回歸

4.2.3基本假設下OLS估計的統計性質of59154.2一元回歸分析第四章回歸(4.4)

4.2.4誤差方差估計of59164.2一元回歸分析第四章回歸首先對模型參數是否顯著不為0進行檢驗,如果檢驗結果表明模型斜率參數顯著不為0,則表明和之間具有線性關系,否則說明兩個變量之間沒有顯著的線性關系。由于檢驗是對每個參數分別進行的,因此稱為回歸系數檢驗。在原假設下,檢驗統計量服從分布,即4.2.5回歸系數檢驗(t檢驗)of59174.2一元回歸分析第四章回歸設定顯著性水平,通常選擇0.05或0.01作為閾值。通過查找t分布表,找到對應顯著性水平和自由度的雙側檢驗的臨界值。將計算得到的檢驗統計量與臨界值進行比較。判斷顯著性:如果計算得到的檢驗統計量的絕對值大于臨界值,則拒絕原假設,認為回歸系數顯著不為零。如果計算得到的檢驗統計量的絕對值小于臨界值,則不能拒絕原假設,不能認為回歸系數顯著不為零。

4.2.6擬合優度和模型檢驗(F檢驗)of59184.2一元回歸分析第四章回歸4.1回歸基本概念第四章回歸4.2一元回歸分析4.3多元線性回歸分析3.1數據挖掘概述4.5其他回歸分析習題4.4邏輯回歸分析of5919高級大數據人才培養叢書之一,大數據挖掘技術與應用4.6實戰:獲得最大有效率時的藥物用量多元回歸分析預測法,是指通過對兩上或兩個以上的自變量與一個因變量的相關分析,建立預測模型進行預測的方法。當自變量與因變量之間存在線性關系時,稱為多元線性回歸分析。多元回歸分析可以達到以下目的:1.了解因變量和自變量之間的關系是否存在,以及這種關系的強度。也就是以自變量所解釋的因變量的變異部分是否顯著,且因變量變異中有多大部分可以由自變量來解釋。2.估計回歸方程,求在自變量已知的情況下因變量的理論值或預測值,達到預測目的。3.評價特定自變量對因變量的貢獻,也就是在控制其他自變量不變的情況下,該處變量的變化所導致的因變量變化情況。4.比較各處變量在擬合的回歸方程中相對作用大小,尋找最重要的和比較重要的自變量。4.3.1多元線性回歸模型of59204.3多元線性回歸分析第四章回歸

4.3.1多元線性回歸模型of59214.3多元線性回歸分析第四章回歸建立多元性回歸模型時,為了保證回歸模型具有優良的解釋能力和預測效果,應首先注意自變量的選擇,其準則是:1.自變量對因變量必須有顯著的影響,并呈密切的線性相關;2.自變量與因變量之間的線性相關必須是真實的,而不是形式上的;3.自變量之間應具有一定的互斥性,即自變量之間的相關程度不應高于自變量與因變量之因的相關程度;4.自變量應具有完整的統計數據,其預測值容易確定。4.3.1多元線性回歸模型of59224.3多元線性回歸分析第四章回歸

4.3.2多元線性回歸模型的假定of59234.3多元線性回歸分析第四章回歸

4.3.3多元線性回歸模型的參數估計of59244.3多元線性回歸分析第四章回歸

4.3.3多元線性回歸模型的參數估計of59254.3多元線性回歸分析第四章回歸

4.3.3多元線性回歸模型的參數估計of59264.3多元線性回歸分析第四章回歸3.估計參數的統計性質(1)線性性(2)無偏性(3)最小方差性4.3.3多元線性回歸模型的參數估計of59274.3多元線性回歸分析第四章回歸

4.3.4顯著性檢驗of59284.3多元線性回歸分析第四章回歸1.變量選擇問題選擇合適的變量用于建立一個“最優”的回歸方程(1)逐步回歸法(Stepwise)(2)向前引入法(Forward)(3)向后剔除法(Backward)。4.3.5回歸變量的選擇與逐步回歸of59294.3多元線性回歸分析第四章回歸2.逐步回歸分析(1)基本思想逐個引入自變量。每次引入對Y影響最顯著的自變量,并對方程中的老變量逐個進行檢驗,把變為不顯著的變量逐個從方程中剔除掉,最終得到的方程中既不漏掉對Y影響顯著的變量,又不包含對Y影響不顯著的變量。4.3.5回歸變量的選擇與逐步回歸of59304.3多元線性回歸分析第四章回歸2.逐步回歸分析(2)篩選的步驟①從回歸方程中考慮剔除不顯著變量。②從不在方程中的變量考慮引入新變量。4.3.4回歸變量的選擇與逐步回歸of59314.3多元線性回歸分析第四章回歸4.1回歸基本概念第四章回歸4.2一元回歸分析4.3多元線性回歸分析3.1數據挖掘概述4.5其他回歸分析習題4.4邏輯回歸分析of5932高級大數據人才培養叢書之一,大數據挖掘技術與應用4.6實戰:獲得最大有效率時的藥物用量邏輯回歸模型用于分析二分類或有序的因變量與自變量間的關系,用自變量去預測因變量在給定某個值(如1或0)的概率。當因變量取很多值時,如等距尺度或比例尺度的數據類型時,通常使用簡單回歸模型,而不使用邏輯回歸模型。邏輯回歸的模型使用的sigmoid函數,又稱邏輯回歸函數。sigmoid函數可以輕松處理0/1分類問題。邏輯回歸方程為第組個別事件概率(Pi)的對數(logit)轉換,且轉換后的邏輯回歸模型是解釋變量矩陣的一條直線方。對數線性模型是將列聯表中每格的概率(或理論概率)取對數后,分解參數獲得的,而邏輯回歸模型是將概率比取對數后,再進行參數化后獲得的。4.4.1邏輯回歸模型of59334.4邏輯回歸分析第四章回歸

4.4.2logit變換of59344.4邏輯回歸分析第四章回歸系數是未知的,需要通過有效的訓練數據估計這些參數。在上面的小節中,我們使用最小二乘估計線性模型中的未知系數。在邏輯回歸中,雖然也可以用(非線性)最小二乘估計擬合模型,但由于極大似然估計有更好的統計性質,所以一般采用極大似然估計估計系數。極大似然估計的思想是通過尋找使得給定觀測數據發生概率最大的參數值,來擬合統計模型。對于Logistic回歸模型,極大似然估計的目標是找到使似然函數最大化的參數值,從而得到最佳的擬合效果。極大似然方法在擬合非線性模型上是一種常見的方法,在線性回歸中,最小二乘法是極大似然方法的特例。4.4.3估計回歸系數of59354.4邏輯回歸分析第四章回歸

4.4.4Logistic分布of59364.4邏輯回歸分析第四章回歸

4.4.5列連表的Logistic回歸模型of59374.4邏輯回歸分析第四章回歸

4.4.5列連表的Logistic回歸模型of59384.4邏輯回歸分析第四章回歸4.1回歸基本概念第四章回歸4.2一元回歸分析4.3多元線性回歸分析3.1數據挖掘概述4.5其他回歸分析習題4.4邏輯回歸分析of5939高級大數據人才培養叢書之一,大數據挖掘技術與應用4.6實戰:獲得最大有效率時的藥物用量對于一個回歸方程,如果自變量的指數大于1,那么它就是多項式回歸方程。如果自變量只有一個時,稱為一元多項式回歸;如果自變量有多個時,稱為多元多項式回歸。在一元回歸分析中,如果依變量y與自變量x的關系為非線性的,但是又找不到適當的函數曲線來擬合,則可以采用一元多項式回歸。在這種回歸技術中,最佳擬合線不是直線。而是一個用于擬合數據點的曲線。多項式回歸的最大優點就是可以通過增加x的高次項對實測點進行逼近,直至滿意為止。事實上,多項式回歸可以處理相當多的非線性問題,它在回歸分析中占有重要的地位,因為任一函數都可以分段用多項式來逼近。因此,在通常的實際問題中,不論依變量與其他自變量的關系如何,我們總可以用多項式回歸來進行分析。多項式回歸問題可以通過變量轉換化為多元線性回歸問題來解決。多項式回歸在回歸分析中很重要,因為任意一個函數至少在一個較小的范圍內都可以用多項式任意逼近,因此在比較復雜的實際問題中,有時不問y與諸元素的確切關系如何,而用回歸分析進行分析運算。4.5.1多項式回歸(PolynomialRegression)of59404.5其他回歸分析第四章回歸在處理多個自變量時,我們可以使用這種形式的回歸。在這種技術中,自變量的選擇是在一個自動的過程中完成的,其中包括非人為操作。這一壯舉是通過觀察統計的值,如R-square,t-stats和AIC指標,來識別重要的變量。逐步回歸通過同時添加/刪除基于指定標準的協變量來擬合模型。下面列出了一些最常用的逐步回歸方法:標準逐步回歸法做兩件事情。即增加和刪除每個步驟所需的預測。向前選擇法從模型中最顯著的預測開始,然后為每一步添加變量。向后剔除法與模型的所有預測同時開始,然后在每一步消除最小顯著性的變量。這種建模技術的目的是使用最少的預測變量數來最大化預測能力。這也是處理高維數據集的方法之一。4.5.2逐步回歸(StepwiseRegression)of59414.5其他回歸分析第四章回歸

4.5.3嶺回歸(RidgeRegression)of59424.5其他回歸分析第四章回歸套索回歸類似于嶺回歸,(LeastAbsoluteShrinkageandSelectionOperator,Lasso)也會懲罰回歸系數的絕對值大小。此外,它能夠減少變化程度并提高線性回歸模型的精度。Lasso回歸與Ridge回歸有一點不同,它使用的懲罰函數是絕對值,而不是平方。這導致懲罰(或等于約束估計的絕對值之和)值使一些參數估計結果等于零。使用懲罰值越大,進一步估計會使得縮小值趨近于零。這將導致我們要從給定的n個變量中選擇變量。除常數項以外,這種回歸的假設與最小二乘回歸類似;它收縮系數接近零(等于零),這確實有助于特征選擇;這是一個正則化方法,使用的是L1正則化。如果預測的一組變量是高度相關的,Lasso會選出其中一個變量并且將其它的收縮為零。4.5.4套索回歸(LassoRegression)of59434.5其他回歸分析第四章回歸ElasticNet是Lasso和Ridge回歸技術的混合體。它使用L1來訓練并且L2優先作為正則化矩陣。當有多個相關的特征時,ElasticNet是很有用的。Lasso會隨機挑選他們其中的一個,而ElasticNet則會選擇兩個。Lasso和Ridge之間的實踐的優點是允許ElasticNet繼承循環狀態下Ridge的一些穩定性。在高度相關變量的情況下,ElasticNet支持群體效應;同時ElasticNet選擇變量的數目沒有限制;它可以承受雙重收縮。另外ElasticNet是一個不斷迭代的過程,其永遠可以產生有效解。由于此過程中不會產生交叉的路徑,所以產生的解都相當不錯,同時ElasticNet的收斂速度也很快。4.5.5彈性網絡(ElasticNet)of59444.5其他回歸分析第四章回歸4.1回歸基本概念第四章回歸4.2一元回歸分析4.3多元線性回歸分析3.1數據挖掘概述4.5其他回歸分析習題4.4邏輯回歸分析of5945高級大數據人才培養叢書之一,大數據挖掘技術與應用4.6實戰:獲得最大有效率時的藥物用量表中給出了一個由23個樣本組成的藥物用量和有效率關系的數據。數據中自變量(屬性)為藥物用量,單位為mg。因變量(標簽)為有效率。獲得最大有效率時的藥物用量of59464.6實戰:第四章回歸藥物用量(mg)1.54.47.29.210.712.413.316.017.619.320.023.2有效率(%)3.22.63.73.94.59.37.824.098.096.497.399.2藥物用量(mg)25.826.128.329.732.634.338.140.142.344.344.9有效率(%)98.799.274.265.649.936.812.78.35.62.72.24.6.1使用Python創建藥物用量和有效率的NumPy數組of59474.6實戰:第四章回歸datas=np.array([

[1.5,3.2],[4.4,2.6],[7.2,3.7],[9.2,3.9],[10.7,4.5],[12.4,9.3],[13.3,7.8],

[16.0,24],[17.6,98.0],[19.3,96.4],[20.0,97.3],[23.2,99.2],[25.8,98.7],

[26.1,99.2],[28.3,74.2],[29.7,65.6],[32.6,49.9],[34.3,36.8],[38.1,12.7],

[40.1,8.3],[42.3,5.6],[44.3,2.7],[44.9,2.2]

],dtype=np.float32)4.6.2繪制出散點圖of59484.6實戰:第四章回歸plt.scatter(datas[:8,0],datas[:8,1],c='green',s=70,alpha=0.8)

plt.scatter(datas[8:14,0],datas[8:14,1],c='red',s=70,alpha=0.7)

plt.scatter(datas[14:18,0],datas[14:18,1],c='orange',s=70,alpha=0.8)

plt.scatter(datas[18:,0],datas[18:,1],c='blue',s=70,alpha=0.6)

plt.xlabel("藥物用量(mg)")

plt.ylabel("有效率(%)")

#支持中文

plt.rcParams['font.sans-serif']=['SimHei']#用來正常顯示中文標簽

plt.rcParams['axes.unicode_minus']=False#用來正常顯示負號

plt.show()4.6.2繪制出散點圖of59494.6實戰:第四章回歸當藥物用量小于17mg時藥物用量和有效率呈正相關,但有效率總體處在較低水平;當藥物用量在17mg到27mg時,有效率基本不隨藥物用量的增加而變化,且保持在較高水平;當藥物用量在27mg和35mg時,隨著藥物用量的增加,有效率急劇下降;當藥物用量大于35mg時,有效率繼續降低,并維持在較低水平。4.6.3用scikit-learn機器學習庫計算回歸模型of59504.6實戰:第四章回歸使用非線性方程,即多項式回歸,從而只使用一個回歸方程就可以對所有樣本進行擬合。ploy_reg=PolynomialFeatures(degree=2)

xs=ploy_reg.fit_transform(datas[:,0].reshape(-1,1))

lr=linear_model.LinearRegression()

lr.fit(xs,datas[:,1].reshape(-1,1))

print(lr.coef_)

print(ercept_)4.1回歸基本概念第四章回歸4.2一元回歸分析4.3多元線性回歸分析3.1數據挖掘概述4.5其他回歸分析習題4.4邏輯回歸分析of5951高級大數據人才培養叢書之一,大數據挖掘技術與應用4.6實戰:用回歸分析方法給自己的房子定價1.調查某市出租車使用年限和該年支出維修費用(萬元),得到數據如下:of4352習題第四章回歸使用年限(1)求線性回歸方程;(2)由(1)中結論預測第10年所支出的維修費用:

()使用年限x23456維修費用y2.23.85.56.57.02.以下是某地搜集到的新房屋的銷售價格y和房屋的面積x的數據:of4353習題第四章回歸(1)畫出數據對應的散點圖;(2)求線性回歸方程,并在散點圖中加上回歸直線;(3)據(2)的結果估計當房屋面積為150m2時的銷售價格.(4)求第2個點的殘差。智能硬件大數據免費托管平臺環境大數據開放平臺免費大數據APP推薦運用大數據,精彩你生活劉鵬看未來云創大數據我的PM2.5同聲譯微信公眾號推薦完善的課程體系:大數據方向、人工智能方向。面向理論與實踐,分為本科院校、專科院校、高職院校。感謝聆聽高級大數據人才培養叢書之一,大數據挖掘技術與應用數據挖掘(第二版)5.1什么是聚類分析?第五章

聚類5.2聚類方法分類5.3

k均值聚類5.4

層次聚類of4358高級大數據人才培養叢書之一,大數據挖掘技術與應用5.5密度聚類5.1

什么是聚類分析?第五章聚類簇:一個數據對象的集合。聚類是將對象集合中的對象分類到不同的類或者簇這樣的一個過程,使得同一個簇中的對象有很大的相似性,而不同簇間的對象有很大的相異性。簇內的相似性越大,簇間差別越大,聚類就越好。聚類結果的好壞取決于該聚類方法采用的相似性評估方法以及該方法的具體實現,聚類方法的好壞還取決與該方法是能發現某些還是所有的隱含模式。按照聚類的主要思路的不同,聚類可以分為:劃分聚類、層次聚類、基于密度的聚類、基于網格的聚類、基于模型的聚類。5.1

什么是聚類分析?第五章聚類聚類典型的應用市場銷售。幫助市場人員發現客戶中的不同群體,然后用這些知識來開展一個目標明確的市場計劃。保險。對購買了汽車保險的客戶,標識哪些有較高平均賠償成本的客戶。城市規劃。根據類型、價格、地理位置等來劃分不同類型的住宅。對搜索引擎返回的結果進行聚類,使用戶迅速定位到所需要的信息。對用戶感興趣的文檔(如用戶瀏覽過的網頁)聚類,從而發現用戶的興趣模式并用于信息過濾和信息主動推薦等服務。數據挖掘對聚類的典型要求:可伸縮性能夠處理不同類型的屬性能發現任意形狀的簇在決定輸入參數的時候,盡量不需要特定的領域知識;能夠處理噪聲和異常對輸入數據對象的順序不敏感能處理高維數據能產生一個好的、能滿足用戶指定約束的聚類結果結果是可解釋的、可理解的和可用的5.1

什么是聚類分析?第五章聚類5.2

第五章

聚類5.1什么是聚類分析?5.3

k均值聚類5.4

層次聚類of4362高級大數據人才培養叢書之一,大數據挖掘技術與應用5.5密度聚類聚類方法分類5.2

聚類方法分類第五章聚類按照聚類方法的主要思路的不同,聚類方法分為:劃分聚類層次聚類基于密度的聚類基于網格的聚類基于模型的聚類5.3

第五章

聚類5.1什么是聚類分析?5.2聚類方法分類5.4

層次聚類of4364高級大數據人才培養叢書之一,大數據挖掘技術與應用5.5密度聚類k均值聚類5.3

k均值聚類第五章聚類對于給定的數據集,劃分聚類方法首先創建一個初試劃分,然后采用一種迭代的重定位技術,嘗試通過對象在劃分間的移動來改進劃分,直到使評價聚類性能的評價函數的值達到最優為止。劃分聚類方法以距離作為數據集中不同數據間的相似性度量,將數據集劃分成多個簇。劃分聚類方法是最基本的聚類方法,屬于這樣的聚類方法、k中心點(k-medoids)等。有k均值(k-means)k中心點(k-medoids)5.3

k均值聚類第五章聚類劃分聚類方法的主要思想

給定一個包含n個數據對象的數據集,劃分聚類方法將數據對象的數據集進行k個劃分,每個劃分表示一個簇(類),并且k≤n,同時滿足兩個條件:每個簇至少包含一個對象,每個對象屬于且僅屬于一個簇。對于給定k,劃分聚類方法首先給出一個初始的劃分,然后采用一種迭代的重定位技術,嘗試通過對象在劃分間移動來改進劃分,使得每一次改進之后的劃分方案都較前一次更好。好的劃分是指同一簇中的對象之間盡可能“接近”,不同簇中的對象之間盡可能“遠離”。5.3

k均值聚類第五章聚類劃分聚類方法的評價函數評價函數著重考慮兩方面,即每個簇中的對象應該是緊湊的,各個簇間的對象的距離應該盡可能遠。實現這種考慮的一種直接方法就是觀察聚類C的類內差異w(C)和類間差異b(C)。類內差異衡量類內的對象之間的緊湊性,類間差異衡量不同類之間的距離。類內差異可以用距離函數來表示,最簡單的就是計算類內的每個對象點到它所屬類的中心的距離的平方和。類間差異定義為類中心之間距離的平方和。5.3

k均值聚類第五章聚類k均值聚類的算法思想(1)從包含n個數據對象的數據集中隨機的選擇k個對象,每個對象代表一個簇的平均值或質心或中心;(2)對剩余的每個數據對象點根據其與各個簇中心的距離,將它指派到最近的簇;(3)根據指派到簇的數據對象點,更新每個簇的中心;(4)重復指派和更新步驟,直到簇不發生變化,或直到中心不發生變化,或度量聚類質量的目標函數收斂。

5.3

k均值聚類第五章聚類k均值算法輸入:所期望的簇的數目k,包含n個對象的數據集D輸出:k個簇的集合①從D中任意選擇k個對象作為初始簇中心;②repeat③將每個點指派到最近的中心,形成k個簇;④重新計算每個簇的中心;⑤計算目標函數E;⑥until目標函數E不再發生變化或中心不再發生變化;5.3

k均值聚類第五章聚類Python實現對鳶尾花數據集k均值聚類可使用sklearn.cluster中的KMeans模型來實現k均值算法:sklearn.cluster.KMeans(n_clusters=8,init='k-means++',n_init=10,max_iter=300,tol=0.0001,precompute_distances='auto',n_jobs=1)n_clusters:整形,缺省值為8,擬打算生成的聚類數。init:簇質心初始值的選擇方式,有k-means++、random、以及一個ndarray三種可選值。n_init:用不同的初始化質心運行算法的次數,多運行幾次以選擇一個較好的聚類效果,默認是10precompute_distances:預計算距離,計算速度快但占用更多內存。5.3

k均值聚類第五章聚類KMeans模型的屬性cluster_centers_:輸出聚類的質心,數據形式是數組。labels_:輸出每個樣本點對應的類別。inertia_:float型,每個點到其簇的質心的距離的平方和KMeans模型的方法fit(X):在數據集X上進行k-means聚類。predict(X):對X中的每個樣本預測其所屬的類別。fit_predict(X):計算X的聚類中心,并預測X中每個樣本的所屬的類別,相當于先調用fit(X)再調用predict(X)。score(X[,y]):X中每一點到聚類中心的距離平方和的相反數。5.3

k均值聚類第五章聚類使用k-means對鳶尾花數據集聚類fromsklearn.datasetsimportload_irisfromsklearn.clusterimportKMeansimportmatplotlib.pyplotaspltimportnumpyasnpimportmatplotlibfromsklearn.cross_validationimporttrain_test_split#交叉驗證iris=load_iris()#加載數據

target=iris.target#提取數據集中的標簽(花的類別)set(target)#查看數據集中的標簽的不同值,{0,1,2}iris['feature_names']#查看數據的特征名['sepallength(cm)','sepalwidth(cm)','petallength(cm)','petalwidth(cm)']5.3

k均值聚類第五章聚類使用k-means對鳶尾花數據集聚類data=iris.data#提取數據集中的特征數據X=data[:,[0,2]]#提取第1列和第3列,即花萼與花瓣長度y=iris.target#獲取類別屬性數據label=np.array(y)#轉換數據類型index_0=np.where(label==0)#獲取類別為0的數據索引#按選取的兩個特征繪制散點plt.scatter(X[index_0,0],X[index_0,1],marker='o',color='red',edgecolors='k',label='label0')index_1=np.where(label==1)#獲取類別為1的數據索引plt.scatter(X[index_1,0],X[index_1,1],marker='*',color='purple',label='label1')5.3

k均值聚類第五章聚類使用k-means對鳶尾花數據集聚類index_2=np.where(label==2)#獲取類別為2的數據索引plt.scatter(X[index_2,0],X[index_2,1],marker='+',color='blue',label='label2')plt.xlabel('sepallength',fontsize=15)plt.ylabel('petallength',fontsize=15)plt.legend(loc='lowerright')plt.show()#顯示按鳶尾花數據集的兩個特征繪制的散點圖5.3

k均值聚類第五章聚類使用k-means對鳶尾花數據集聚類X_train,X_test,y_train,y_test=train_test_split(X,y,random_state=1)kms=KMeans(n_clusters=3)#構造k均值模型,設定聚類數為3kms.fit(X_train)#在數據集X_train上進行k-means聚類label_pred=kms.labels_#獲取聚類標簽#繪制k-means結果x0=X_train[label_pred==0]x1=X_train[label_pred==1]x2=X_train[label_pred==2]plt.scatter(x0[:,0],x0[:,1],color='red',marker='o',edgecolors='k',label='label0')5.3

k均值聚類第五章聚類使用k-means對鳶尾花數據集聚類plt.scatter(x1[:,0],x1[:,1],color='blue',marker='*',edgecolors='k',label='label1')plt.scatter(x2[:,0],x2[:,1],c="k",marker='+',label='label2')>>>plt.xlabel('sepallength',fontsize=15)>>>plt.ylabel('petallength',fontsize=15)>>>plt.legend(loc='lowerright')>>>plt.show()#顯示鳶尾花數據集k-means聚類的結果5.3

第五章

聚類5.1什么是聚類分析?5.2聚類方法分類5.3

k均值聚類of4377高級大數據人才培養叢書之一,大數據挖掘技術與應用5.5密度聚類k均值聚類5.3

k均值聚類5.4層次聚類5.4層次聚類第五章聚類層次聚類原理層次聚類是通過遞歸地對數據對象進行合并或者分裂,直到滿足某種終止條件為止。根據層次分解是自底向上(合并)還是自頂向下(分裂)形成,層次聚類方法分為凝聚型聚類方法和分裂型聚類方法。自底向上的凝聚層次聚類輸入:n個對象,終止條件簇的數目k輸出:k個簇1:將每個對象當成一個初始簇2:Repeat3:根據兩個簇中最近的數據點找到最近的兩個簇4:合并兩個簇,生成新的簇的集合5:Until達到定義的簇的數目5.4層次聚類第五章聚類使用AGNES算法將表格中的數據聚為2個簇。序號屬性1屬性21112123214225346357448455.4層次聚類第五章聚類使用AGNES算法將表格中的數據聚為2個簇。步驟最近的簇距離選取最近的兩個簇合并后的新簇11{1}、{2}{1,2}、{3}、{4}、{5}、{6}、{7}、{8}21{3}、{4}{1,2}、{3,4}、{5}、{6}、{7}、{8}31{5}、{6}{1,2}、{3,4}、{5,6}、{7}、{8}41{7}、{8}{1,2}、{3,4}、{5,6}、{7,8}51{1、2}、{3、4}{1,2,3,4}、{5,6}、{7,8}61{5、6}、{7、8}

{1,2,3,4}、{5,6,7,8}5.4層次聚類第五章聚類自頂向下的分裂層次聚類首先將所有對象置于一個簇中,然后逐漸細分為越來越小的簇,直到每個對象自成一簇,或者達到了某個終止條件,例如達到了某個希望的簇數目,或者兩個最近的簇之間的距離超過了某個閾值。經典的分裂層次聚類算法以DIANA算法為代表。簇間距離度量方法1)簇間最小距離是指用兩個簇中所有數據點的最近距離代表兩個簇的距離。2)簇間最大距離是指用兩個簇所有數據點的最遠距離代表兩個簇的距離。5.4層次聚類第五章聚類自頂向下的分裂層次聚類簇間距離度量方法3)簇間均值距離是指用兩個簇各自中心點之間的距離代表兩個簇的距離。4)簇間平均距離用兩個簇所有數據點間的距離的平均值代表兩個簇的距離。最小最大度量代表了簇間距離度量的兩個極端,它們趨向對離群點或噪聲數據過分敏感。使用均值距離和平均距離是對最小和最大距離之間的一種折中方法,而且可以克服離群點敏感性問題。盡管均值距離計算簡單,但是平均距離也有它的優勢,因為它既能處理數值數據又能處理分類數據。5.4層次聚類第五章聚類Python實現簇間最大距離的凝聚層次聚類算法importpandasaspdimportnumpyasnpnp.random.seed(150)features=['f1','f2','f3']#設置特征的名稱labels=["s0","s1","s2","s3","s4"]#設置數據樣本編號X=np.random.random_sample([5,3])*10#生成一個(5,3)的數組#通過pandas將數組轉換成一個DataFrame類型df=pd.DataFrame(X,columns=features,index=labels)5.4層次聚類第五章聚類Python實現簇間最大距離的凝聚層次聚類算法print(df)#查看生成的數據運行上述代碼得到的輸出結果如下:f1f2f3s09.0858392.5797168.776551s17.3896556.9807655.172086s29.5210969.1364450.781745s37.8232051.1366546.408499s40.7976302.3196603.8595155.4層次聚類第五章聚類Python實現簇間最大距離的凝聚層次聚類算法下面使用scipy庫中spatial.distance子模塊下的pdist函數來計算距離矩陣,將矩陣用一個DataFrame對象進行保存。pdist:計算兩兩樣本間的歐氏距離,返回的是一個一維數組squareform:將數組轉成一個對稱矩陣fromscipy.spatial.distanceimportpdist,squareformdist_matrix=pd.DataFrame(squareform(pdist(df,metric='euclidean')),columns=labels,index=labels)print(dist_matrix)#查看距離矩陣在上述代碼中,基于樣本的特征f1、f2和f3,使用歐幾里得距離計算了兩兩樣本間的距離,運行上述代碼得到的結果如下:5.4層次聚類第五章聚類Python實現簇間最大距離的凝聚層次聚類算法

s0s1s2s3s4s00.0000005.93619810.3487723.0470239.640502s15.9361980.0000005.3352695.9891848.179458s210.3487725.3352690.0000009.92672511.490870s33.0470235.9891849.9267250.0000007.566738s49.6405028.17945811.4908707.5667380.0000005.4層次聚類第五章聚類Python實現簇間最大距離的凝聚層次聚類算法下面通過scipy的linkage函數,獲取一個以簇間最大距離作為距離判定標準的關系矩陣。fromscipy.cluster.hierarchyimportlinkage#linkage()以簇間最大距離作為距離判斷標準,得到一個關系矩陣#linkage()返回長度為n-1的數組,其包含每一步合并簇的信息,n為數據集的樣本數row_clusters=linkage(pdist(df,metric='euclidean'),method="complete")print(row_clusters)#輸出合并簇的過程信息輸出結果如下:5.4層次聚類第五章聚類Python實現簇間最大距離的凝聚層次聚類算法輸出結果如下:[[0.3.3.047022522.][1.2.5.335268652.][4.5.9.64050243.][6.7.11.490869655.]]每一行的格式是[idx1,idx2,dist,sample_count]。在第一步[0.3.3.047022522.]中,linkage()決定合并簇0和簇3,因為他們之間的距離為3.04702252,為當前最短距離。這里的0和3分別代表簇在數組中的下標。在這一步中,一個具有兩個實驗樣本的簇(該簇在數組中的下標為5)誕生了。5.4層次聚類第五章聚類Python實現簇間最大距離的凝聚層次聚類算法#將關系矩陣轉換成一個DataFrame對象clusters=pd.DataFrame(row_clusters,columns=["label1","label2","distance","samplesize"],index=["cluster%d"%(i+1)foriinrange(row_clusters.shape[0])])print(clusters)輸出結果如下:label1label2distancesamplesizecluster10.03.03.0470232.0cluster21.02.05.3352692.0cluster34.05.09.6405023.0cluster46.07.011.4908705.0結果的第一列表示合并過程中新生成的簇,第二列和第三列表示被合并的兩個簇,第四列表示的是兩個簇的歐氏距離,最后一列表示的是合并后的簇中的樣本的數量。第五章

聚類5.1什么是聚類分析?5.2聚類方法分類5.3

k均值聚類of4390高級大數據人才培養叢書之一,大數據挖掘技術與應用5.4層次聚類5.5密度聚類5.5

密度聚類第五章聚類密度聚類原理基于密度的聚類方法以數據集在空間分布上的稠密程度為依據進行聚類,無需預先設定簇的數量,特別適合對于未知內容的數據集進行聚類?;诿芏鹊木垲惙椒ǖ拇硭惴镈BSCAN(Density-BasedSpatialClusteringofApplicationswithNoise,具有噪聲的基于密度的聚類)算法?;诿芏染垲惙椒ǖ幕舅枷胧牵褐灰粋€區域中的點的密度大于某個閾值,就把它加到與之相近的聚類中去,對于簇中每個對象,在給定的半徑的ε鄰域中至少要包含最小數目(MinPts)個對象。5.5

密度聚類第五章聚類DBSCAN聚類算法所用到的基本術語對象的

鄰域:給定對象半徑為

內的區域稱為該對象的

鄰域。核心對象:如果給定對象

鄰域內的樣本點數大于等于MinPts,則稱該對象為核心對象。如下圖中,設定

=1、MinPts=5,q是一個核心對象。MinPts:數據對象的

鄰域中至少包含的對象數目。直接密度可達:如果p在q的

鄰域內,而q是一個核心對象,則稱對象p從對象q出發是直接密度可達的。5.5

密度聚類第五章聚類密度可達如果存在一個對象鏈p1,…,pn,q=p1,p=pn,使得pi+1是從pi關于

和MinPts是直接密度可達的,則對象p是從對象q關于

和MinPts密度可達的 密度相連如果存在對象o∈D,使對象p和q都是從o關于

和MinPts密度可達的

溫馨提示

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

評論

0/150

提交評論