




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
高級(jí)大數(shù)據(jù)人才培養(yǎng)叢書(shū)張雪萍主編唐萬(wàn)梅副主編景雪琴副主編BIGDATA劉鵬張燕總主編Python程序設(shè)計(jì)8.1
Python常用數(shù)據(jù)分析工具8.2
數(shù)據(jù)預(yù)處理8.3分類與預(yù)測(cè)8.5實(shí)戰(zhàn):信用評(píng)估習(xí)題8.4
聚類分析of562高級(jí)大數(shù)據(jù)人才培養(yǎng)叢書(shū)8.6實(shí)戰(zhàn):影片推薦系統(tǒng)第八章數(shù)據(jù)挖掘***Python常用數(shù)據(jù)分析工具第八章數(shù)據(jù)挖掘of313***NumpyNumPy提供了真正的數(shù)組功能,以及對(duì)數(shù)據(jù)進(jìn)行快速處理的函數(shù)。NumPy安裝:
方式一:
pipinstallnumpy方式二:pythonsetup.pyinstallNumPy基本操作:#-*-coding:utf-8-*importnumpyasnp#一般以np作為numpy的別名a=np.array([2,8,5,7])#創(chuàng)建數(shù)組print(a)#輸出數(shù)組print(a[:3])#引用前三個(gè)數(shù)字(切片)print(a.min())#輸出a的最小值a.sort()#將a的元素從小到大排序,此操作直接修改a,因此這時(shí)候a為[2,5,7,8]b=np.array([[1,2,3],[4,5,6]])#創(chuàng)建二維數(shù)組print(b*b)#輸出數(shù)組的平方陣,即[(1,4,9),(16,25,36)]***Python常用數(shù)據(jù)分析工具第八章數(shù)據(jù)挖掘of314***ScipyScipy提供了真正的矩陣,以及大量基于矩陣運(yùn)算的對(duì)象與函數(shù)。Scipy依賴于NumPy,安裝它之前得先安裝NumPy。安裝好Scipy后,可以通過(guò)以下命令進(jìn)行簡(jiǎn)單測(cè)試。用Scipy求解非線性方程組和數(shù)值積分:#-*-coding:utf-8-*#求解非線性方程組2x1-x2^2=1,x1^2-x2=2fromscipy.optimizeimportfsolve#導(dǎo)入求解方程組的函數(shù)#定義要求解的方程組deff(x):x1=x[0]x2=x[1]return[2*x1-x2**2-1,x1**2-x2-2]result=fsolve(f,[1,1])#輸入初值[1,1]并求解print(result)#輸出結(jié)果:array([1.91963957,1.68501606])#數(shù)值積分fromscipyimportintegrate#導(dǎo)入積分函數(shù)defg(x):#定義被積函數(shù)return(1-x**2)**0.5pi_2,err=integrate.quad(g,-1,1)#積分結(jié)果和誤差print(pi_2*2)#由微積分知識(shí)可知,積分結(jié)果為圓周率pi的一半***Python常用數(shù)據(jù)分析工具第八章數(shù)據(jù)挖掘of315***PandasPandas是Python中強(qiáng)大的數(shù)據(jù)分析和探索工具,它包含高級(jí)的數(shù)據(jù)結(jié)構(gòu)和精巧的工具,使得在Python中處理數(shù)據(jù)非常快速和簡(jiǎn)單。Pandas的功能非常強(qiáng)大,支持類似SQLServer數(shù)據(jù)庫(kù)的數(shù)據(jù)增、刪、查、改操作,并且?guī)в胸S富的數(shù)據(jù)處理函數(shù);支持時(shí)間序列分析;支持靈活處理缺失數(shù)據(jù)等。Pandas的安裝過(guò)程跟普通的第三方庫(kù)一樣,但如果需要讀取和寫(xiě)入Excel數(shù)據(jù),還需要安裝xlrd庫(kù)(讀)和xlwt庫(kù)(寫(xiě))。其安裝方法如下:
pipinstallxlrd#為Python添加讀取Excel數(shù)據(jù)的功能
pipinstallxlwt#為Python添加寫(xiě)入Excel數(shù)據(jù)的功能***Python常用數(shù)據(jù)分析工具第八章數(shù)據(jù)挖掘of316***PandasPandas基本的數(shù)據(jù)結(jié)構(gòu)是Series和DataFrame。Series是序列,類似一維數(shù)組;DataFrame相當(dāng)于一張二維的表格,類似二維數(shù)組,它的每一列都是一個(gè)Series。為了定位Series中的元素,pandas提供了Index對(duì)象,每個(gè)Series都會(huì)有一個(gè)對(duì)應(yīng)的Index,用來(lái)標(biāo)記不同的元素。Index的內(nèi)容不一定是數(shù)字,也可以是字母、漢字等。類似地,DataFrame相當(dāng)于多個(gè)有同樣Index的Series的組合,每個(gè)Series都有唯一的表頭,用來(lái)標(biāo)識(shí)不同的Series。
Pandas簡(jiǎn)例:#-*-coding:utf-8-*importpandasaspd#通常用pd作為pandas的別名。s=pd.Series([1,2,3],index=['a','b','c'])#創(chuàng)建一個(gè)序列sd=pd.DataFrame([[1,2,3],[4,5,6]],columns=['a','b','c'])#創(chuàng)建一個(gè)表d2=pd.DataFrame(s)#也可以用已有的序列來(lái)創(chuàng)建表格d.head()#預(yù)覽前5行數(shù)據(jù)d.describe()#數(shù)據(jù)基本統(tǒng)計(jì)量#讀取文件,注意文件的存儲(chǔ)路徑不能有中文,否則,讀取可能出錯(cuò)pd.read_excel('data.xls')#讀取Excel文件,創(chuàng)建DataFramepd.read_csv(‘data.csv’,encoding=‘utf-8’)#讀文本格式數(shù)據(jù),encoding指定編碼***Python常用數(shù)據(jù)分析工具第八章數(shù)據(jù)挖掘of317***Scikit-LearnScikit-Learn是Python中強(qiáng)大的機(jī)器學(xué)習(xí)工具包,它提供了完善的機(jī)器學(xué)習(xí)工具箱,包括數(shù)據(jù)預(yù)處理、分類、回歸、聚類、預(yù)測(cè)和模型分析等。Scikit-Learn依賴于NumPy、Scipy和Matplotlib,安裝方法與普通第三方庫(kù)的安裝類似。創(chuàng)建一個(gè)機(jī)器學(xué)習(xí)模型:#-*-coding:utf-8-*fromsklearn.linear_modelimportLinearRegression#導(dǎo)入線性回歸模型model=LinearRegression()#建立線性回歸模型print(model)1)所有模型提供的接口model.fit():訓(xùn)練模型,對(duì)于監(jiān)督模型是fit(X,y),對(duì)于非監(jiān)督模型是fit(X)。2)監(jiān)督模型提供的接口model.predict(X_new):預(yù)測(cè)新樣本。model.predict_proba(X_new):預(yù)測(cè)概率,僅對(duì)某些模型有用(如LR)。model.score():得分越高,擬合越好。3)非監(jiān)督模型提供的接口model.transform():從數(shù)據(jù)中學(xué)到新的“基空間”。model.fit_transform():從數(shù)據(jù)中學(xué)到新的基并將這個(gè)數(shù)據(jù)按照這組“基”進(jìn)行轉(zhuǎn)換。***Python常用數(shù)據(jù)分析工具第八章數(shù)據(jù)挖掘of318***Scikit-LearnScikit-Learn本身提供了一些實(shí)例數(shù)據(jù),比較常見(jiàn)的有安德森鶯尾花卉數(shù)據(jù)集、手寫(xiě)圖像數(shù)據(jù)集等。Scikit-Learn簡(jiǎn)例:#-*-coding:utf-8-*fromsklearnimportdatasets#導(dǎo)入數(shù)據(jù)集iris=datasets.load_iris()#加載數(shù)據(jù)集print(iris.data.shape)#查看數(shù)據(jù)集大小fromsklearnimportsvm#導(dǎo)入SVM模型clf=svm.LinearSVC()#建立線性SVM分類器clf.fit(iris.data,iris.target)#用數(shù)據(jù)訓(xùn)練模型clf.predict([[3.6,5.9,1.4,2.35]])#訓(xùn)練好模型之后,輸入新的數(shù)據(jù)進(jìn)行預(yù)測(cè)clf.coef_#查看訓(xùn)練好模型的參數(shù)8.1
Python常用數(shù)據(jù)分析工具8.2
數(shù)據(jù)預(yù)處理8.3分類與預(yù)測(cè)8.5實(shí)戰(zhàn):信用評(píng)估習(xí)題8.4
聚類分析of569高級(jí)大數(shù)據(jù)人才培養(yǎng)叢書(shū)8.6實(shí)戰(zhàn):影片推薦系統(tǒng)第八章數(shù)據(jù)挖掘***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3110在實(shí)際的數(shù)據(jù)挖掘中,海量的原始數(shù)據(jù)中存在大量信息不完整(有缺失值)、信息表達(dá)不一致、有異常(受噪聲影響)的數(shù)據(jù),無(wú)法直接進(jìn)行數(shù)據(jù)挖掘,或挖掘結(jié)果差強(qiáng)人意。為了提高數(shù)據(jù)挖掘的質(zhì)量,產(chǎn)生了數(shù)據(jù)預(yù)處理(DataPreprocessing)技術(shù)。統(tǒng)計(jì)發(fā)現(xiàn),在數(shù)據(jù)挖掘的過(guò)程中,數(shù)據(jù)預(yù)處理工作量占到了整個(gè)過(guò)程的60%。數(shù)據(jù)預(yù)處理有多種方法:數(shù)據(jù)清理(DataCleaning)、數(shù)據(jù)集成(DataIntegration)、數(shù)據(jù)變換(DataTransformation)等。這些數(shù)據(jù)預(yù)處理技術(shù)在數(shù)據(jù)挖掘之前使用,大大提高了數(shù)據(jù)挖掘模式的質(zhì)量,降低了實(shí)際挖掘所需要的時(shí)間。***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3111***數(shù)據(jù)清洗數(shù)據(jù)清理是進(jìn)行數(shù)據(jù)預(yù)處理的首要方法,它通過(guò)識(shí)別或刪除離群點(diǎn)來(lái)光滑噪聲數(shù)據(jù),并填補(bǔ)缺失值,從而“清理”數(shù)據(jù)。數(shù)據(jù)清理的主要任務(wù)是處理缺失值、光滑噪聲數(shù)據(jù)。1.處理缺失值處理缺失值通常包括以下幾類方法:(1)刪除元組(2)人工填寫(xiě)缺失值(3)中心度量填補(bǔ)(4)多重填補(bǔ)(5)使用最可能的值填補(bǔ)***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3112***數(shù)據(jù)清洗
2.光滑噪聲數(shù)據(jù)光滑噪聲數(shù)據(jù)主要有以下幾種方法:(1)分箱。其主要思想為每一個(gè)數(shù)據(jù)與它的“近鄰”數(shù)據(jù)應(yīng)該是相似的,因此將數(shù)據(jù)用其近鄰(“箱”或“桶”)替代,這樣既可以光滑有序數(shù)據(jù)值,還能在一定程度上保持?jǐn)?shù)據(jù)的獨(dú)有特點(diǎn)。(2)回歸。回歸技術(shù)是通過(guò)一個(gè)映像或函數(shù)擬合多個(gè)屬性數(shù)據(jù),從而達(dá)到光滑數(shù)據(jù)的效果。線性回歸是尋找一條“最佳”直線來(lái)擬合多個(gè)屬性,從而使用其中的某些屬性預(yù)測(cè)其他屬性。(3)離群點(diǎn)分析。聚類可以將相似的值歸為同一“簇”,因此主要使用聚類等技術(shù)來(lái)檢測(cè)離群點(diǎn)。聚類技術(shù)將在8.3節(jié)展開(kāi)討論。***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3113***數(shù)據(jù)集成數(shù)據(jù)挖掘需要的數(shù)據(jù)往往分布在不同的數(shù)據(jù)源中,數(shù)據(jù)集成就是將多個(gè)數(shù)據(jù)源合并存放在一個(gè)一致的數(shù)據(jù)存儲(chǔ)(如數(shù)據(jù)倉(cāng)庫(kù))中的過(guò)程。在實(shí)際應(yīng)用中,數(shù)據(jù)集成解決3類問(wèn)題:實(shí)體識(shí)別、冗余和相關(guān)分析,以及數(shù)值沖突的檢測(cè)與處理。1.實(shí)體識(shí)別實(shí)體識(shí)別是指從不同數(shù)據(jù)源識(shí)別現(xiàn)實(shí)世界的實(shí)體,它的任務(wù)是統(tǒng)一不同源數(shù)據(jù)的矛盾之處。例如,一個(gè)數(shù)據(jù)庫(kù)中的屬性名student_id與另一個(gè)數(shù)據(jù)庫(kù)中的屬性名student_number表示的含義是否相同。每個(gè)屬性的元數(shù)據(jù)包括屬性名、現(xiàn)實(shí)含義、數(shù)據(jù)類型、取值范圍,以及處理零或空白時(shí)的空值規(guī)則。元數(shù)據(jù)的統(tǒng)一設(shè)計(jì)不僅可以有效避免模式集成的錯(cuò)誤,還能在變換數(shù)據(jù)時(shí)起到一定的作用。***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3114***數(shù)據(jù)集成2.冗余和相關(guān)分析數(shù)據(jù)集成往往導(dǎo)致數(shù)據(jù)冗余,分析冗余有很多種方法。首先,可以將數(shù)據(jù)進(jìn)行可視化處理,將數(shù)據(jù)點(diǎn)繪制成圖表后趨勢(shì)和關(guān)聯(lián)會(huì)變得清晰起來(lái)。除此之外,冗余還可以通過(guò)相關(guān)性分析方法檢驗(yàn)。對(duì)于標(biāo)稱數(shù)據(jù),可以使用卡方檢驗(yàn);對(duì)于數(shù)值屬性,可以用相關(guān)系數(shù)度量一個(gè)屬性在多大程度上蘊(yùn)含另一個(gè)屬性,通過(guò)相關(guān)性分析來(lái)刪除冗余數(shù)據(jù)。3.數(shù)值沖突的檢測(cè)與處理對(duì)于現(xiàn)實(shí)世界的同一實(shí)體,由于表達(dá)方式、尺度標(biāo)準(zhǔn)或編碼的不同常導(dǎo)致元數(shù)據(jù)的巨大差異。例如,在大學(xué)的課程評(píng)分系統(tǒng)中,有的學(xué)校采用A+~F對(duì)成績(jī)進(jìn)行評(píng)分,而有的則采用數(shù)值1~100評(píng)分。于是在對(duì)這兩所學(xué)校進(jìn)行數(shù)據(jù)庫(kù)合并時(shí),應(yīng)該將兩個(gè)系統(tǒng)的評(píng)分制度做統(tǒng)一處理,以便進(jìn)行進(jìn)一步的數(shù)據(jù)挖掘。***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3115***數(shù)據(jù)交換在進(jìn)行數(shù)據(jù)挖掘前,須對(duì)數(shù)據(jù)集進(jìn)行相應(yīng)的數(shù)據(jù)變換。常用的變換策略如下。1.數(shù)據(jù)規(guī)范化數(shù)據(jù)規(guī)范化的目的是將數(shù)據(jù)按比例縮放,使得屬性之間的權(quán)值適合數(shù)據(jù)挖掘。例如,統(tǒng)計(jì)身高信息的度量單位是不同的,若在數(shù)據(jù)挖掘中把height屬性的度量單位從米變成英寸,則可能導(dǎo)致完全不同的結(jié)果。常見(jiàn)的數(shù)據(jù)規(guī)范化方法包括最小-最大規(guī)范化、z-score分?jǐn)?shù)規(guī)范化、小數(shù)定標(biāo)規(guī)范化等。2.數(shù)據(jù)離散化數(shù)據(jù)離散化是將數(shù)值屬性的原始值用區(qū)間標(biāo)簽或概念標(biāo)簽替換的過(guò)程,它可以將連續(xù)屬性值離散化。連續(xù)屬性離散化的實(shí)質(zhì)是將連續(xù)屬性值轉(zhuǎn)換成少數(shù)有限的區(qū)間,從而有效地提高數(shù)據(jù)挖掘工作的計(jì)算效率。***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3116***數(shù)據(jù)交換3.概念分層概念分層的主要思想是將低層概念的集合映射到高層概念的集合,它廣泛應(yīng)用于標(biāo)稱數(shù)據(jù)的轉(zhuǎn)換。如現(xiàn)有某個(gè)數(shù)據(jù)庫(kù)需要對(duì)關(guān)于地理位置location的屬性集進(jìn)行概念分層,其中屬性內(nèi)容包括街道street、國(guó)家country、城市city和省份province_or_state。首先,對(duì)每個(gè)屬性不同值的個(gè)數(shù)進(jìn)行統(tǒng)計(jì)分析,并將其按照升序進(jìn)行排列。其次,根據(jù)排列好的屬性順序,自頂向下進(jìn)行分層。根據(jù)大家的常規(guī)認(rèn)識(shí),對(duì)屬性的全序排列結(jié)果為街道street<城市city<省份province_or_state<國(guó)家country,即街道street屬性在最頂層,國(guó)家country屬性在最底層。最后,用戶根據(jù)產(chǎn)生的分層,選擇合適的屬性代替該屬性集。***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3117***Python數(shù)據(jù)預(yù)處理下面結(jié)合kaggle比賽HousePrices來(lái)介紹數(shù)據(jù)預(yù)處理。1.加載數(shù)據(jù)houseprice=pd.read_csv('../input/train.csv')#加載后放入DataFrame里all_data=pd.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)計(jì)特征***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3118***Python數(shù)據(jù)預(yù)處理2.分析缺失數(shù)據(jù)houseprice.isnull()#元素級(jí)別的判斷,把對(duì)應(yīng)的所有元素的位置都列出來(lái),元素為空值或NA就顯示True;否則,顯示Falsehouseprice.isnull().any()#列級(jí)別的判斷,只要該列有為空值或NA的元素,就為T(mén)rue;否則,為Falsemissing=houseprice.columns[houseprice.isnull().any()].tolist()#將為空值或NA的列找出來(lái)houseprice[missing].isnull().sum()
#將列中為空值或NA的元素個(gè)數(shù)統(tǒng)計(jì)出來(lái)#將某一列中缺失元素的值,用value值進(jìn)行填補(bǔ)。處理缺失數(shù)據(jù)時(shí),如該列都是字符串,不是數(shù)值,則可以用出現(xiàn)次數(shù)最多的字符串來(lái)填補(bǔ)缺失值defcat_imputation(column,value):
houseprice.loc[houseprice[column].isnull(),column]=valuehouseprice[['LotFrontage','Alley']][houseprice['Alley'].isnull()==True]#從LotFrontage和Alley列中選擇行,選擇Alley中數(shù)據(jù)為空值的行。主要用來(lái)看兩個(gè)列的關(guān)聯(lián)程度,看它們是不是大多同時(shí)為空值。houseprice['Fireplaces'][houseprice['FireplaceQu'].isnull()==True].describe()#對(duì)篩選出來(lái)的數(shù)據(jù)進(jìn)行描述,比如一共多少行、均值、方差、最小值、最大值,等等***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3119***Python數(shù)據(jù)預(yù)處理3.統(tǒng)計(jì)分析houseprice['MSSubClass'].value_counts()#統(tǒng)計(jì)某一列中各個(gè)元素值出現(xiàn)的次數(shù)print("Skewness:%f"%houseprice['MSSubClass'].skew())#列出數(shù)據(jù)的偏斜度print("Kurtosis:%f"%houseprice['MSSubClass'].kurt())#列出數(shù)據(jù)的峰度houseprice['LotFrontage'].corr(houseprice['LotArea'])#計(jì)算兩個(gè)列的相關(guān)度houseprice['SqrtLotArea']=np.sqrt(houseprice['LotArea'])#將列的數(shù)值求根,并賦予一個(gè)新列houseprice[['MSSubClass','LotFrontage']].groupby(['MSSubClass'],as_index=False).mean()#對(duì)MSSubClass進(jìn)行分組,并求分組后的平均值***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3120***Python數(shù)據(jù)預(yù)處理4.數(shù)據(jù)處理1)刪除相關(guān)delhouseprice['SqrtLotArea']#刪除列houseprice['LotFrontage'].dropna()#去掉為空值或NA的元素houseprice.drop(['Alley'],axis=1)#去掉Alley列,不管空值與否df.drop(df.columns[[0,1]],axis=1,inplace=True)#刪除第1、2列,inplace=True表示直接在內(nèi)存中替換,不用二次賦值生效houseprice.dropna(axis=0)#刪除有空值的行houseprice.dropna(axis=1)#刪除有空值的列2)缺失值填補(bǔ)處理houseprice['LotFrontage']=houseprice['LotFrontage'].fillna(0)#將該列中的空值或NA填補(bǔ)為0all_duct_type[all_duct_type.isnull()]=all_duct_type.dropna().mode().values
#如果該列是字符串,就將該列中出現(xiàn)次數(shù)最多的字符串賦予空值,mode()函數(shù)是取出現(xiàn)次數(shù)最多的元素houseprice['LotFrontage'].fillna(method='pad')
#使用前一個(gè)數(shù)值替代空值或NA,就是用NA前面最近的非空數(shù)值替換houseprice['LotFrontage'].fillna(method='bfill',limit=1)
#使用后一個(gè)數(shù)值替代空值或NA,limit=1是限制如果有幾個(gè)連續(xù)的空值,只有最近的一個(gè)空值可以被填補(bǔ)houseprice['LotFrontage'].fillna(houseprice['LotFrontage'].mean())#使用平均值進(jìn)行填補(bǔ)houseprice['LotFrontage'].interpolate()#使用插值來(lái)估計(jì)NaN。如果index是數(shù)字,可以設(shè)置參數(shù)method='value';如果是時(shí)間,可以設(shè)置method='time'houseprice=houseprice.fillna(houseprice.mean())#將缺失值全部用該列的平均值代替,此時(shí)一般已經(jīng)提前將字符串特征轉(zhuǎn)換成了數(shù)值注意:如果在處理缺失數(shù)據(jù)時(shí),數(shù)據(jù)缺失比例達(dá)到15%,并且該變量作用不大,那么就刪除該變量!***數(shù)據(jù)預(yù)處理第八章數(shù)據(jù)挖掘of3121***Python數(shù)據(jù)預(yù)處理4.數(shù)據(jù)處理3)字符串替換houseprice['MSZoning']=houseprice['MSZoning'].map({'RL':1,'RM':2,'RR':3,}).astype(int)#將MSZoning中的字符串變成對(duì)應(yīng)的數(shù)字4)數(shù)據(jù)連接merge_data=pd.concat([new_train,df_test])#將訓(xùn)練數(shù)據(jù)與測(cè)試數(shù)據(jù)連接起來(lái),以便一起進(jìn)行數(shù)據(jù)清洗all_data=pd.concat((train.loc[:,'MSSubClass':'SaleCondition'],test.loc[:,'MSSubClass':'SaleCondition']))#另一種合并方式,按列名字進(jìn)行合并res=pd.merge(df1,df2,on=['time'])#將df1、df2按照time字段進(jìn)行合并5)數(shù)據(jù)保存merge_data.to_csv('merge_data.csv',index=False)#index=False,寫(xiě)入的時(shí)候不寫(xiě)入列的索引序號(hào)6)數(shù)據(jù)轉(zhuǎn)換houseprice["Alley"]=np.log1p(houseprice["Alley"])#采用log(1+x)方式對(duì)原數(shù)據(jù)進(jìn)行處理,改變?cè)瓟?shù)據(jù)的偏斜度,使數(shù)據(jù)更加符合正態(tài)分布曲線numeric_feats=houseprice.dtypes[houseprice.dtypes!="object"].index#把內(nèi)容為數(shù)值的特征列找出來(lái)7)數(shù)據(jù)標(biāo)準(zhǔn)化Scikit-Learn庫(kù)為其提供了相應(yīng)的函數(shù):from
sklearn
import
preprocessingnormalized_X
=
preprocessing.normalize(X)
#normalizethedataattributesstandardized_X
=
preprocessing.scale(X)
#standardizethedataattributes8.1
Python常用數(shù)據(jù)分析工具8.2
數(shù)據(jù)預(yù)處理8.3分類與預(yù)測(cè)8.5實(shí)戰(zhàn):信用評(píng)估習(xí)題8.4
聚類分析of5622高級(jí)大數(shù)據(jù)人才培養(yǎng)叢書(shū)8.6實(shí)戰(zhàn):影片推薦系統(tǒng)第八章數(shù)據(jù)挖掘***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3123***特征選擇分類(Classification)和預(yù)測(cè)(Prediction)是預(yù)測(cè)問(wèn)題的兩種主要類型。分類主要是預(yù)測(cè)分類標(biāo)號(hào)(離散屬性),而預(yù)測(cè)主要是建立連續(xù)值函數(shù)模型。預(yù)測(cè)可給定自變量對(duì)應(yīng)的因變量的值。特征選擇的一般過(guò)程如圖所示:首先從原始特征集中根據(jù)一定的策略產(chǎn)生特征子集,對(duì)特征子集進(jìn)行評(píng)估,得到相應(yīng)的評(píng)估值,然后將評(píng)估值和設(shè)定的閾值比較,如果評(píng)估值低于閾值,則重新產(chǎn)生新的特征子集,進(jìn)行下一輪迭代;如果評(píng)估值高于閾值,則停止迭代,并對(duì)最優(yōu)特征子集進(jìn)行驗(yàn)證。特征選擇模型主要有兩種:Filter模型和Wrapper模型。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3124***性能評(píng)估對(duì)于分類問(wèn)題,為了評(píng)估算法的性能,通常要將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集兩類:訓(xùn)練集用來(lái)訓(xùn)練分類模型,測(cè)試集用來(lái)測(cè)試分類模型的性能。將一個(gè)訓(xùn)練集劃分為訓(xùn)練集和測(cè)試集的常見(jiàn)方法:留出法、交叉驗(yàn)證法和自助法。留出法:將數(shù)據(jù)集分為2個(gè)互斥的集合,分別為訓(xùn)練集和測(cè)試集。在劃分的時(shí)候需要注意,訓(xùn)練集和測(cè)試集的數(shù)據(jù)分布要基本一致,避免劃分?jǐn)?shù)據(jù)集過(guò)程中的偏差影響模型的訓(xùn)練和測(cè)試。交叉驗(yàn)證法:將數(shù)據(jù)集分為k份互斥子集,通過(guò)分層采樣保證數(shù)據(jù)分布的一致性。每次將k-1份子集的合集作為訓(xùn)練集,剩下的一份作為測(cè)試集,總共進(jìn)行k次實(shí)驗(yàn),結(jié)果取平均值。這兩種方法都使得訓(xùn)練樣本數(shù)少于實(shí)際數(shù)據(jù)集中的樣本數(shù),而自助法可解決這一問(wèn)題。自助法:對(duì)于有m個(gè)樣本的數(shù)據(jù)集,每次通過(guò)有放回的方式從原始數(shù)據(jù)集中抽取m次,這樣生成的訓(xùn)練集和測(cè)試集都是和原始數(shù)據(jù)集規(guī)模一致的。自助法的缺點(diǎn)是改變了原始數(shù)據(jù)集的分布。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3125***性能評(píng)估對(duì)于算法的性能評(píng)估除了需要測(cè)試集,還需要算法性能評(píng)估指標(biāo)。對(duì)于不同的任務(wù),采用不同的算法性能評(píng)估指標(biāo)來(lái)比較不同算法或同一算法不同參數(shù)的效果。對(duì)于二分類問(wèn)題,可以將分類算法預(yù)測(cè)的類別和樣本的實(shí)際類別組合,得到分類結(jié)果的混淆矩陣,如下表所示。預(yù)測(cè)結(jié)果實(shí)際情況正例反例正例TP(真正例)FN(假反例)反例FP(假正例)TN(真反例)其中:
TP表示分類算法預(yù)測(cè)為正例且實(shí)際也是正例的樣本數(shù)量,稱為真正例;
FP表示分類算法預(yù)測(cè)為正例但實(shí)際是反例的樣本數(shù)量,稱為假正例;
FN表示分類算法預(yù)測(cè)為反例但實(shí)際是正例的樣本數(shù)量,稱為假反例;
TN表示分類算法預(yù)測(cè)為反例且實(shí)際也是反例的樣本數(shù)量,稱為真反例。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3126***性能評(píng)估主要的評(píng)估指標(biāo):
1)準(zhǔn)確率(accuration)準(zhǔn)確率是指分類正確的樣本數(shù)占總樣本數(shù)的比例。定義為:
(8-1)2)精確率(precision)精確率是指預(yù)測(cè)正確的正樣本數(shù)占總的預(yù)測(cè)為正樣本數(shù)的比例。定義為:
(8-2)3)召回率(recall)召回率是指預(yù)測(cè)正確的正樣本數(shù)占總的正樣本數(shù)的比例。定義為:
(8-3)4)F1值
F1值是在精確率和召回率的基礎(chǔ)上提出的,定義為:
(8-4)
對(duì)于一個(gè)分類問(wèn)題,預(yù)測(cè)的精確率和召回率通常是相互制約的,精確率高一般召回率低,召回率高一般精確率低,F(xiàn)1值很好地平衡了這兩個(gè)指標(biāo)的影響。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3127***性能評(píng)估主要的評(píng)估指標(biāo):
5)ROC和AUC分類算法得到的結(jié)果一般是一個(gè)實(shí)值,然后通過(guò)將這個(gè)值與設(shè)定的閾值比較大小來(lái)判定這個(gè)樣本屬于正例或反例。值越大,說(shuō)明這個(gè)樣本屬于正樣本的概率越大;值越小,說(shuō)明這個(gè)樣本屬于負(fù)樣本的概率越大。實(shí)際應(yīng)用中,如果更看重精確率,則可以提高閾值;如果更看重召回率,則可以降低閾值。ROC曲線全稱為“受試者工作特征”(ReceiverOperatingCharacteristic)曲線,體現(xiàn)不同閾值下的分類效果,即分類算法在不同需求任務(wù)下的泛化性能的好壞,如圖8-2所示。在圖8-2中,橫坐標(biāo)是假正例率(FalsePositiveRate,F(xiàn)PR),表示真實(shí)正例被預(yù)測(cè)為正例的比例,和召回率一致;縱坐標(biāo)是真正例率(TruePositiveRate,TPR),表示真實(shí)反例被預(yù)測(cè)為正例的比例。它們的定義分別為:(8-5)
(8-6)AUC是ROC下包含的面積,當(dāng)AUC大于0.5時(shí),說(shuō)明分類算法是有效的,而且AUC越大說(shuō)明分類算法的泛化能力越強(qiáng);當(dāng)AUC小于或等于0.5時(shí),說(shuō)明分類算法無(wú)效。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3128***實(shí)現(xiàn)過(guò)程1.分類分類是構(gòu)造一個(gè)分類模型,輸入樣本的屬性值,可以輸出對(duì)應(yīng)的類別,從而將每個(gè)樣本映射到預(yù)先定義好的類別中。分類模型建立在已知類標(biāo)記的數(shù)據(jù)集上,可以方便地計(jì)算模型在已有樣本上的準(zhǔn)確率,所以分類屬于有監(jiān)督的學(xué)習(xí)。2.預(yù)測(cè)預(yù)測(cè)是指建立兩種或兩種以上變量間相互依賴的函數(shù)模型,然后進(jìn)行預(yù)測(cè)或控制。3.實(shí)現(xiàn)過(guò)程分類和預(yù)測(cè)的實(shí)現(xiàn)過(guò)程類似,以分類模型為例。分類模型的實(shí)現(xiàn)有兩個(gè)步驟:第一步是建立一個(gè)模型(見(jiàn)圖8-3),可通過(guò)歸納分析訓(xùn)練樣本集來(lái)建立分類模型,得到分類規(guī)則;第二步是使用模型進(jìn)行分類(見(jiàn)圖8-4),用已知的測(cè)試樣本集評(píng)估分類規(guī)則的準(zhǔn)確率,如果準(zhǔn)確率是可以接受的,則使用該模型對(duì)未知類標(biāo)記的待測(cè)樣本集進(jìn)行預(yù)測(cè)。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3129***實(shí)現(xiàn)過(guò)程3.實(shí)現(xiàn)過(guò)程
預(yù)測(cè)模型的實(shí)現(xiàn)也有兩個(gè)步驟,類似于分類,首先通過(guò)訓(xùn)練集建立預(yù)測(cè)屬性(數(shù)值型的)的函數(shù)模型,然后在模型通過(guò)檢驗(yàn)后進(jìn)行預(yù)測(cè)或控制。分類(Classification)是一種重要的數(shù)據(jù)分析形式,它提取刻畫(huà)重要數(shù)據(jù)類的模型。這種模型稱為分類器,預(yù)測(cè)分類的(離散的、無(wú)序的)類標(biāo)號(hào)。這些類別可以用離散值表示,其中值之間的次序沒(méi)有意義。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3130***分類與預(yù)測(cè)的常用方法1.K-最近鄰K-最近鄰(K-NearestNeighbor,KNN)算法最早是由Cover和Hart在1967年提出的,其主要思想是找到特征最相似的訓(xùn)練集,然后認(rèn)為待預(yù)測(cè)的樣本類型就是這個(gè)最近鄰樣本的類型。K-最近鄰算法的實(shí)現(xiàn)流程如下:(1)對(duì)于預(yù)測(cè)集的樣本,計(jì)算其特征向量和每個(gè)訓(xùn)練集樣本特征向量的距離。(2)按距離對(duì)訓(xùn)練樣本排序。(3)取排序靠前的前K個(gè)樣本,統(tǒng)計(jì)這些樣本中出現(xiàn)次數(shù)最多的標(biāo)簽。(4)出現(xiàn)最多的標(biāo)簽就認(rèn)為是待預(yù)測(cè)樣本的標(biāo)簽。K-最近鄰算法實(shí)現(xiàn)簡(jiǎn)單,預(yù)測(cè)的精度一般也較高,但是對(duì)預(yù)測(cè)集的每個(gè)樣本都需要計(jì)算它和每個(gè)訓(xùn)練樣本的相似度,計(jì)算量較大,尤其是訓(xùn)練集很大的時(shí)候,計(jì)算量會(huì)嚴(yán)重影響算法的性能。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3131***分類與預(yù)測(cè)的常用方法1.K-最近鄰例:先驗(yàn)數(shù)據(jù)如表8-3所示,使用KNN算法對(duì)表8-4中的未知類別數(shù)據(jù)分類。1)KNN算法的Python實(shí)現(xiàn)(詳見(jiàn)P:214)2)KNNTest.py測(cè)試文件(詳見(jiàn)P:215)
***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3132***分類與預(yù)測(cè)的常用方法2.決策樹(shù)決策樹(shù)是一個(gè)樹(shù)狀結(jié)構(gòu),它的每一個(gè)葉節(jié)點(diǎn)對(duì)應(yīng)一個(gè)分類,非葉節(jié)點(diǎn)對(duì)應(yīng)在某個(gè)屬性上的劃分,根據(jù)樣本在該屬性上的不同取值將其劃分成若干個(gè)子集。對(duì)于非純的葉節(jié)點(diǎn),多數(shù)類的標(biāo)號(hào)給出了到達(dá)這個(gè)節(jié)點(diǎn)的樣本所屬的類。構(gòu)造決策樹(shù)的核心問(wèn)題在于每一步該如何選擇適當(dāng)?shù)膶傩詫?duì)樣本做拆分。對(duì)一個(gè)分類問(wèn)題,從已知類標(biāo)記的訓(xùn)練樣本中學(xué)習(xí)并構(gòu)造出決策樹(shù)是一個(gè)自上而下、分而治之的過(guò)程。決策樹(shù)的關(guān)鍵是在節(jié)點(diǎn)上對(duì)屬性的判別,但是一般樣本都有很多屬性,優(yōu)先選取哪些屬性顯得尤為重要。分枝時(shí)我們的目標(biāo)是盡量使分枝的節(jié)點(diǎn)包括的樣本都屬于同一類別。在此基礎(chǔ)上產(chǎn)生了很多有效的最優(yōu)劃分屬性判別算法,常見(jiàn)的有ID3決策樹(shù)、C4.5決策樹(shù)和CART決策樹(shù)等。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3133***分類與預(yù)測(cè)的常用方法2.決策樹(shù)
ID3決策樹(shù)使用的判別方法是信息增益。信息熵:度量樣本集合純度的一個(gè)指標(biāo),定義為:
(8-7)信息熵越小,代表純度越高。信息增益:屬性
對(duì)于樣本D進(jìn)行劃分時(shí)獲得的增益,表示為:
(8-8)信息增益越大說(shuō)明用屬性
來(lái)劃分樣本D獲得的分類效果越好。因此,信息增益可以作為優(yōu)先選擇屬性的判別標(biāo)準(zhǔn)之一。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3134***分類與預(yù)測(cè)的常用方法2.決策樹(shù)信息增益有個(gè)缺點(diǎn),它對(duì)可取值多的屬性的偏好較大,為此,C4.5決策樹(shù)提出以增益率作為選取最優(yōu)屬性的指標(biāo)。增益率定義為:
(8-9)
其中,
(8-10)一個(gè)固定值,這個(gè)值的特點(diǎn)是屬性的可取值越多,這個(gè)值越大,從而有效地避免了取值多的屬性被優(yōu)先選取的可能性。但是這會(huì)導(dǎo)致另一個(gè)問(wèn)題,就是屬性取值少的屬性優(yōu)先選取的概率被放大,所以不能直接用這個(gè)指標(biāo)作為選取優(yōu)先屬性的標(biāo)準(zhǔn)。C4.5決策樹(shù)給出的是一種啟發(fā)式的方法:先找到屬性中信息增益高于平均水平的屬性,再?gòu)睦锩孢x取增益率最高的屬性。集合兩個(gè)指標(biāo)選取屬性,可使得屬性的取值對(duì)算法的影響大大減小。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3135***分類與預(yù)測(cè)的常用方法2.決策樹(shù)對(duì)于CART決策樹(shù),使用“基尼指數(shù)”選取屬性?;嶂禐?
(8-11)基尼值越小,代表集合的純度越高?;嶂笖?shù)定義為:
(8-12)優(yōu)先選取基尼指數(shù)最小的屬性作為優(yōu)先屬性。決策樹(shù)的一個(gè)缺點(diǎn)是容易過(guò)擬合。過(guò)擬合的一個(gè)表現(xiàn)是在訓(xùn)練集上都能正確分類,但是在測(cè)試集上表現(xiàn)很差,體現(xiàn)在算法上就是分枝過(guò)多。為了克服這個(gè)缺點(diǎn),決策樹(shù)引進(jìn)了剪枝的概念。剪枝分為預(yù)剪枝和后剪枝。預(yù)剪枝是在樹(shù)生成過(guò)程中,判斷節(jié)點(diǎn)的劃分能不能帶來(lái)算法泛化性能的提升,如果不能,這個(gè)節(jié)點(diǎn)就可當(dāng)作葉節(jié)點(diǎn)。后剪枝是樹(shù)生成后,對(duì)每個(gè)節(jié)點(diǎn)進(jìn)行考察,如果去掉這個(gè)節(jié)點(diǎn)能夠提升算法的泛化性能,那么就把這個(gè)節(jié)點(diǎn)設(shè)置成葉節(jié)點(diǎn)。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3136***分類與預(yù)測(cè)的常用方法2.決策樹(shù)輸出:這樣遞歸得到的一棵以node為根節(jié)點(diǎn)的樹(shù)就是生成的決策樹(shù)。算法優(yōu)點(diǎn):準(zhǔn)確率較高,可解釋性強(qiáng),對(duì)缺失值、異常值和數(shù)據(jù)分布不敏感等。缺點(diǎn):對(duì)于連續(xù)型的變量需要離散化處理,容易出現(xiàn)過(guò)擬合現(xiàn)象等。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3137***分類與預(yù)測(cè)的常用方法2.決策樹(shù)下面以表8-5中的數(shù)據(jù)為例,說(shuō)明ID3決策樹(shù)算法的實(shí)現(xiàn)。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3138***分類與預(yù)測(cè)的常用方法2.決策樹(shù)說(shuō)明:示例Python源代碼詳見(jiàn)P:221-224圖形顯示決策樹(shù)的Python源代碼詳見(jiàn)P:225-226
c.運(yùn)行得到的決策樹(shù)如圖8-6所示。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3139***分類與預(yù)測(cè)的常用方法3.樸素貝葉斯分類算法樸素貝葉斯分類算法的基礎(chǔ)是1763年英國(guó)學(xué)者提出的貝葉斯定理,貝葉斯定理的定義如下:
(8-13)(8-14)***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3140***分類與預(yù)測(cè)的常用方法3.樸素貝葉斯分類算法對(duì)于未知樣本
,分別計(jì)算這個(gè)樣本為每一類的條件概率,最大概率值對(duì)應(yīng)的類別就判定為樣本所屬的類別。其中,
計(jì)算比較困難,因?yàn)槲粗獦颖镜膶傩栽谟?xùn)練集中可能沒(méi)出現(xiàn),根據(jù)屬性間相互獨(dú)立的假設(shè)可得:
(8-15)所以樸素貝葉斯分類算法的表達(dá)式可以寫(xiě)成:
(8-16)樸素貝葉斯分類算法的流程為:(1)計(jì)算每個(gè)類別出現(xiàn)的概率
。(2)計(jì)算每個(gè)獨(dú)立特征的條件概率,求和得到
。(3)計(jì)算不同類別下的
,最大值對(duì)應(yīng)的類別判斷為樣本的類別。樸素貝葉斯分類算法的優(yōu)點(diǎn)是計(jì)算簡(jiǎn)單,在數(shù)據(jù)量較少的情況下依然有效,也適用于多分類的問(wèn)題;缺點(diǎn)是屬性的相互獨(dú)立假設(shè)在實(shí)際問(wèn)題中可能得不到很好地滿足。該算法在醫(yī)學(xué)、經(jīng)濟(jì)和社會(huì)領(lǐng)域都有廣泛的應(yīng)用。樸素貝葉斯分類算法的Python源代碼及運(yùn)行結(jié)果詳見(jiàn)P:227-229***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3141***分類與預(yù)測(cè)的常用方法4.支持向量機(jī)支持向量機(jī)(SVM)算法是由Cortes和Vapnik等人在1995年提出的一種機(jī)器學(xué)習(xí)算法,具有很強(qiáng)的理論基礎(chǔ),不僅可以用于分類任務(wù),同時(shí)也適合回歸任務(wù)。對(duì)于二分類問(wèn)題,需要在不同類別間劃出超平面將兩個(gè)類別分開(kāi)。超平面的方程描述如下:
(8-17)其中,
是超平面的法向量,代表平面的方向;
是位移,代表超平面和原點(diǎn)之間的距離。樣本中的點(diǎn)到超平面的距離為:
(8-18)如果超平面可以將正負(fù)樣本分開(kāi),那么有:
(8-19)訓(xùn)練樣本中使得式(8-19)等號(hào)成立的樣本點(diǎn)稱為“支持向量”,類型不同的兩個(gè)支持向量到超平面的距離和為:
(8-20)也稱為“間隔”。尋找能使間隔最大的超平面,就是在滿足式(8-19)的情況下使得R最大,即
(8-21)***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3142***分類與預(yù)測(cè)的常用方法4.支持向量機(jī)最大化
等價(jià)于最小化
,式(8-21)可以改寫(xiě)成:
(8-22)使用拉格朗日乘子法對(duì)式(8-22)的每個(gè)約束添加拉格朗日乘子,可以得到拉格朗日方程:
(8-23)對(duì)
和
分別求偏導(dǎo)并令其為0可得:
(8-24)
由式(8-23)和式(8-24)可以得到式(8-22)的對(duì)偶問(wèn)題:
(8-25)
***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3143***分類與預(yù)測(cè)的常用方法4.支持向量機(jī)求解出
后,求出和
即可得到SVM模型:
(8-26)
式(8-25)一般用SMO算法求解
值。SMO算法的基本思想是固定
以外的參數(shù),然后求
上的極值,流程為:(1)選取需要更新的
和
。(2)固定
和
以外的參數(shù),求解式(8-25)得到更新后的
和
。(3)執(zhí)行上面兩步直至收斂。
SVM算法有充分的理論基礎(chǔ),并且最終的決策只由少數(shù)的支持向量確定,算法的復(fù)雜度取決于支持向量的數(shù)量,而不是樣本空間的維數(shù),所以計(jì)算量不是很大,而且泛化準(zhǔn)確率較高。該算法的缺點(diǎn)是它對(duì)參數(shù)調(diào)節(jié)和核函數(shù)的選取比較敏感,而且在存儲(chǔ)和計(jì)算上占用較多的內(nèi)存和運(yùn)行時(shí)間,所以在大規(guī)模的樣本訓(xùn)練上有所不足。
***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3144***分類與預(yù)測(cè)的常用方法4.支持向量機(jī)SVM算法的Python實(shí)現(xiàn):(詳見(jiàn)P:231-235)SVM算法的分類結(jié)果如圖8-7所示。
***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3145***分類與預(yù)測(cè)的常用方法5.集成學(xué)習(xí)集成學(xué)習(xí)(EnsembleLearning)是通過(guò)綜合多個(gè)分類器來(lái)進(jìn)行決策的方法,基本流程如圖8-8所示。根據(jù)集成學(xué)習(xí)的生成過(guò)程,可以將其分為兩大類,一類是前后沒(méi)有依賴關(guān)系、分類器間是并行關(guān)系的方法,代表是Bagging方法;另一類是前后有強(qiáng)依賴關(guān)系、分類器間是串行關(guān)系的方法,代表是Boosting方法。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3146***分類與預(yù)測(cè)的常用方法5.集成學(xué)習(xí)1)Bagging和BoostingBagging方法是1996年由Breiman提出的可以并行執(zhí)行的集成學(xué)習(xí)方法。Bagging方法的主要思想是采用有放回隨機(jī)抽樣,得到N
份同等規(guī)模的訓(xùn)練數(shù)據(jù),對(duì)于每份數(shù)據(jù)采用分類算法得到一個(gè)弱分類器,最后將這些分類器綜合起來(lái),通過(guò)投票的方式進(jìn)行匯總,得到最終分類結(jié)果。Bagging方法對(duì)于不穩(wěn)定的算法,如決策樹(shù)和神經(jīng)網(wǎng)絡(luò)具有不錯(cuò)的提升,但是對(duì)于穩(wěn)定的算法,如K-最近鄰算法可能沒(méi)有明顯的效果。
Boosting方法也是將弱分類器綜合成強(qiáng)分類器的方法,其中的代表是由Freund和Schapire于1997年提出的Adaboost方法。Boosting方法的主要思想是先由訓(xùn)練集和分類算法訓(xùn)練一個(gè)基分類器,然后對(duì)分類錯(cuò)誤的樣本,通過(guò)調(diào)整樣本分布,使得下次訓(xùn)練的時(shí)候,這些樣本得到更多關(guān)注。這樣,每進(jìn)行一次迭代,分類算法的性能都可得到改進(jìn),最后累計(jì)得到一個(gè)分類效果更好的分類模型。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3147***分類與預(yù)測(cè)的常用方法5.集成學(xué)習(xí)1)Bagging和BoostingBagging方法和Boosting方法都是由弱分類器組成強(qiáng)分類器,它們最大的區(qū)別是Bagging方法通過(guò)隨機(jī)抽取樣本使得訓(xùn)練集相互無(wú)關(guān),可以并行執(zhí)行,而B(niǎo)oosting方法需要通過(guò)上一個(gè)分類器來(lái)調(diào)整訓(xùn)練集,加大分類錯(cuò)誤樣本的權(quán)重,同時(shí)訓(xùn)練集存在依賴關(guān)系,過(guò)程是串行執(zhí)行的。因此可以看出:在時(shí)間上,Bagging方法比Boosting方法有很大優(yōu)勢(shì),但Boosting方法對(duì)錯(cuò)誤樣本的處理使得其在準(zhǔn)確率上也相對(duì)有優(yōu)勢(shì)。Bagging方法中最經(jīng)典的擴(kuò)展是隨機(jī)森林算法,Boosting方法中最經(jīng)典的擴(kuò)展是GBDT算法和xgboost算法。下面著重介紹隨機(jī)森林算法。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3148***分類與預(yù)測(cè)的常用方法5.集成學(xué)習(xí)2)隨機(jī)森林算法隨機(jī)森林(RandomForest)算法是由Breiman于2001年提出的,是Bagging方法的擴(kuò)展。隨機(jī)森林算法是由一群決策樹(shù)構(gòu)成的,但是與一般的Bagging方法不同的是,隨機(jī)森林算法在實(shí)現(xiàn)樣本隨機(jī)選擇的同時(shí)加入了特征的隨機(jī)選擇。具體來(lái)說(shuō),在傳統(tǒng)決策樹(shù)中,選取最優(yōu)劃分屬性是在所有屬性(假設(shè)
個(gè))中考察的,而隨機(jī)森林算法中的每一棵決策樹(shù),會(huì)對(duì)每個(gè)節(jié)點(diǎn)選取所有屬性中的
個(gè)屬性(它們是所有屬性集合的一個(gè)子集),然后在這個(gè)屬性中選擇最優(yōu)劃分屬性。
是引入隨機(jī)屬性的程度,如果,表示每次選擇的是全部屬性,這和普通的決策樹(shù)沒(méi)有區(qū)別;如果
,表示節(jié)點(diǎn)選擇一個(gè)屬性進(jìn)行劃分。其推薦取值是
。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3149***分類與預(yù)測(cè)的常用方法5.集成學(xué)習(xí)2)隨機(jī)森林算法隨機(jī)森林算法主要是樣本的隨機(jī)采樣和屬性的隨機(jī)采樣,實(shí)現(xiàn)的流程如下:(1)確定隨機(jī)森林算法中決策樹(shù)的數(shù)目
。(2)通過(guò)有放回隨機(jī)采樣得到
個(gè)規(guī)模相同的訓(xùn)練集。(3)
,在屬性集合中每次隨機(jī)選取
個(gè)屬性得到
個(gè)屬性子集。(4)一個(gè)訓(xùn)練集對(duì)應(yīng)一個(gè)屬性子集,通過(guò)決策樹(shù)算法訓(xùn)練得到一棵決策樹(shù),決策樹(shù)以最大限度增長(zhǎng),不做任何剪枝操作。(5)綜合這些決策樹(shù)得到隨機(jī)森林模型。(6)對(duì)于一個(gè)預(yù)測(cè)樣本,每棵決策樹(shù)都可以得到一個(gè)分類結(jié)果,通過(guò)投票機(jī)制可得這些決策樹(shù)分類結(jié)果中出現(xiàn)次數(shù)最多的類就是隨機(jī)森林模型的結(jié)果。隨機(jī)森林算法實(shí)現(xiàn)很簡(jiǎn)單,計(jì)算量也不大,在現(xiàn)實(shí)問(wèn)題的解決上效果提升明顯。隨機(jī)森林算法的優(yōu)點(diǎn):不容易過(guò)擬合,適合數(shù)據(jù)的類型多樣,具有很好的抗噪聲能力,結(jié)果容易理解,可以并行化,算法計(jì)算速度快等。同時(shí),隨機(jī)森林算法也有缺點(diǎn):對(duì)小數(shù)據(jù)集可能效果不理想,計(jì)算比單棵決策樹(shù)慢,可能出現(xiàn)相似的樹(shù),投票結(jié)果影響正確的決策。***分類與預(yù)測(cè)第八章數(shù)據(jù)挖掘of3150***分類與預(yù)測(cè)的常用方法
5.集成學(xué)習(xí)
2)隨機(jī)森林算法Scikit-Learn庫(kù)提供了隨機(jī)森林算法,詳見(jiàn)Scikit-Learn的官方文檔:***。使用Scikit-Learn自帶的iris數(shù)據(jù)集實(shí)現(xiàn)隨機(jī)森林算法的代碼如下:其運(yùn)行結(jié)果如下:fromsklearn.treeimportDecisionTreeRegressorfromsklearn.ensembleimportRandomForestRegressorimportnumpyasnpfromsklearn.datasetsimportload_irisiris=load_iris()#printiris#iris的4個(gè)屬性是:萼片寬度、萼片長(zhǎng)度、花瓣寬度、花瓣長(zhǎng)度,#標(biāo)簽是花的種類:setosaversicolourvirginicaprintiris['target'].shaperf=RandomForestRegressor()#這里使用了默認(rèn)的參數(shù)設(shè)置rf.fit(iris.data[:150],iris.target[:150])#進(jìn)行模型的訓(xùn)練##隨機(jī)挑選兩個(gè)預(yù)測(cè)不相同的樣本instance=iris.data[[100,109]]printinstanceprint'instance0prediction;',rf.predict(instance[0])print'instance1prediction;',rf.predict(instance[1])printiris.target[100],iris.target[109]
8.1
Python常用數(shù)據(jù)分析工具8.2
數(shù)據(jù)預(yù)處理8.3分類與預(yù)測(cè)8.5實(shí)戰(zhàn):信用評(píng)估習(xí)題8.4
聚類分析of5651高級(jí)大數(shù)據(jù)人才培養(yǎng)叢書(shū)8.6實(shí)戰(zhàn):影片推薦系統(tǒng)第八章數(shù)據(jù)挖掘***聚類分析第八章數(shù)據(jù)挖掘of3152***聚類分析定義聚類分析作為統(tǒng)計(jì)學(xué)習(xí)的一個(gè)分支和一種無(wú)指導(dǎo)的機(jī)器學(xué)習(xí)方法,已有幾十年的研究歷史。近年來(lái),隨著數(shù)據(jù)挖掘的興起,聚類分析成為數(shù)據(jù)分析領(lǐng)域的一個(gè)研究熱點(diǎn)。聚類分析不僅是數(shù)據(jù)挖掘的重要有效方法,同時(shí)也是其他挖掘任務(wù)的前奏。聚類分析已經(jīng)成為數(shù)據(jù)挖掘研究領(lǐng)域一個(gè)非?;钴S的研究課題。聚類分析是指將物理或抽象對(duì)象的集合分組為由類似的對(duì)象組成的多個(gè)類的分析過(guò)程。聚類分析符合人類認(rèn)知過(guò)程,是一種重要的數(shù)據(jù)挖掘手段,屬于無(wú)監(jiān)督學(xué)習(xí)的范疇。聚類和分類的最大區(qū)別在于:聚類不需要標(biāo)簽而分類需要標(biāo)簽,即聚類和分類分別屬于無(wú)監(jiān)督和有監(jiān)督的學(xué)習(xí)范疇。***聚類分析第八章數(shù)據(jù)挖掘of3153***聚類分析評(píng)價(jià)標(biāo)準(zhǔn)常用的評(píng)價(jià)聚類分析能力的幾個(gè)標(biāo)準(zhǔn)如下:(1)可伸縮性(Scalability):處理大量數(shù)據(jù)的能力。許多聚類分析方法在小于1000個(gè)數(shù)據(jù)對(duì)象的小數(shù)據(jù)集上工作得很好,但是隨著數(shù)據(jù)對(duì)象的增加,這些聚類分析方法的處理能力就會(huì)下降。因此,一個(gè)好的聚類分析方法需要能處理大量的數(shù)據(jù)集。(2)處理不同類型屬性的能力:許多聚類分析方法只能聚類數(shù)值型的數(shù)據(jù)。但是,在數(shù)據(jù)挖掘領(lǐng)域,數(shù)據(jù)類型是多樣的。聚類分析作為一種分析工具,應(yīng)該能夠?qū)Σ煌愋蛿?shù)據(jù)進(jìn)行分析,從而提供一個(gè)普適的模型。(3)用于決定輸入?yún)?shù)的領(lǐng)域知識(shí)最少:許多聚類分析方法在聚類分析中要求用戶輸入一定的參數(shù),如希望產(chǎn)生類的數(shù)目,而且聚類分析結(jié)果對(duì)輸入?yún)?shù)十分敏感。參數(shù)通常很難確定,特別是對(duì)于包含高維對(duì)象的數(shù)據(jù)集來(lái)說(shuō),更是如此。要求用戶輸入?yún)?shù)不僅加重了用戶的負(fù)擔(dān),也使得聚類分析的質(zhì)量難以控制。(4)能夠發(fā)現(xiàn)任意形狀聚類的能力:許多聚類分析方法采用歐氏距離來(lái)決定相似度,這種度量方式趨向于發(fā)現(xiàn)球(超球)簇,而現(xiàn)實(shí)中有大量各類形狀的簇,因此需要聚類分析能夠發(fā)現(xiàn)任意形狀的簇。***聚類分析第八章數(shù)據(jù)挖掘of3154***聚類分析評(píng)價(jià)標(biāo)準(zhǔn)常用的評(píng)價(jià)聚類分析能力的幾個(gè)標(biāo)準(zhǔn)如下:(5)處理噪聲數(shù)據(jù)的能力:現(xiàn)實(shí)的數(shù)據(jù)中不可避免地存在各類噪聲,如孤立點(diǎn)、空缺、未知數(shù)據(jù)或錯(cuò)誤數(shù)據(jù)等。這些噪聲的出現(xiàn)不應(yīng)該對(duì)聚類分析產(chǎn)生較強(qiáng)的影響。有些聚類分析方法對(duì)噪聲是敏感的,可能導(dǎo)致低質(zhì)量的聚類分析結(jié)果。(6)對(duì)于輸入數(shù)據(jù)的順序不敏感:有些聚類分析方法對(duì)于輸入數(shù)據(jù)的順序是敏感的。例如,同一個(gè)數(shù)據(jù)集,當(dāng)以不同的順序提交給同一個(gè)方法時(shí),可能生成差別很大的聚類分析結(jié)果。(7)處理高維數(shù)據(jù)的能力:一個(gè)數(shù)據(jù)庫(kù)或數(shù)據(jù)倉(cāng)庫(kù)可能包含若干維或若干屬性。許多聚類分析方法擅長(zhǎng)處理低維的數(shù)據(jù),可能只涉及兩維到三維。但是在高維情況下,數(shù)據(jù)分布可能很稀疏,所以對(duì)這樣的數(shù)據(jù)對(duì)象進(jìn)行聚類分析是一個(gè)具有挑戰(zhàn)性的課題。(8)滿足用戶的約束條件:在現(xiàn)實(shí)世界中,可能需要在各種約束條件下進(jìn)行聚類分析。要找到既滿足特定的約束,又具有良好聚類特性的數(shù)據(jù)分組是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。(9)聚類分析結(jié)果的可解釋性:聚類分析是為分析數(shù)據(jù)服務(wù)的,人們期望通過(guò)聚類分析從數(shù)據(jù)中抽取某種特定語(yǔ)義的解釋,也就是說(shuō),聚類分析的結(jié)果應(yīng)該是可解釋的、可理解的和可用的。***聚類分析第八章數(shù)據(jù)挖掘of3155***數(shù)據(jù)相似度度量聚類分析最基本的問(wèn)題是相似度的度量。數(shù)據(jù)本身的模式和聚類方法所采用的度量方式是否匹配,直接關(guān)系聚類分析結(jié)果的好壞。在實(shí)際問(wèn)題中,遇到的數(shù)據(jù)多數(shù)不能直接用于聚類分析,而且它們可能包含不同的屬性類型。其中,數(shù)值屬性和類屬性比較常見(jiàn)。聚類分析依據(jù)屬性類型來(lái)選擇相似度的度量方式。
1.?dāng)?shù)值屬性的數(shù)據(jù)的相似度度量方式數(shù)值屬性的數(shù)據(jù)距離計(jì)算,幾乎都依賴數(shù)據(jù)之間的距離。給定常見(jiàn)的向量數(shù)據(jù),很容易求得數(shù)據(jù)之間的相似度,這里相似度即距離。經(jīng)典的數(shù)據(jù)距離度量方式有馬氏距離、明氏距離和余弦距離等。***聚類分析第八章數(shù)據(jù)挖掘of3156***數(shù)據(jù)相似度度量1.?dāng)?shù)值屬性的數(shù)據(jù)的相似度度量方式***聚類分析第八章數(shù)據(jù)挖掘of3157***數(shù)據(jù)相似度度量1.?dāng)?shù)值屬性的數(shù)據(jù)的相似度度量方式***聚類分析第八章數(shù)據(jù)挖掘of3158***數(shù)據(jù)相似度度量2.類屬性的數(shù)據(jù)相似度度量方式類屬性數(shù)據(jù)的相似度度量方式是把類屬性轉(zhuǎn)換成二進(jìn)制屬性,即屬性值是否存在用0和1表示,這樣就可以用數(shù)值屬性的處理方式來(lái)處理當(dāng)前的數(shù)據(jù)。假如類屬性數(shù)據(jù)個(gè)數(shù)比較多,轉(zhuǎn)換后很可能出現(xiàn)高維數(shù)據(jù)。***聚類分析第八章數(shù)據(jù)挖掘of3159***聚類分析的常用方法聚類分析方法的選取取決于數(shù)據(jù)的類型、聚類的目的和應(yīng)用。按照聚類分析方法主要思路的不同,聚類分析方法[15~17]可以分為劃分方法、基于層次的聚類分析方法、基于密度的聚類分析方法、基于網(wǎng)格的方法、基于模型的方法等。因篇幅所限,下面介紹常用的3種方法。1.劃分方法劃分方法的原理是把待聚類的數(shù)據(jù)對(duì)象集劃分為若干簇,一個(gè)簇就是一個(gè)聚類。在給定聚類數(shù)的情況下,劃分方法首先會(huì)初始化分組,在此基礎(chǔ)上迭代優(yōu)化初始分組,直到聚類中心不再發(fā)生變化為止,并且要求一個(gè)元素只屬于一個(gè)類,而且不能有空分組。在該方法中,其核心思想就是嘗試依據(jù)目標(biāo)函數(shù)不斷優(yōu)化前一次的結(jié)果,使得每一次優(yōu)化后的聚類方案都比上一次優(yōu),當(dāng)算法終止的臨界條件滿足時(shí),得到最終聚類方案。常見(jiàn)的劃分方法有:PAM算法、CLARANS算法、k-Means算法、CLARA算法等。劃分方法的主要優(yōu)點(diǎn)是算法簡(jiǎn)單、快速,但一般要求所有的數(shù)據(jù)都放入內(nèi)存,這限制了它在大規(guī)模數(shù)據(jù)上的應(yīng)用。劃分方法還要求用戶預(yù)先指定聚類的個(gè)數(shù),但在大多數(shù)實(shí)際應(yīng)用中,最終的聚類個(gè)數(shù)是未知的。另外,劃分方法只使用某一固定的原則來(lái)決定聚類,這就使得當(dāng)聚類的形狀不規(guī)則或大小差別很大時(shí),聚類的結(jié)果不能令人滿意。***聚類分析第八章數(shù)據(jù)挖掘of3160***聚類分析的常用方法1.劃分方法k-Means算法是最流行的聚類分析方法之一。首先,它隨機(jī)地選取
個(gè)初始聚類中心,并把每個(gè)對(duì)象分配給離它最近的中心,從而得到一個(gè)初始聚類。其次,計(jì)算出當(dāng)前每個(gè)聚類的重心,作為新的聚類中心,并把每個(gè)對(duì)象重新分配到最近的中心。如果新的聚類的質(zhì)量?jī)?yōu)于原先的聚類,則用新聚類代替原聚類。循環(huán)執(zhí)行這一過(guò)程直到聚類質(zhì)量不再提高為止。k-Means算法的中心是虛擬的,并不是數(shù)據(jù)庫(kù)中確實(shí)存在的對(duì)象。k-Medoids算法用中心對(duì)象(Medoid)代替中心(Means)。它隨機(jī)地選擇
個(gè)對(duì)象作為中心對(duì)象,把每個(gè)對(duì)象分配給離它最近的中心對(duì)象。其聚類的迭代過(guò)程就是中心對(duì)象和非中心對(duì)象的反復(fù)替換,直到目標(biāo)函數(shù)值不再有改進(jìn)為止。k-Means算法的示例Python源代碼詳見(jiàn)P:241-243。其運(yùn)行結(jié)果如下:聚類結(jié)果如圖8-9所示。***聚類分析第八章數(shù)據(jù)挖掘of3161***聚類分析的常用方法1.劃分方法PAM算法是最早的k-Medoids算法之一。它首先隨機(jī)地選取k個(gè)中心對(duì)象,通過(guò)分析所有兩兩可能組成的對(duì)象對(duì),區(qū)分哪個(gè)是中心對(duì)象,哪個(gè)不是中心對(duì)象,然后選出一個(gè)比較好的中心對(duì)象,并在一輪迭代中選出最好的那些對(duì)象作為下一輪的中心對(duì)象。PAM算法對(duì)于小數(shù)據(jù)集的聚類效果比較好,但對(duì)于中等數(shù)據(jù)集和大數(shù)據(jù)集的聚類效果不佳。CLARA算法與PAM算法的不同之處是CLARA算法采用了采樣技術(shù)。它從實(shí)際數(shù)據(jù)中選出一小部分作為數(shù)據(jù)代表,并從這些樣本中用PAM算法產(chǎn)生k個(gè)中心對(duì)象。CLARA算法能處理比較大的數(shù)據(jù)集。CLARANS算法融合了PAM算法和CLARA算法的優(yōu)點(diǎn),只搜索局部數(shù)據(jù),但不局限于固定的搜索空間。它可以看作圖的搜索算法,圖中每個(gè)節(jié)點(diǎn)代表一個(gè)解,即k個(gè)中心對(duì)象。如果兩個(gè)節(jié)點(diǎn)包含k-1個(gè)相同的中心對(duì)象,則稱它們是相鄰的,互為鄰居。給定訪問(wèn)鄰居的最大個(gè)數(shù)及重復(fù)迭代的最大次數(shù),CLARANS算法隨機(jī)地選取k
個(gè)對(duì)象作為當(dāng)前的中心對(duì)象集,每次迭代隨機(jī)地把一個(gè)中心對(duì)象替換為非中心對(duì)象,得到一個(gè)相鄰的中心對(duì)象集。如果新的聚類的質(zhì)量?jī)?yōu)于原先的聚類,則用新的中心對(duì)象集代替原中心對(duì)象集,否則,進(jìn)行下一次替換。如果已經(jīng)搜索了最大個(gè)數(shù)的鄰居,聚類質(zhì)量都沒(méi)有提高,則該算法得到一個(gè)局部最優(yōu)解。重新開(kāi)始這一過(guò)程,又得到一組局部最優(yōu)解,取其中聚類質(zhì)量最高的解作為最終解。CLARANS算法仍然具有和其他劃分方法相同的缺點(diǎn),如要求數(shù)據(jù)放入內(nèi)存、得到的只是局部最優(yōu)解、結(jié)果受初始值影響等。
***聚類分析第八章數(shù)據(jù)挖掘of3162***聚類分析的常用方法2.基于層次的聚類分析方法基于層次的聚類分析方法需要把給定的數(shù)據(jù)對(duì)象集分解為幾級(jí),然后一步一步地完成聚類,使用遞歸的思想對(duì)待聚類數(shù)據(jù)對(duì)象集的合并或分解,最后的結(jié)果以類別樹(shù)的形式呈現(xiàn),其中,節(jié)點(diǎn)是數(shù)據(jù)對(duì)象的數(shù)據(jù)子集對(duì)象?;趯哟蔚木垲惙治龇椒ㄓ心凼胶头至咽絻煞N。凝聚式方法,即自底向上的聚類分析方法,首先把待聚類的每一個(gè)數(shù)據(jù)視為一個(gè)類,其次依據(jù)規(guī)則有序地進(jìn)行合并,直到滿足終止條件為上。分裂式方法,即自頂向下的聚類分析方法,首先把全部的待聚類數(shù)據(jù)看作一個(gè)類,然后依據(jù)分裂條件有序分裂為若干個(gè)類。下面介紹凝聚式方法。凝聚式方法通過(guò)計(jì)算兩類數(shù)據(jù)點(diǎn)之間的相似度,對(duì)所有數(shù)據(jù)點(diǎn)中最為相似的兩個(gè)數(shù)據(jù)點(diǎn)進(jìn)行組合,并反復(fù)迭代這一過(guò)程。簡(jiǎn)單地說(shuō),它就是通過(guò)計(jì)算每一個(gè)類別的數(shù)據(jù)點(diǎn)與所有數(shù)據(jù)點(diǎn)之間的距離來(lái)確定它們之間的相似度,距離越小,相似度越高。最后將距離最近的兩個(gè)數(shù)據(jù)點(diǎn)或類別進(jìn)行組合,生成聚類樹(shù)。合并過(guò)程如下:我們可以獲得一個(gè)N×N的距離矩陣X,其中,表示和
的距離,稱為數(shù)據(jù)點(diǎn)與數(shù)據(jù)點(diǎn)之間的距離。記每一個(gè)數(shù)據(jù)點(diǎn)為
,將距離最小的數(shù)據(jù)點(diǎn)進(jìn)行合并,得到一個(gè)組合數(shù)據(jù)點(diǎn),記為G。***聚類分析第八章數(shù)據(jù)挖掘of3163***聚類分析的常用方法2.基于層次的聚類分析方法數(shù)據(jù)點(diǎn)與組合數(shù)據(jù)點(diǎn)之間的距離:當(dāng)計(jì)算G和
的距離時(shí),需要計(jì)算
和G中每個(gè)點(diǎn)的距離。組合數(shù)據(jù)點(diǎn)與組合數(shù)據(jù)點(diǎn)之間的距離:主要有SingleLinkage、CompleteLinkage和AverageLinkage三種計(jì)算方法。1)SingleLinkage
SingleLinkage是將兩個(gè)組合數(shù)據(jù)點(diǎn)中距離最近的兩個(gè)數(shù)據(jù)點(diǎn)間的距離作為這兩個(gè)組合數(shù)據(jù)點(diǎn)的距離。這種方法容易受極端值的影響。兩個(gè)不相似的組合數(shù)據(jù)點(diǎn)可能由于其中的某個(gè)極端的數(shù)據(jù)點(diǎn)距離較近而組合在一起。2)CompleteLinkageCompleteLinkage與SingleLinkage相反,它將兩個(gè)組合數(shù)據(jù)點(diǎn)中距離最遠(yuǎn)的兩個(gè)數(shù)據(jù)點(diǎn)間的距離作為這兩個(gè)組合數(shù)據(jù)點(diǎn)的距離。CompleteLinkage的問(wèn)題也與SingleLinkage相反,兩個(gè)相似的組合數(shù)據(jù)點(diǎn)可能
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 閘板閥維修施工方案
- 圍墻護(hù)欄基礎(chǔ)施工方案
- 2025年中考語(yǔ)文一輪復(fù)習(xí):古詩(shī)詞閱讀核心考點(diǎn)解讀
- 施工方案自己寫(xiě)嗎
- 碼頭岸電施工方案
- 鷹潭護(hù)坡施工方案
- 2025年境外分子測(cè)試試題及答案
- 6年級(jí)下冊(cè)語(yǔ)文第10課
- 荊州古建施工方案公司
- codebert在編程領(lǐng)域的使用
- 考生個(gè)人簡(jiǎn)歷及自述表
- 試講評(píng)分標(biāo)準(zhǔn)
- 硬質(zhì)支氣管鏡技術(shù)參數(shù)要求
- 《網(wǎng)紅現(xiàn)象的研究背景、意義及文獻(xiàn)綜述(2100字)》
- 管接頭注塑模具設(shè)計(jì)開(kāi)題報(bào)告
- 最新-駕駛員職業(yè)心理和生理健康知識(shí)二-課件
- 加氫裝置催化劑硫化方案
- 核電廠概率安全評(píng)價(jià)概述課件
- 2022“博學(xué)杯”全國(guó)幼兒識(shí)字與閱讀大賽選拔試卷
- 幼兒園硬筆專用字帖大寫(xiě)數(shù)字描紅
- 滬教牛津版四年級(jí)上冊(cè)英語(yǔ)全冊(cè)課件
評(píng)論
0/150
提交評(píng)論