版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、8.1Python常用數(shù)據(jù)分析工具8.2數(shù)據(jù)預(yù)處理8.3分類與預(yù)測8.5實戰(zhàn):信用評估習(xí)題8.4聚類分析of5618.6實戰(zhàn):影片推薦系統(tǒng)第八章數(shù)據(jù)挖掘8.1 Python常用數(shù)據(jù)分析工具第八章 數(shù)據(jù)挖掘of3128.1.1 NumpyNumPy提供了真正的數(shù)組功能,以及對數(shù)據(jù)進行快速處理的函數(shù)。NumPy 安裝: 方式一: pip install numpy 方式二: python setup.py installNumPy基本操作:# -*- coding: utf -8 -*import numpy as np #一般以np作為 numpy 的別名a = np.arra y ( 2, 8
2、, 5, 7 ) #創(chuàng)建數(shù)組print (a ) #輸出數(shù)組print(a :3) #引用前三個數(shù)字(切片)print (a.min () )#輸出a的最小值a .sort ()#將a的元素從小到大排序,此操作直接修改a,因此這時候a為2 , 5, 7 ,8b= np.array ( 1, 2, 3 , 4, 5, 6 ) #創(chuàng)建二維數(shù)組print (b*b) #輸出數(shù)組的平方陣,即(1, 4 , 9),(16, 25 , 36) 8.1 Python常用數(shù)據(jù)分析工具第八章 數(shù)據(jù)挖掘of3138.1.2 ScipyScipy 提供了真正的矩陣,以及大量基于矩陣運算的對象與函數(shù)。Scipy依賴于
3、NumPy,安裝它之前得先安裝NumPy。安裝好Scipy后,可以通過以下命令進行簡單測試。用Scipy求解非線性方程組和數(shù)值積分:# -*-coding:utf -8 -*#求解非線性方程組 2x1-x22=1, x12-x2=2from scipy.optimize import fsolve #導(dǎo)入求解方程組的函數(shù)#定義要求解的方程組def f(x): x1 = x0 x2 = x1 return 2*x1 - x2*2 - 1, x1*2 - x2 -2 result = fsolve( f ,1,1) #輸入初值1,1并求解print(result) #輸出結(jié)果:array ( 1.
4、 91963957,1.68501606)#數(shù)值積分from scipy import integrate #導(dǎo)入積分函數(shù)def g(x) : #定義被積函數(shù) return (1-x*2 )*0.5pi_2,err = integrate.quad (g,-1,1)#積分結(jié)果和誤差print (pi_2 * 2 ) #由微積分知識可知,積分結(jié)果為圓周率pi的一半8.1 Python常用數(shù)據(jù)分析工具第八章 數(shù)據(jù)挖掘of3148.1.3 PandasPandas是Python中強大的數(shù)據(jù)分析和探索工具,它包含高級的數(shù)據(jù)結(jié)構(gòu)和精巧的工具,使得在Python中處理數(shù)據(jù)非??焖俸秃唵巍andas的功能
5、非常強大,支持類似SQL Server數(shù)據(jù)庫的數(shù)據(jù)增、刪、查、改操作,并且?guī)в胸S富的數(shù)據(jù)處理函數(shù);支持時間序列分析;支持靈活處理缺失數(shù)據(jù)等。Pandas的安裝過程跟普通的第三方庫一樣,但如果需要讀取和寫入Excel數(shù)據(jù),還需要安裝xlrd庫(讀)和xlwt庫(寫)。其安裝方法如下: pip install xlrd 為Python添加讀取Excel數(shù)據(jù)的功能 pip install xlwt 為Python添加寫入Excel數(shù)據(jù)的功能8.1 Python常用數(shù)據(jù)分析工具第八章 數(shù)據(jù)挖掘of3158.1.3 PandasPandas基本的數(shù)據(jù)結(jié)構(gòu)是Series和DataFrame。Series是
6、序列,類似一維數(shù)組;DataFrame相當(dāng)于一張二維的表格,類似二維數(shù)組,它的每一列都是一個Series。為了定位Series中的元素,pandas 提供了Index對象,每個Series都會有一個對應(yīng)的Index,用來標(biāo)記不同的元素。Index的內(nèi)容不一定是數(shù)字,也可以是字母、漢字等。類似地,DataFrame相當(dāng)于多個有同樣Index的Series 的組合,每個Series都有唯一的表頭,用來標(biāo)識不同的Series。 Pandas簡例:# -*-coding:utf-8 -*import pandas as pd #通常用pd作為pandas 的別名。s = pd.Series(1, 2,
7、 3, index= a,b,c)#創(chuàng)建一個序列sd= pd.DataFrame(1,2 ,3,4 ,5,6, columns=a,b,c ) #創(chuàng)建一個表d2 = pd.DataFrame(s) #也可以用已有的序列來創(chuàng)建表格d.head() #預(yù)覽前5行數(shù)據(jù)d.describe() #數(shù)據(jù)基本統(tǒng)計量#讀取文件,注意文件的存儲路徑不能有中文,否則,讀取可能出錯pd.read_excel(data.xls) #讀取Excel文件,創(chuàng)建DataFrame pd.read_csv(data.csv,encoding = utf -8)#讀文本格式數(shù)據(jù),encoding指定編碼8.1 Python常
8、用數(shù)據(jù)分析工具第八章 數(shù)據(jù)挖掘of3168.1.4 Scikit-LearnScikit-Learn是Python中強大的機器學(xué)習(xí)工具包,它提供了完善的機器學(xué)習(xí)工具箱,包括數(shù)據(jù)預(yù)處理、分類、回歸、聚類、預(yù)測和模型分析等。Scikit-Learn依賴于NumPy、Scipy和Matplotlib,安裝方法與普通第三方庫的安裝類似。創(chuàng)建一個機器學(xué)習(xí)模型:# -*-coding:utf-8 -*from sklearn.linear_model import LinearRegression #導(dǎo)入線性回歸模型model = LinearRegression() #建立線性回歸模型print(mod
9、el)1)所有模型提供的接口model.fit():訓(xùn)練模型,對于監(jiān)督模型是fit(X, y),對于非監(jiān)督模型是fit(X)。2)監(jiān)督模型提供的接口model.predict(X_new):預(yù)測新樣本。model.predict_proba(X_new):預(yù)測概率,僅對某些模型有用(如LR)。model.score ():得分越高,擬合越好。3)非監(jiān)督模型提供的接口model.transform():從數(shù)據(jù)中學(xué)到新的“基空間”。model.fit_transform():從數(shù)據(jù)中學(xué)到新的基并將這個數(shù)據(jù)按照這組“基”進行轉(zhuǎn)換。8.1 Python常用數(shù)據(jù)分析工具第八章 數(shù)據(jù)挖掘of3178.1.
10、4 Scikit-LearnScikit-Learn本身提供了一些實例數(shù)據(jù),比較常見的有安德森鶯尾花卉數(shù)據(jù)集、手寫圖像數(shù)據(jù)集等。Scikit-Learn簡例:# -*-coding:utf-8 -*from sklearn import datasets #導(dǎo)入數(shù)據(jù)集iris = datasets.load_iris() #加載數(shù)據(jù)集print(iris.data.shape) #查看數(shù)據(jù)集大小from sklearn import svm #導(dǎo)入SVM模型clf = svm.LinearSVC() #建立線性SVM分類器clf.fit(iris.data,iris.target) #用數(shù)據(jù)訓(xùn)
11、練模型clf.predict(3.6,5.9,1.4,2.35) #訓(xùn)練好模型之后,輸入新的數(shù)據(jù)進行預(yù)測clf.coef_ #查看訓(xùn)練好模型的參數(shù)8.1Python常用數(shù)據(jù)分析工具8.2數(shù)據(jù)預(yù)處理8.3分類與預(yù)測8.5實戰(zhàn):信用評估習(xí)題8.4聚類分析of5688.6實戰(zhàn):影片推薦系統(tǒng)第八章數(shù)據(jù)挖掘8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of319在實際的數(shù)據(jù)挖掘中,海量的原始數(shù)據(jù)中存在大量信息不完整(有缺失值)、信息表達不一致、有異常(受噪聲影響)的數(shù)據(jù),無法直接進行數(shù)據(jù)挖掘,或挖掘結(jié)果差強人意。為了提高數(shù)據(jù)挖掘的質(zhì)量,產(chǎn)生了數(shù)據(jù)預(yù)處理(Data Preprocessing)技術(shù)。統(tǒng)計發(fā)現(xiàn),在數(shù)據(jù)挖
12、掘的過程中,數(shù)據(jù)預(yù)處理工作量占到了整個過程的60%。數(shù)據(jù)預(yù)處理有多種方法:數(shù)據(jù)清理(Data Cleaning)、數(shù)據(jù)集成(Data Integration)、數(shù)據(jù)變換(Data Transformation)等。這些數(shù)據(jù)預(yù)處理技術(shù)在數(shù)據(jù)挖掘之前使用,大大提高了數(shù)據(jù)挖掘模式的質(zhì)量,降低了實際挖掘所需要的時間。8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of31108.2.1 數(shù)據(jù)清洗數(shù)據(jù)清理是進行數(shù)據(jù)預(yù)處理的首要方法,它通過識別或刪除離群點來光滑噪聲數(shù)據(jù),并填補缺失值,從而“清理”數(shù)據(jù)。數(shù)據(jù)清理的主要任務(wù)是處理缺失值、光滑噪聲數(shù)據(jù)。1. 處理缺失值處理缺失值通常包括以下幾類方法:(1)刪除元組(2)人工
13、填寫缺失值(3)中心度量填補(4)多重填補(5)使用最可能的值填補8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of31118.2.1 數(shù)據(jù)清洗 2. 光滑噪聲數(shù)據(jù)光滑噪聲數(shù)據(jù)主要有以下幾種方法:(1)分箱。其主要思想為每一個數(shù)據(jù)與它的“近鄰”數(shù)據(jù)應(yīng)該是相似的,因此將數(shù)據(jù)用其近鄰(“箱”或“桶”)替代,這樣既可以光滑有序數(shù)據(jù)值,還能在一定程度上保持?jǐn)?shù)據(jù)的獨有特點。(2)回歸?;貧w技術(shù)是通過一個映像或函數(shù)擬合多個屬性數(shù)據(jù),從而達到光滑數(shù)據(jù)的效果。線性回歸是尋找一條“最佳”直線來擬合多個屬性,從而使用其中的某些屬性預(yù)測其他屬性。(3)離群點分析。聚類可以將相似的值歸為同一“簇”,因此主要使用聚類等技術(shù)來檢測離
14、群點。聚類技術(shù)將在8.3節(jié)展開討論。8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of31128.2.2 數(shù)據(jù)集成數(shù)據(jù)挖掘需要的數(shù)據(jù)往往分布在不同的數(shù)據(jù)源中,數(shù)據(jù)集成就是將多個數(shù)據(jù)源合并存放在一個一致的數(shù)據(jù)存儲(如數(shù)據(jù)倉庫)中的過程。在實際應(yīng)用中,數(shù)據(jù)集成解決3類問題:實體識別、冗余和相關(guān)分析,以及數(shù)值沖突的檢測與處理。1. 實體識別實體識別是指從不同數(shù)據(jù)源識別現(xiàn)實世界的實體,它的任務(wù)是統(tǒng)一不同源數(shù)據(jù)的矛盾之處。例如,一個數(shù)據(jù)庫中的屬性名student_id與另一個數(shù)據(jù)庫中的屬性名student_number表示的含義是否相同。每個屬性的元數(shù)據(jù)包括屬性名、現(xiàn)實含義、數(shù)據(jù)類型、取值范圍,以及處理零或空白時的
15、空值規(guī)則。元數(shù)據(jù)的統(tǒng)一設(shè)計不僅可以有效避免模式集成的錯誤,還能在變換數(shù)據(jù)時起到一定的作用。8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of31138.2.2 數(shù)據(jù)集成2. 冗余和相關(guān)分析數(shù)據(jù)集成往往導(dǎo)致數(shù)據(jù)冗余,分析冗余有很多種方法。首先,可以將數(shù)據(jù)進行可視化處理,將數(shù)據(jù)點繪制成圖表后趨勢和關(guān)聯(lián)會變得清晰起來。除此之外,冗余還可以通過相關(guān)性分析方法檢驗。對于標(biāo)稱數(shù)據(jù),可以使用卡方檢驗;對于數(shù)值屬性,可以用相關(guān)系數(shù)度量一個屬性在多大程度上蘊含另一個屬性,通過相關(guān)性分析來刪除冗余數(shù)據(jù)。3. 數(shù)值沖突的檢測與處理對于現(xiàn)實世界的同一實體,由于表達方式、尺度標(biāo)準(zhǔn)或編碼的不同常導(dǎo)致元數(shù)據(jù)的巨大差異。例如,在大學(xué)的課
16、程評分系統(tǒng)中,有的學(xué)校采用A+F對成績進行評分,而有的則采用數(shù)值1100評分。于是在對這兩所學(xué)校進行數(shù)據(jù)庫合并時,應(yīng)該將兩個系統(tǒng)的評分制度做統(tǒng)一處理,以便進行進一步的數(shù)據(jù)挖掘。8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of31148.2.3 數(shù)據(jù)交換在進行數(shù)據(jù)挖掘前,須對數(shù)據(jù)集進行相應(yīng)的數(shù)據(jù)變換。常用的變換策略如下。1. 數(shù)據(jù)規(guī)范化數(shù)據(jù)規(guī)范化的目的是將數(shù)據(jù)按比例縮放,使得屬性之間的權(quán)值適合數(shù)據(jù)挖掘。例如,統(tǒng)計身高信息的度量單位是不同的,若在數(shù)據(jù)挖掘中把height屬性的度量單位從米變成英寸,則可能導(dǎo)致完全不同的結(jié)果。常見的數(shù)據(jù)規(guī)范化方法包括最小-最大規(guī)范化、z-score分?jǐn)?shù)規(guī)范化、小數(shù)定標(biāo)規(guī)范化等。
17、2. 數(shù)據(jù)離散化數(shù)據(jù)離散化是將數(shù)值屬性的原始值用區(qū)間標(biāo)簽或概念標(biāo)簽替換的過程,它可以將連續(xù)屬性值離散化。連續(xù)屬性離散化的實質(zhì)是將連續(xù)屬性值轉(zhuǎn)換成少數(shù)有限的區(qū)間,從而有效地提高數(shù)據(jù)挖掘工作的計算效率。8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of31158.2.3 數(shù)據(jù)交換3. 概念分層概念分層的主要思想是將低層概念的集合映射到高層概念的集合,它廣泛應(yīng)用于標(biāo)稱數(shù)據(jù)的轉(zhuǎn)換。如現(xiàn)有某個數(shù)據(jù)庫需要對關(guān)于地理位置location的屬性集進行概念分層,其中屬性內(nèi)容包括街道street、國家country、城市city和省份province_or_state。首先,對每個屬性不同值的個數(shù)進行統(tǒng)計分析,并將其按照升序
18、進行排列。其次,根據(jù)排列好的屬性順序,自頂向下進行分層。根據(jù)大家的常規(guī)認(rèn)識,對屬性的全序排列結(jié)果為街道street城市city省份province_or_state國家country,即街道street屬性在最頂層,國家country屬性在最底層。最后,用戶根據(jù)產(chǎn)生的分層,選擇合適的屬性代替該屬性集。8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of31168.2.4 Python數(shù)據(jù)預(yù)處理下面結(jié)合kaggle比賽HousePrices來介紹數(shù)據(jù)預(yù)處理。1. 加載數(shù)據(jù)houseprice=pd.read_csv(./input/train.csv) #加載后放入DataFrame里all_data=pd.
19、read_csv(train.csv,header=0,parse_dates=time,usecols=time,LotArea,price) #可選擇加載哪幾列houseprice.head() #顯示前5行數(shù)據(jù)() #查看各字段信息houseprice.shape #查看數(shù)據(jù)集行列分布houseprice.describe() #查看數(shù)據(jù)大體情況,可獲得某一列的基本統(tǒng)計特征8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of31178.2.4 Python數(shù)據(jù)預(yù)處理2. 分析缺失數(shù)據(jù)houseprice.isnull() #元素級別的判斷,把對應(yīng)的所有元素的位置都列出來,元素為空值或NA就顯示True
20、;否則,顯示Falsehouseprice.isnull().any() #列級別的判斷,只要該列有為空值或NA的元素,就為True;否則,為Falsemissing=houseprice.columnshouseprice.isnull().any().tolist() #將為空值或NA的列找出來housepricemissing.isnull().sum()#將列中為空值或NA的元素個數(shù)統(tǒng)計出來# 將某一列中缺失元素的值,用value值進行填補。處理缺失數(shù)據(jù)時,如該列都是字符串,不是數(shù)值,則可以用出現(xiàn)次數(shù)最多的字符串來填補缺失值def cat_imputation(column, valu
21、e):houseprice.lochousepricecolumn.isnull(),column = valuehousepriceLotFrontage,AlleyhousepriceAlley.isnull()=True #從LotFrontage 和Alley列中選擇行,選擇Alley中數(shù)據(jù)為空值的行。主要用來看兩個列的關(guān)聯(lián)程度,看它們是不是大多同時為空值。housepriceFireplaceshousepriceFireplaceQu.isnull()=True.describe() #對篩選出來的數(shù)據(jù)進行描述,比如一共多少行、均值、方差、最小值、最大值,等等8.2 數(shù)據(jù)預(yù)處理第八
22、章 數(shù)據(jù)挖掘of31188.2.4 Python數(shù)據(jù)預(yù)處理3. 統(tǒng)計分析housepriceMSSubClass.value_counts() #統(tǒng)計某一列中各個元素值出現(xiàn)的次數(shù)print(Skewness: %f % housepriceMSSubClass.skew() #列出數(shù)據(jù)的偏斜度print(Kurtosis: %f % housepriceMSSubClass.kurt() #列出數(shù)據(jù)的峰度housepriceLotFrontage.corr(housepriceLotArea) #計算兩個列的相關(guān)度housepriceSqrtLotArea=np.sqrt(houseprice
23、LotArea) #將列的數(shù)值求根,并賦予一個新列housepriceMSSubClass,LotFrontage.groupby(MSSubClass, as_index=False).mean() #對MSSubClass進行分組,并求分組后的平均值8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of31198.2.4 Python數(shù)據(jù)預(yù)處理4. 數(shù)據(jù)處理1)刪除相關(guān)del housepriceSqrtLotArea #刪除列housepriceLotFrontage.dropna() #去掉為空值或NA的元素houseprice.drop(Alley,axis=1) #去掉Alley列,不管空值與否d
24、f.drop(df.columns0,1,axis=1,inplace=True) #刪除第1、2列,inplace=True表示直接在內(nèi)存中替換,不用二次賦值生效houseprice.dropna(axis=0) #刪除有空值的行houseprice.dropna(axis=1) #刪除有空值的列2)缺失值填補處理housepriceLotFrontage=housepriceLotFrontage.fillna(0)#將該列中的空值或NA填補為0all_duct_typeall_duct_type.isnull()=all_duct_type.dropna().mode().values
25、#如果該列是字符串,就將該列中出現(xiàn)次數(shù)最多的字符串賦予空值,mode()函數(shù)是取出現(xiàn)次數(shù)最多的元素housepriceLotFrontage.fillna(method=pad)#使用前一個數(shù)值替代空值或NA,就是用NA前面最近的非空數(shù)值替換housepriceLotFrontage.fillna(method=bfill,limit=1)#使用后一個數(shù)值替代空值或NA,limit=1是限制如果有幾個連續(xù)的空值,只有最近的一個空值可以被填補housepriceLotFrontage.fillna(housepriceLotFrontage.mean() #使用平均值進行填補houseprice
26、LotFerpolate() #使用插值來估計NaN。如果index是數(shù)字,可以設(shè)置參數(shù)method=value ;如果是時間,可以設(shè)置method=timehouseprice= houseprice.fillna(houseprice.mean() #將缺失值全部用該列的平均值代替,此時一般已經(jīng)提前將字符串特征轉(zhuǎn)換成了數(shù)值注意:如果在處理缺失數(shù)據(jù)時,數(shù)據(jù)缺失比例達到15%,并且該變量作用不大,那么就刪除該變量!8.2 數(shù)據(jù)預(yù)處理第八章 數(shù)據(jù)挖掘of31208.2.4 Python數(shù)據(jù)預(yù)處理4. 數(shù)據(jù)處理3)字符串替換housepriceMSZoning=housepr
27、iceMSZoning.map(RL:1,RM:2,RR:3,).astype(int) #將MSZoning中的字符串變成對應(yīng)的數(shù)字4)數(shù)據(jù)連接merge_data=pd.concat(new_train,df_test) #將訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)連接起來,以便一起進行數(shù)據(jù)清洗all_data=pd.concat(train.loc:,MSSubClass:SaleCondition, test.loc:,MSSubClass:SaleCondition) #另一種合并方式,按列名字進行合并res = pd.merge(df1, df2,on=time) #將df1、df2按照time字段進行
28、合并5)數(shù)據(jù)保存merge_data.to_csv(merge_data.csv,index=False) #index=False,寫入的時候不寫入列的索引序號6)數(shù)據(jù)轉(zhuǎn)換housepriceAlley = np.log1p(housepriceAlley) #采用log(1+x)方式對原數(shù)據(jù)進行處理,改變原數(shù)據(jù)的偏斜度,使數(shù)據(jù)更加符合正態(tài)分布曲線numeric_feats =houseprice.dtypeshouseprice.dtypes != object.index #把內(nèi)容為數(shù)值的特征列找出來7)數(shù)據(jù)標(biāo)準(zhǔn)化Scikit-Learn庫為其提供了相應(yīng)的函數(shù):fromsklearnim
29、portpreprocessingnormalized_X=preprocessing.normalize(X) # normalize the data attributesstandardized_X=preprocessing.scale(X) # standardize the data attributes8.1Python常用數(shù)據(jù)分析工具8.2數(shù)據(jù)預(yù)處理8.3分類與預(yù)測8.5實戰(zhàn):信用評估習(xí)題8.4聚類分析of56218.6實戰(zhàn):影片推薦系統(tǒng)第八章數(shù)據(jù)挖掘8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31228.3.1 特征選擇分類(Classification)和預(yù)測(Predictio
30、n)是預(yù)測問題的兩種主要類型。分類主要是預(yù)測分類標(biāo)號(離散屬性),而預(yù)測主要是建立連續(xù)值函數(shù)模型。預(yù)測可給定自變量對應(yīng)的因變量的值。特征選擇的一般過程如圖所示:首先從原始特征集中根據(jù)一定的策略產(chǎn)生特征子集,對特征子集進行評估,得到相應(yīng)的評估值,然后將評估值和設(shè)定的閾值比較,如果評估值低于閾值,則重新產(chǎn)生新的特征子集,進行下一輪迭代;如果評估值高于閾值,則停止迭代,并對最優(yōu)特征子集進行驗證。特征選擇模型主要有兩種:Filter模型和Wrapper模型。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31238.3.2 性能評估對于分類問題,為了評估算法的性能,通常要將數(shù)據(jù)集分為訓(xùn)練集和測試集兩類:訓(xùn)練集用
31、來訓(xùn)練分類模型,測試集用來測試分類模型的性能。將一個訓(xùn)練集劃分為訓(xùn)練集和測試集的常見方法:留出法、交叉驗證法和自助法。留出法: 將數(shù)據(jù)集分為2個互斥的集合,分別為訓(xùn)練集和測試集。在劃分的時候需要注意,訓(xùn)練集和測試集的數(shù)據(jù)分布要基本一致,避免劃分?jǐn)?shù)據(jù)集過程中的偏差影響模型的訓(xùn)練和測試。交叉驗證法: 將數(shù)據(jù)集分為k份互斥子集,通過分層采樣保證數(shù)據(jù)分布的一致性。每次將k-1份子集的合集作為訓(xùn)練集,剩下的一份作為測試集,總共進行k次實驗,結(jié)果取平均值。這兩種方法都使得訓(xùn)練樣本數(shù)少于實際數(shù)據(jù)集中的樣本數(shù),而自助法可解決這一問題。自助法:對于有m個樣本的數(shù)據(jù)集,每次通過有放回的方式從原始數(shù)據(jù)集中抽取m次,
32、這樣生成的訓(xùn)練集和測試集都是和原始數(shù)據(jù)集規(guī)模一致的。自助法的缺點是改變了原始數(shù)據(jù)集的分布。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31248.3.2 性能評估對于算法的性能評估除了需要測試集,還需要算法性能評估指標(biāo)。對于不同的任務(wù),采用不同的算法性能評估指標(biāo)來比較不同算法或同一算法不同參數(shù)的效果。對于二分類問題,可以將分類算法預(yù)測的類別和樣本的實際類別組合,得到分類結(jié)果的混淆矩陣,如下表所示。預(yù)測結(jié)果實際情況正例反例正例TP(真正例)FN(假反例)反例FP(假正例)TN(真反例)其中: TP表示分類算法預(yù)測為正例且實際也是正例的樣本數(shù)量,稱為真正例; FP表示分類算法預(yù)測為正例但實際是反例的樣本
33、數(shù)量,稱為假正例; FN表示分類算法預(yù)測為反例但實際是正例的樣本數(shù)量,稱為假反例; TN表示分類算法預(yù)測為反例且實際也是反例的樣本數(shù)量,稱為真反例。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31258.3.2 性能評估主要的評估指標(biāo): 1)準(zhǔn)確率(accuration) 準(zhǔn)確率是指分類正確的樣本數(shù)占總樣本數(shù)的比例。定義為: (8-1)2)精確率(precision) 精確率是指預(yù)測正確的正樣本數(shù)占總的預(yù)測為正樣本數(shù)的比例。定義為: (8-2)3)召回率(recall) 召回率是指預(yù)測正確的正樣本數(shù)占總的正樣本數(shù)的比例。定義為: (8-3)4)F1值 F1值是在精確率和召回率的基礎(chǔ)上提出的,定義為:
34、 (8-4) 對于一個分類問題,預(yù)測的精確率和召回率通常是相互制約的,精確率高一般召回率低,召回率高一般精確率低,F(xiàn)1值很好地平衡了這兩個指標(biāo)的影響。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31268.3.2 性能評估主要的評估指標(biāo): 5)ROC和AUC分類算法得到的結(jié)果一般是一個實值,然后通過將這個值與設(shè)定的閾值比較大小來判定這個樣本屬于正例或反例。值越大,說明這個樣本屬于正樣本的概率越大;值越小,說明這個樣本屬于負(fù)樣本的概率越大。實際應(yīng)用中,如果更看重精確率,則可以提高閾值;如果更看重召回率,則可以降低閾值。ROC曲線全稱為“受試者工作特征”(Receiver Operating Chara
35、cteristic)曲線,體現(xiàn)不同閾值下的分類效果,即分類算法在不同需求任務(wù)下的泛化性能的好壞,如圖8-2所示。在圖8-2中,橫坐標(biāo)是假正例率(False Positive Rate,F(xiàn)PR),表示真實正例被預(yù)測為正例的比例,和召回率一致;縱坐標(biāo)是真正例率(True Positive Rate,TPR),表示真實反例被預(yù)測為正例的比例。它們的定義分別為: (8-5) (8-6)AUC是ROC下包含的面積,當(dāng)AUC大于0.5時,說明分類算法是有效的,而且 AUC越大說明分類算法的泛化能力越強;當(dāng)AUC小于或等于0.5時,說明分類算法無效。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31278.3.3
36、實現(xiàn)過程1. 分類分類是構(gòu)造一個分類模型,輸入樣本的屬性值,可以輸出對應(yīng)的類別,從而將每個樣本映射到預(yù)先定義好的類別中。分類模型建立在已知類標(biāo)記的數(shù)據(jù)集上,可以方便地計算模型在已有樣本上的準(zhǔn)確率,所以分類屬于有監(jiān)督的學(xué)習(xí)。2. 預(yù)測預(yù)測是指建立兩種或兩種以上變量間相互依賴的函數(shù)模型,然后進行預(yù)測或控制。3. 實現(xiàn)過程分類和預(yù)測的實現(xiàn)過程類似,以分類模型為例。分類模型的實現(xiàn)有兩個步驟:第一步是建立一個模型(見圖8-3),可通過歸納分析訓(xùn)練樣本集來建立分類模型,得到分類規(guī)則;第二步是使用模型進行分類(見圖8-4),用已知的測試樣本集評估分類規(guī)則的準(zhǔn)確率,如果準(zhǔn)確率是可以接受的,則使用該模型對未知類
37、標(biāo)記的待測樣本集進行預(yù)測。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31288.3.3 實現(xiàn)過程3. 實現(xiàn)過程 預(yù)測模型的實現(xiàn)也有兩個步驟,類似于分類,首先通過訓(xùn)練集建立預(yù)測屬性(數(shù)值型的)的函數(shù)模型,然后在模型通過檢驗后進行預(yù)測或控制。分類(Classification)是一種重要的數(shù)據(jù)分析形式,它提取刻畫重要數(shù)據(jù)類的模型。這種模型稱為分類器,預(yù)測分類的(離散的、無序的)類標(biāo)號。這些類別可以用離散值表示,其中值之間的次序沒有意義。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31298.3.4 分類與預(yù)測的常用方法1. K-最近鄰K-最近鄰(K-Nearest Neighbor,KNN)算法最早是由Co
38、ver和Hart在1967年提出的,其主要思想是找到特征最相似的訓(xùn)練集,然后認(rèn)為待預(yù)測的樣本類型就是這個最近鄰樣本的類型。K-最近鄰算法的實現(xiàn)流程如下:(1)對于預(yù)測集的樣本,計算其特征向量和每個訓(xùn)練集樣本特征向量的距離。(2)按距離對訓(xùn)練樣本排序。(3)取排序靠前的前K個樣本,統(tǒng)計這些樣本中出現(xiàn)次數(shù)最多的標(biāo)簽。(4)出現(xiàn)最多的標(biāo)簽就認(rèn)為是待預(yù)測樣本的標(biāo)簽。K-最近鄰算法實現(xiàn)簡單,預(yù)測的精度一般也較高,但是對預(yù)測集的每個樣本都需要計算它和每個訓(xùn)練樣本的相似度,計算量較大,尤其是訓(xùn)練集很大的時候,計算量會嚴(yán)重影響算法的性能。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31308.3.4 分類與預(yù)測的常
39、用方法1. K-最近鄰例: 先驗數(shù)據(jù)如表8-3所示,使用KNN算法對表8-4中的未知類別數(shù)據(jù)分類。1)KNN算法的Python實現(xiàn) (詳見P:214)2) KNN Test.py測試文件 (詳見P:215)8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31318.3.4 分類與預(yù)測的常用方法2. 決策樹決策樹是一個樹狀結(jié)構(gòu),它的每一個葉節(jié)點對應(yīng)一個分類,非葉節(jié)點對應(yīng)在某個屬性上的劃分,根據(jù)樣本在該屬性上的不同取值將其劃分成若干個子集。對于非純的葉節(jié)點,多數(shù)類的標(biāo)號給出了到達這個節(jié)點的樣本所屬的類。構(gòu)造決策樹的核心問題在于每一步該如何選擇適當(dāng)?shù)膶傩詫颖咀霾鸱?。對一個分類問題,從已知類標(biāo)記的訓(xùn)練樣本中學(xué)
40、習(xí)并構(gòu)造出決策樹是一個自上而下、分而治之的過程。決策樹的關(guān)鍵是在節(jié)點上對屬性的判別,但是一般樣本都有很多屬性,優(yōu)先選取哪些屬性顯得尤為重要。分枝時我們的目標(biāo)是盡量使分枝的節(jié)點包括的樣本都屬于同一類別。在此基礎(chǔ)上產(chǎn)生了很多有效的最優(yōu)劃分屬性判別算法,常見的有ID3決策樹、C4.5決策樹和CART決策樹等。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31328.3.4 分類與預(yù)測的常用方法2. 決策樹 ID3決策樹使用的判別方法是信息增益。信息熵:度量樣本集合純度的一個指標(biāo),定義為: (8-7)信息熵越小,代表純度越高。信息增益:屬性 對于樣本D進行劃分時獲得的增益,表示為: (8-8)信息增益越大說明
41、用屬性 來劃分樣本D獲得的分類效果越好。因此,信息增益可以作為優(yōu)先選擇屬性的判別標(biāo)準(zhǔn)之一。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31338.3.4 分類與預(yù)測的常用方法2. 決策樹信息增益有個缺點,它對可取值多的屬性的偏好較大,為此,C4.5決策樹提出以增益率作為選取最優(yōu)屬性的指標(biāo)。增益率定義為: (8-9) 其中, (8-10)一個固定值,這個值的特點是屬性的可取值越多,這個值越大,從而有效地避免了取值多的屬性被優(yōu)先選取的可能性。但是這會導(dǎo)致另一個問題,就是屬性取值少的屬性優(yōu)先選取的概率被放大,所以不能直接用這個指標(biāo)作為選取優(yōu)先屬性的標(biāo)準(zhǔn)。C4.5決策樹給出的是一種啟發(fā)式的方法:先找到屬性中
42、信息增益高于平均水平的屬性,再從里面選取增益率最高的屬性。集合兩個指標(biāo)選取屬性,可使得屬性的取值對算法的影響大大減小。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31348.3.4 分類與預(yù)測的常用方法2. 決策樹對于CART決策樹,使用“基尼指數(shù)”選取屬性?;嶂禐? (8-11)基尼值越小,代表集合的純度越高?;嶂笖?shù)定義為: (8-12)優(yōu)先選取基尼指數(shù)最小的屬性作為優(yōu)先屬性。決策樹的一個缺點是容易過擬合。過擬合的一個表現(xiàn)是在訓(xùn)練集上都能正確分類,但是在測試集上表現(xiàn)很差,體現(xiàn)在算法上就是分枝過多。為了克服這個缺點,決策樹引進了剪枝的概念。剪枝分為預(yù)剪枝和后剪枝。預(yù)剪枝是在樹生成過程中,判斷節(jié)點
43、的劃分能不能帶來算法泛化性能的提升,如果不能,這個節(jié)點就可當(dāng)作葉節(jié)點。后剪枝是樹生成后,對每個節(jié)點進行考察,如果去掉這個節(jié)點能夠提升算法的泛化性能,那么就把這個節(jié)點設(shè)置成葉節(jié)點。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31358.3.4 分類與預(yù)測的常用方法2. 決策樹輸出:這樣遞歸得到的一棵以node為根節(jié)點的樹就是生成的決策樹。算法優(yōu)點:準(zhǔn)確率較高,可解釋性強,對缺失值、異常值和數(shù)據(jù)分布不敏感等。缺點:對于連續(xù)型的變量需要離散化處理,容易出現(xiàn)過擬合現(xiàn)象等。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31368.3.4 分類與預(yù)測的常用方法2. 決策樹下面以表8-5中的數(shù)據(jù)為例,說明ID3決策樹算法
44、的實現(xiàn)。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31378.3.4 分類與預(yù)測的常用方法2. 決策樹說明:示例Python源代碼詳見P:221-224圖形顯示決策樹的Python源代碼詳見P:225-226 c. 運行得到的決策樹如圖8-6所示。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31388.3.4 分類與預(yù)測的常用方法3. 樸素貝葉斯分類算法樸素貝葉斯分類算法的基礎(chǔ)是1763年英國學(xué)者提出的貝葉斯定理,貝葉斯定理的定義如下: (8-13) (8-14)8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31398.3.4 分類與預(yù)測的常用方法3. 樸素貝葉斯分類算法對于未知樣本 ,分別計算這個樣本為每一類
45、的條件概率,最大概率值對應(yīng)的類別就判定為樣本所屬的類別。其中, 計算比較困難,因為未知樣本的屬性在訓(xùn)練集中可能沒出現(xiàn),根據(jù)屬性間相互獨立的假設(shè)可得: (8-15)所以樸素貝葉斯分類算法的表達式可以寫成: (8-16)樸素貝葉斯分類算法的流程為:(1)計算每個類別出現(xiàn)的概率 。(2)計算每個獨立特征的條件概率 ,求和得到 。(3)計算不同類別下的 ,最大值對應(yīng)的類別判斷為樣本的類別。樸素貝葉斯分類算法的優(yōu)點是計算簡單,在數(shù)據(jù)量較少的情況下依然有效,也適用于多分類的問題;缺點是屬性的相互獨立假設(shè)在實際問題中可能得不到很好地滿足。該算法在醫(yī)學(xué)、經(jīng)濟和社會領(lǐng)域都有廣泛的應(yīng)用。樸素貝葉斯分類算法的Pyt
46、hon源代碼及運行結(jié)果詳見P:227-2298.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31408.3.4 分類與預(yù)測的常用方法4. 支持向量機支持向量機(SVM)算法是由Cortes和Vapnik等人在1995年提出的一種機器學(xué)習(xí)算法,具有很強的理論基礎(chǔ),不僅可以用于分類任務(wù),同時也適合回歸任務(wù)。對于二分類問題,需要在不同類別間劃出超平面將兩個類別分開。超平面的方程描述如下: (8-17)其中, 是超平面的法向量,代表平面的方向; 是位移,代表超平面和原點之間的距離。樣本中的點到超平面的距離為: (8-18)如果超平面可以將正負(fù)樣本分開,那么有: (8-19)訓(xùn)練樣本中使得式(8-19)等號成立的
47、樣本點稱為“支持向量”,類型不同的兩個支持向量到超平面的距離和為: (8-20)也稱為“間隔”。尋找能使間隔最大的超平面,就是在滿足式(8-19)的情況下使得R最大,即 (8-21)8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31418.3.4 分類與預(yù)測的常用方法4. 支持向量機最大化 等價于最小化 ,式(8-21)可以改寫成: (8-22)使用拉格朗日乘子法對式(8-22)的每個約束添加拉格朗日乘子,可以得到拉格朗日方程: (8-23)對 和 分別求偏導(dǎo)并令其為0可得: (8-24) 由式(8-23)和式(8-24)可以得到式(8-22)的對偶問題: (8-25) 8.3 分類與預(yù)測第八章 數(shù)據(jù)
48、挖掘of31428.3.4 分類與預(yù)測的常用方法4. 支持向量機求解出 后,求出 和 即可得到SVM模型: (8-26) 式(8-25)一般用SMO算法求解 值。SMO算法的基本思想是固定 以外的參數(shù),然后求 上的極值,流程為:(1)選取需要更新的 和 。(2)固定 和 以外的參數(shù),求解式(8-25)得到更新后的 和 。(3)執(zhí)行上面兩步直至收斂。 SVM算法有充分的理論基礎(chǔ),并且最終的決策只由少數(shù)的支持向量確定,算法的復(fù)雜度取決于支持向量的數(shù)量,而不是樣本空間的維數(shù),所以計算量不是很大,而且泛化準(zhǔn)確率較高。該算法的缺點是它對參數(shù)調(diào)節(jié)和核函數(shù)的選取比較敏感,而且在存儲和計算上占用較多的內(nèi)存和運
49、行時間,所以在大規(guī)模的樣本訓(xùn)練上有所不足。 8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31438.3.4 分類與預(yù)測的常用方法4. 支持向量機SVM算法的Python實現(xiàn):(詳見P:231-235)SVM算法的分類結(jié)果如圖8-7所示。 8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31448.3.4 分類與預(yù)測的常用方法5.集成學(xué)習(xí)集成學(xué)習(xí)(Ensemble Learning)是通過綜合多個分類器來進行決策的方法,基本流程如圖8-8所示。根據(jù)集成學(xué)習(xí)的生成過程,可以將其分為兩大類,一類是前后沒有依賴關(guān)系、分類器間是并行關(guān)系的方法,代表是Bagging方法;另一類是前后有強依賴關(guān)系、分類器間是串行關(guān)系的方法
50、,代表是Boosting方法。 8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31458.3.4 分類與預(yù)測的常用方法5.集成學(xué)習(xí)1)Bagging和BoostingBagging方法是1996年由Breiman提出的可以并行執(zhí)行的集成學(xué)習(xí)方法。Bagging方法的主要思想是采用有放回隨機抽樣,得到N 份同等規(guī)模的訓(xùn)練數(shù)據(jù),對于每份數(shù)據(jù)采用分類算法得到一個弱分類器,最后將這些分類器綜合起來,通過投票的方式進行匯總,得到最終分類結(jié)果。Bagging方法對于不穩(wěn)定的算法,如決策樹和神經(jīng)網(wǎng)絡(luò)具有不錯的提升,但是對于穩(wěn)定的算法,如K-最近鄰算法可能沒有明顯的效果。 Boosting方法也是將弱分類器綜合成強分
51、類器的方法,其中的代表是由Freund和Schapire于1997年提出的Adaboost方法。Boosting方法的主要思想是先由訓(xùn)練集和分類算法訓(xùn)練一個基分類器,然后對分類錯誤的樣本,通過調(diào)整樣本分布,使得下次訓(xùn)練的時候,這些樣本得到更多關(guān)注。這樣,每進行一次迭代,分類算法的性能都可得到改進,最后累計得到一個分類效果更好的分類模型。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31468.3.4 分類與預(yù)測的常用方法5.集成學(xué)習(xí)1)Bagging和BoostingBagging方法和Boosting方法都是由弱分類器組成強分類器,它們最大的區(qū)別是Bagging方法通過隨機抽取樣本使得訓(xùn)練集相互無關(guān)
52、,可以并行執(zhí)行,而Boosting方法需要通過上一個分類器來調(diào)整訓(xùn)練集,加大分類錯誤樣本的權(quán)重,同時訓(xùn)練集存在依賴關(guān)系,過程是串行執(zhí)行的。因此可以看出:在時間上,Bagging方法比Boosting方法有很大優(yōu)勢,但Boosting方法對錯誤樣本的處理使得其在準(zhǔn)確率上也相對有優(yōu)勢。Bagging方法中最經(jīng)典的擴展是隨機森林算法,Boosting方法中最經(jīng)典的擴展是GBDT算法和xgboost算法。下面著重介紹隨機森林算法。 8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31478.3.4 分類與預(yù)測的常用方法5.集成學(xué)習(xí)2)隨機森林算法隨機森林(Random Forest)算法是由Breiman于20
53、01年提出的,是Bagging方法的擴展。隨機森林算法是由一群決策樹構(gòu)成的,但是與一般的Bagging方法不同的是,隨機森林算法在實現(xiàn)樣本隨機選擇的同時加入了特征的隨機選擇。具體來說,在傳統(tǒng)決策樹中,選取最優(yōu)劃分屬性是在所有屬性(假設(shè) 個)中考察的,而隨機森林算法中的每一棵決策樹,會對每個節(jié)點選取所有屬性中的 個屬性(它們是所有屬性集合的一個子集),然后在這 個屬性中選擇最優(yōu)劃分屬性。 是引入隨機屬性的程度,如果 ,表示每次選擇的是全部屬性,這和普通的決策樹沒有區(qū)別;如果 ,表示節(jié)點選擇一個屬性進行劃分。其推薦取值是 。8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31488.3.4 分類與預(yù)測的常用
54、方法5.集成學(xué)習(xí)2)隨機森林算法隨機森林算法主要是樣本的隨機采樣和屬性的隨機采樣,實現(xiàn)的流程如下:(1)確定隨機森林算法中決策樹的數(shù)目 。(2)通過有放回隨機采樣得到 個規(guī)模相同的訓(xùn)練集。(3) ,在屬性集合中每次隨機選取 個屬性得到 個屬性子集。(4)一個訓(xùn)練集對應(yīng)一個屬性子集,通過決策樹算法訓(xùn)練得到一棵決策樹,決策樹以最大限度增長,不做任何剪枝操作。(5)綜合這些決策樹得到隨機森林模型。(6)對于一個預(yù)測樣本,每棵決策樹都可以得到一個分類結(jié)果,通過投票機制可得這些決策樹分類結(jié)果中出現(xiàn)次數(shù)最多的類就是隨機森林模型的結(jié)果。隨機森林算法實現(xiàn)很簡單,計算量也不大,在現(xiàn)實問題的解決上效果提升明顯。隨
55、機森林算法的優(yōu)點:不容易過擬合,適合數(shù)據(jù)的類型多樣,具有很好的抗噪聲能力,結(jié)果容易理解,可以并行化,算法計算速度快等。同時,隨機森林算法也有缺點:對小數(shù)據(jù)集可能效果不理想,計算比單棵決策樹慢,可能出現(xiàn)相似的樹,投票結(jié)果影響正確的決策。 8.3 分類與預(yù)測第八章 數(shù)據(jù)挖掘of31498.3.4 分類與預(yù)測的常用方法 5.集成學(xué)習(xí) 2)隨機森林算法Scikit-Learn庫提供了隨機森林算法,詳見Scikit-Learn的官方文檔:/stable/modules/ensemble.html#forests-of-randomized-trees。使用Scikit-Learn自帶的iris數(shù)據(jù)集實現(xiàn)
56、隨機森林算法的代碼如下: 其運行結(jié)果如下: from sklearn.tree import DecisionTreeRegressorfrom sklearn.ensemble import RandomForestRegressorimport numpy as npfrom sklearn.datasets import load_irisiris=load_iris()#print iris#iris的個屬性是:萼片寬度、萼片長度、花瓣寬度、花瓣長度,#標(biāo)簽是花的種類:setosa versicolour virginicaprint iristarget.shaperf=Random
57、ForestRegressor()#這里使用了默認(rèn)的參數(shù)設(shè)置rf.fit(iris.data:150,iris.target:150)#進行模型的訓(xùn)練# #隨機挑選兩個預(yù)測不相同的樣本instance=iris.data100,109print instanceprint instance 0 prediction;,rf.predict(instance0)print instance 1 prediction;,rf.predict(instance1)print iris.target100,iris.target109 8.1Python常用數(shù)據(jù)分析工具8.2數(shù)據(jù)預(yù)處理8.3分類與預(yù)測
58、8.5實戰(zhàn):信用評估習(xí)題8.4聚類分析of56508.6實戰(zhàn):影片推薦系統(tǒng)第八章數(shù)據(jù)挖掘8.4 聚類分析第八章 數(shù)據(jù)挖掘of31518.4.1 聚類分析定義聚類分析作為統(tǒng)計學(xué)習(xí)的一個分支和一種無指導(dǎo)的機器學(xué)習(xí)方法,已有幾十年的研究歷史。近年來,隨著數(shù)據(jù)挖掘的興起,聚類分析成為數(shù)據(jù)分析領(lǐng)域的一個研究熱點。聚類分析不僅是數(shù)據(jù)挖掘的重要有效方法,同時也是其他挖掘任務(wù)的前奏。聚類分析已經(jīng)成為數(shù)據(jù)挖掘研究領(lǐng)域一個非?;钴S的研究課題。聚類分析是指將物理或抽象對象的集合分組為由類似的對象組成的多個類的分析過程。聚類分析符合人類認(rèn)知過程,是一種重要的數(shù)據(jù)挖掘手段,屬于無監(jiān)督學(xué)習(xí)的范疇。聚類和分類的最大區(qū)別在于
59、:聚類不需要標(biāo)簽而分類需要標(biāo)簽,即聚類和分類分別屬于無監(jiān)督和有監(jiān)督的學(xué)習(xí)范疇。8.4 聚類分析第八章 數(shù)據(jù)挖掘of31528.4.2 聚類分析評價標(biāo)準(zhǔn)常用的評價聚類分析能力的幾個標(biāo)準(zhǔn)如下:(1)可伸縮性(Scalability):處理大量數(shù)據(jù)的能力。許多聚類分析方法在小于1000個數(shù)據(jù)對象的小數(shù)據(jù)集上工作得很好,但是隨著數(shù)據(jù)對象的增加,這些聚類分析方法的處理能力就會下降。因此,一個好的聚類分析方法需要能處理大量的數(shù)據(jù)集。(2)處理不同類型屬性的能力:許多聚類分析方法只能聚類數(shù)值型的數(shù)據(jù)。但是,在數(shù)據(jù)挖掘領(lǐng)域,數(shù)據(jù)類型是多樣的。聚類分析作為一種分析工具,應(yīng)該能夠?qū)Σ煌愋蛿?shù)據(jù)進行分析,從而提供一
60、個普適的模型。(3)用于決定輸入?yún)?shù)的領(lǐng)域知識最少:許多聚類分析方法在聚類分析中要求用戶輸入一定的參數(shù),如希望產(chǎn)生類的數(shù)目,而且聚類分析結(jié)果對輸入?yún)?shù)十分敏感。參數(shù)通常很難確定,特別是對于包含高維對象的數(shù)據(jù)集來說,更是如此。要求用戶輸入?yún)?shù)不僅加重了用戶的負(fù)擔(dān),也使得聚類分析的質(zhì)量難以控制。(4)能夠發(fā)現(xiàn)任意形狀聚類的能力:許多聚類分析方法采用歐氏距離來決定相似度,這種度量方式趨向于發(fā)現(xiàn)球(超球)簇,而現(xiàn)實中有大量各類形狀的簇,因此需要聚類分析能夠發(fā)現(xiàn)任意形狀的簇。8.4 聚類分析第八章 數(shù)據(jù)挖掘of31538.4.2 聚類分析評價標(biāo)準(zhǔn)常用的評價聚類分析能力的幾個標(biāo)準(zhǔn)如下:(5)處理噪聲數(shù)據(jù)的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版大型商業(yè)綜合體水電安裝工程分包合同范本2篇
- 二零二五年度生物醫(yī)藥創(chuàng)新平臺建設(shè)合同:地方政府與生物醫(yī)藥企業(yè)的合作3篇
- 2025版學(xué)校食堂承包合同包含食品安全培訓(xùn)與監(jiān)督3篇
- 2025版微信公眾號與電商平臺跨界合作服務(wù)合同3篇
- 二零二五版綠化苗木培育與種植服務(wù)合同3篇
- 二零二五年度城市基礎(chǔ)設(shè)施大數(shù)據(jù)信息服務(wù)與維護合同4篇
- 二零二五年度便利店便利店加盟店員勞動合同3篇
- 2025年二手車買賣廣告宣傳合作協(xié)議4篇
- 二零二五年度便利店品牌授權(quán)及區(qū)域保護合同3篇
- 二零二五年度辦公用品日常銷售第三方產(chǎn)品分銷合同3篇
- 銷售與銷售目標(biāo)管理制度
- 人教版(2025新版)七年級下冊英語:寒假課內(nèi)預(yù)習(xí)重點知識默寫練習(xí)
- 2024年食品行業(yè)員工勞動合同標(biāo)準(zhǔn)文本
- 全屋整裝售后保修合同模板
- 高中生物學(xué)科學(xué)推理能力測試
- GB/T 44423-2024近紅外腦功能康復(fù)評估設(shè)備通用要求
- 六年級上冊數(shù)學(xué)應(yīng)用題練習(xí)100題及答案
- 死亡報告年終分析報告
- 棋牌室禁止賭博警示語
- 2022-2023學(xué)年四川省南充市九年級(上)期末數(shù)學(xué)試卷
- 公轉(zhuǎn)私人轉(zhuǎn)賬協(xié)議
評論
0/150
提交評論