使用scikitlearn構(gòu)建模型課件_第1頁
使用scikitlearn構(gòu)建模型課件_第2頁
使用scikitlearn構(gòu)建模型課件_第3頁
使用scikitlearn構(gòu)建模型課件_第4頁
使用scikitlearn構(gòu)建模型課件_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、使用scikit-learn構(gòu)建模型1構(gòu)建并評價(jià)聚類模型目錄使用sklearn轉(zhuǎn)換器處理數(shù)據(jù)2構(gòu)建并評價(jià)分類模型3構(gòu)建并評價(jià)回歸模型4小結(jié)5sklearn庫的datasets模塊集成了部分?jǐn)?shù)據(jù)分析的經(jīng)典數(shù)據(jù)集,可以使用這些數(shù)據(jù)集進(jìn)行數(shù)據(jù)預(yù)處理,建模等操作,熟悉sklearn的數(shù)據(jù)處理流程和建模流程。datasets模塊常用數(shù)據(jù)集的加載函數(shù)與解釋如下表所示。使用sklearn進(jìn)行數(shù)據(jù)預(yù)處理會(huì)用到sklearn提供的統(tǒng)一接口轉(zhuǎn)換器(Transformer)。加載后的數(shù)據(jù)集可以視為一個(gè)字典,幾乎所有的sklearn數(shù)據(jù)集均可以使用data,target,feature_names,DESCR分別獲取

2、數(shù)據(jù)集的數(shù)據(jù),標(biāo)簽,特征名稱和描述信息。加載datasets模塊中數(shù)據(jù)集數(shù)據(jù)集加載函數(shù)數(shù)據(jù)集任務(wù)類型數(shù)據(jù)集加載函數(shù)數(shù)據(jù)集任務(wù)類型load_ boston回歸load_breast_cancer分類,聚類fetch_california_housing回歸load_iris分類,聚類load_digits分類load_wine分類datasets模塊常用數(shù)據(jù)集加載函數(shù)及其解釋在數(shù)據(jù)分析過程中,為了保證模型在實(shí)際系統(tǒng)中能夠起到預(yù)期作用,一般需要將樣本分成獨(dú)立的三部分:訓(xùn)練集(train set):用于估計(jì)模型。驗(yàn)證集(validation set):用于確定網(wǎng)絡(luò)結(jié)構(gòu)或者控制模型復(fù)雜程度的參數(shù)。測試

3、集(test set):用于檢驗(yàn)最優(yōu)的模型的性能。典型的劃分方式是訓(xùn)練集占總樣本的50,而驗(yàn)證集和測試集各占25。將數(shù)據(jù)集劃分為訓(xùn)練集和測試集常用劃分方式當(dāng)數(shù)據(jù)總量較少的時(shí)候,使用上面的方法將數(shù)據(jù)劃分為三部分就不合適了。常用的方法是留少部分做測試集,然后對其余N個(gè)樣本采用K折交叉驗(yàn)證法,基本步驟如下:將樣本打亂,均勻分成K份。輪流選擇其中K1份做訓(xùn)練,剩余的一份做驗(yàn)證。計(jì)算預(yù)測誤差平方和,把K次的預(yù)測誤差平方和的均值作為選擇最優(yōu)模型結(jié)構(gòu)的依據(jù)。將數(shù)據(jù)集劃分為訓(xùn)練集和測試集K折交叉驗(yàn)證法sklearn的model_selection模塊提供了train_test_split函數(shù),能夠?qū)?shù)據(jù)集進(jìn)行

4、拆分,其使用格式如下。sklearn.model_selection.train_test_split(*arrays, *options)將數(shù)據(jù)集劃分為訓(xùn)練集和測試集train_test_split函數(shù)參數(shù)名稱說明*arrays接收一個(gè)或多個(gè)數(shù)據(jù)集。代表需要?jiǎng)澐值臄?shù)據(jù)集,若為分類回歸則分別傳入數(shù)據(jù)和標(biāo)簽,若為聚類則傳入數(shù)據(jù)。無默認(rèn)。test_size接收float,int,None類型的數(shù)據(jù)。代表測試集的大小。如果傳入的為float類型的數(shù)據(jù)則需要限定在0-1之間,代表測試集在總數(shù)中的占比;如果傳入為int類型的數(shù)據(jù),則表示測試集記錄的絕對數(shù)目。該參數(shù)與train_size可以只傳入一個(gè)。在

5、0.21版本前,若test_size和train_size均為默認(rèn)則testsize為25%。train_size接收float,int,None類型的數(shù)據(jù)。代表訓(xùn)練集的大小。該參數(shù)與test_size可以只傳入一個(gè)。random_state接收int。代表隨機(jī)種子編號,相同隨機(jī)種子編號產(chǎn)生相同的隨機(jī)結(jié)果,不同的隨機(jī)種子編號產(chǎn)生不同的隨機(jī)結(jié)果。默認(rèn)為None。shuffle接收boolean。代表是否進(jìn)行有放回抽樣。若該參數(shù)取值為True則stratify參數(shù)必須不能為空。stratify接收array或者None。如果不為None,則使用傳入的標(biāo)簽進(jìn)行分層抽樣。train_test_spli

6、t函數(shù)根據(jù)傳入的數(shù)據(jù),分別將傳入的數(shù)據(jù)劃分為訓(xùn)練集和測試集。如果傳入的是1組數(shù)據(jù),那么生成的就是這一組數(shù)據(jù)隨機(jī)劃分后訓(xùn)練集和測試集,總共2組。如果傳入的是2組數(shù)據(jù),則生成的訓(xùn)練集和測試集分別2組,總共4組。train_test_split是最常用的數(shù)據(jù)劃分方法,在model_selection模塊中還提供了其他數(shù)據(jù)集劃分的函數(shù),如PredefinedSplit,ShuffleSplit等。將數(shù)據(jù)集劃分為訓(xùn)練集和測試集train_test_split函數(shù)sklearn把相關(guān)的功能封裝為轉(zhuǎn)換器(transformer)。使用sklearn轉(zhuǎn)換器能夠?qū)崿F(xiàn)對傳入的NumPy數(shù)組進(jìn)行標(biāo)準(zhǔn)化處理,歸一化處

7、理,二值化處理,PCA降維等操作。轉(zhuǎn)換器主要包括三個(gè)方法:使用sklearn轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理與降維sklearn轉(zhuǎn)換器三個(gè)方法方法名稱說明fitfit方法主要通過分析特征和目標(biāo)值,提取有價(jià)值的信息,這些信息可以是統(tǒng)計(jì)量,也可以是權(quán)值系數(shù)等。transformtransform方法主要用來對特征進(jìn)行轉(zhuǎn)換。從可利用信息的角度可分為無信息轉(zhuǎn)換和有信息轉(zhuǎn)換。無信息轉(zhuǎn)換是指不利用任何其他信息進(jìn)行轉(zhuǎn)換,比如指數(shù)和對數(shù)函數(shù)轉(zhuǎn)換等。有信息轉(zhuǎn)換根據(jù)是否利用目標(biāo)值向量又可分為無監(jiān)督轉(zhuǎn)換和有監(jiān)督轉(zhuǎn)換。無監(jiān)督轉(zhuǎn)換指只利用特征的統(tǒng)計(jì)信息的轉(zhuǎn)換,比如標(biāo)準(zhǔn)化和PCA降維等。有監(jiān)督轉(zhuǎn)換指既利用了特征信息又利用了目標(biāo)值信息

8、的轉(zhuǎn)換,比如通過模型選擇特征和LDA降維等。fit_transformfit_transform方法就是先調(diào)用fit方法,然后調(diào)用transform方法。在數(shù)據(jù)分析過程中,各類特征處理相關(guān)的操作都需要對訓(xùn)練集和測試集分開操作,需要將訓(xùn)練集的操作規(guī)則,權(quán)重系數(shù)等應(yīng)用到測試集中。如果使用pandas,則應(yīng)用至測試集的過程相對煩瑣,使用sklearn轉(zhuǎn)換器可以解決這一困擾。使用sklearn轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理與降維sklearn轉(zhuǎn)換器函數(shù)名稱說明MinMaxScaler對特征進(jìn)行離差標(biāo)準(zhǔn)化。StandardScaler對特征進(jìn)行標(biāo)準(zhǔn)差標(biāo)準(zhǔn)化。Normalizer對特征進(jìn)行歸一化。Binarizer

9、對定量特征進(jìn)行二值化處理。OneHotEncoder對定性特征進(jìn)行獨(dú)熱編碼處理。FunctionTransformer對特征進(jìn)行自定義函數(shù)變換。使用sklearn轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理與降維sklearn部分預(yù)處理函數(shù)與其作用sklearn除了提供基本的特征變換函數(shù)外,還提供了降維算法,特征選擇算法,這些算法的使用也是通過轉(zhuǎn)換器的方式。使用sklearn轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理與降維PCA降維算法函數(shù)使用sklearn轉(zhuǎn)換器進(jìn)行數(shù)據(jù)預(yù)處理與降維PCA降維算法函數(shù)常用參數(shù)及其作用函數(shù)名稱說明n_components接收None,int,float或string。未指定時(shí),代表所有特征均會(huì)被保留下來;如

10、果為int,則表示將原始數(shù)據(jù)降低到n個(gè)維度;如果為float,同時(shí)svd_solver參數(shù)等于full;賦值為string,比如n_components=mle,將自動(dòng)選取特征個(gè)數(shù)n,使得滿足所要求的方差百分比。默認(rèn)為None。copy接收bool。代表是否在運(yùn)行算法時(shí)將原始數(shù)據(jù)復(fù)制一份,如果為True,則運(yùn)行后,原始數(shù)據(jù)的值不會(huì)有任何改變;如果為False,則運(yùn)行PCA算法后,原始訓(xùn)練數(shù)據(jù)的值會(huì)發(fā)生改變。默認(rèn)為Truewhiten接收boolean。表示白化,所謂白化,就是對降維后的數(shù)據(jù)的每個(gè)特征進(jìn)行歸一化,讓方差都為1。默認(rèn)為False。svd_solver接收string auto, f

11、ull, arpack, randomized。代表使用的SVD算法。randomized一般適用于數(shù)據(jù)量大,數(shù)據(jù)維度多,同時(shí)主成分?jǐn)?shù)目比例又較低的PCA降維,它使用了一些加快SVD的隨機(jī)算法。full是使用SciPy庫實(shí)現(xiàn)的傳統(tǒng)SVD算法。arpack和randomized的適用場景類似,區(qū)別是randomized使用的是sklearn自己的SVD實(shí)現(xiàn),而arpack直接使用了SciPy庫的sparse SVD實(shí)現(xiàn)。auto則代表PCA類會(huì)自動(dòng)在上述三種算法中去權(quán)衡,選擇一個(gè)合適的SVD算法來降維。默認(rèn)為auto。1構(gòu)建并評價(jià)聚類模型目錄使用sklearn轉(zhuǎn)換器處理數(shù)據(jù)2構(gòu)建并評價(jià)分類模型3

12、構(gòu)建并評價(jià)回歸模型4小結(jié)5聚類的輸入是一組未被標(biāo)記的樣本,聚類根據(jù)數(shù)據(jù)自身的距離或相似度將他們劃分為若干組,劃分的原則是組內(nèi)樣本最小化而組間(外部)距離最大化,如圖所示。使用sklearn估計(jì)器構(gòu)建聚類模型聚類算法類別包括的主要算法劃分(分裂)方法K-Means算法(K-平均),K-MEDOIDS算法(K-中心點(diǎn))和CLARANS算法(基于選擇的算法)。層次分析方法BIRCH算法(平衡迭代規(guī)約和聚類),CURE算法(代表點(diǎn)聚類)和CHAMELEON算法(動(dòng)態(tài)模型)?;诿芏鹊姆椒―BSCAN算法(基于高密度連接區(qū)域),DENCLUE算法(密度分布函數(shù))和OPTICS算法(對象排序識別)。基于網(wǎng)

13、格的方法STING算法(統(tǒng)計(jì)信息網(wǎng)絡(luò)),CLIOUE算法(聚類高維空間)和WAVE-CLUSTER算法(小波變換)。使用sklearn估計(jì)器構(gòu)建聚類模型聚類方法類別sklearn常用的聚類算法模塊cluster提供的聚類算法及其適用范圍如下所示:使用sklearn估計(jì)器構(gòu)建聚類模型cluster提供的聚類算法及其適用范圍函數(shù)名稱參數(shù)適用范圍距離度量KMeans簇?cái)?shù)可用于樣本數(shù)目很大,聚類數(shù)目中等的場景。點(diǎn)之間的距離Spectral clustering簇?cái)?shù)可用于樣本數(shù)目中等,聚類數(shù)目較小的場景。圖距離Ward hierarchical clustering簇?cái)?shù)可用于樣本數(shù)目較大,聚類數(shù)目較大的

14、場景。點(diǎn)之間的距離Agglomerative clustering簇?cái)?shù),鏈接類型,距離可用于樣本數(shù)目較大,聚類數(shù)目較大的場景。任意成對點(diǎn)線圖間的距離DBSCAN半徑大小,最低成員數(shù)目可用于樣本數(shù)目很大,聚類數(shù)目中等的場景。最近的點(diǎn)之間的距離Birch分支因子,閾值,可選全局集群可用于樣本數(shù)目很大,聚類數(shù)目較大的場景。點(diǎn)之間的歐式距離聚類算法實(shí)現(xiàn)需要sklearn估計(jì)器(estimator)。sklearn估計(jì)器和轉(zhuǎn)換器類似,擁有fit和predict兩個(gè)方法。兩個(gè)方法的作用如下。使用sklearn估計(jì)器構(gòu)建聚類模型sklearn估計(jì)器方法名稱說明fitfit方法主要用于訓(xùn)練算法。該方法可接收用

15、于有監(jiān)督學(xué)習(xí)的訓(xùn)練集及其標(biāo)簽兩個(gè)參數(shù),也可以接收用于無監(jiān)督學(xué)習(xí)的數(shù)據(jù)。predictpredict用于預(yù)測有監(jiān)督學(xué)習(xí)的測試集標(biāo)簽,亦可以用于劃分傳入數(shù)據(jù)的類別。聚類完成后需要通過可視化的方式查看聚類效果,通過sklearn的manifold模塊中的TSNE函數(shù)可以實(shí)現(xiàn)多維數(shù)據(jù)的可視化展現(xiàn)。其原理是使用TSNE進(jìn)行數(shù)據(jù)降維,降成兩維。使用sklearn估計(jì)器構(gòu)建聚類模型TSNE函數(shù)聚類評價(jià)的標(biāo)準(zhǔn)是組內(nèi)的對象相互之間是相似的(相關(guān)的),而不同組中的對象是不同的(不相關(guān)的)。即組內(nèi)的相似性越大,組間差別越大,聚類效果就越好。sklearn的metrics模塊提供的聚類模型評價(jià)指標(biāo)。評價(jià)聚類模型聚類模

16、型評價(jià)指標(biāo)方法名稱真實(shí)值最佳值sklearn函數(shù)ARI評價(jià)法(蘭德系數(shù))需要1.0adjusted_rand_scoreAMI評價(jià)法(互信息)需要1.0adjusted_mutual_info_scoreV-measure評分需要1.0completeness_scoreFMI評價(jià)法需要1.0fowlkes_mallows_score輪廓系數(shù)評價(jià)法不需要畸變程度最大silhouette_scoreCalinski-Harabasz指數(shù)評價(jià)法不需要相較最大calinski_harabaz_score上表總共列出了6種評價(jià)的方法,其中前4種方法均需要真實(shí)值的配合才能夠評價(jià)聚類算法的優(yōu)劣,后2種則不

17、需要真實(shí)值的配合。但是前4種方法評價(jià)的效果更具有說服力,并且在實(shí)際運(yùn)行的過程中在有真實(shí)值做參考的情況下,聚類方法的評價(jià)可以等同于分類算法的評價(jià)。除了輪廓系數(shù)以外的評價(jià)方法,在不考慮業(yè)務(wù)場景的情況下都是得分越高,其效果越好,最高分值均為1。而輪廓系數(shù)則需要判斷不同類別數(shù)目的情況下其輪廓系數(shù)的走勢,尋找最優(yōu)的聚類數(shù)目。在具備真實(shí)值作為參考的情況下,幾種方法均可以很好地評估聚類模型。在沒有真實(shí)值作為參考的時(shí)候,輪廓系數(shù)評價(jià)方法和Calinski-Harabasz指數(shù)評價(jià)方法可以結(jié)合使用。評價(jià)聚類模型聚類模型評價(jià)指標(biāo)1構(gòu)建并評價(jià)聚類模型目錄使用sklearn轉(zhuǎn)換器處理數(shù)據(jù)2構(gòu)建并評價(jià)分類模型3構(gòu)建并評

18、價(jià)回歸模型4小結(jié)5在數(shù)據(jù)分析領(lǐng)域,分類算法有很多,其原理千差萬別,有基于樣本距離的最近鄰算法,有基于特征信息熵的決策樹,有基于bagging的隨機(jī)森林,有基于boosting的梯度提升分類樹,但其實(shí)現(xiàn)的過程相差不大。過程如圖所示。使用sklearn估計(jì)器構(gòu)建分類模型分類算法的實(shí)現(xiàn)過程sklearn中提供的分類算法非常多,分別存在于不同的模塊中。常用的分類算法如下表所示。使用sklearn估計(jì)器構(gòu)建分類模型sklearn庫常用分類算法函數(shù)模塊名稱函數(shù)名稱算法名稱linear_modelLogisticRegression邏輯斯蒂回歸svmSVC支持向量機(jī)neighborsKNeighborsCl

19、assifierK最近鄰分類naive_bayesGaussianNB高斯樸素貝葉斯treeDecisionTreeClassifier分類決策樹ensembleRandomForestClassifier隨機(jī)森林分類ensembleGradientBoostingClassifier梯度提升分類樹分類模型對測試集進(jìn)行預(yù)測而得出的準(zhǔn)確率并不能很好地反映模型的性能,為了有效判斷一個(gè)預(yù)測模型的性能表現(xiàn),需要結(jié)合真實(shí)值,計(jì)算出精確率、召回率、F1值和Cohens Kappa系數(shù)等指標(biāo)來衡量。常規(guī)分類模型的評價(jià)指標(biāo)如表所示。分類模型評價(jià)方法前4種都是分值越高越好,其使用方法基本相同。sklearn的m

20、etrics模塊還提供了一個(gè)能夠輸出分類模型評價(jià)報(bào)告的函數(shù)classfication_report。評價(jià)分類模型分類模型的評價(jià)指標(biāo)方法名稱最佳值sklearn函數(shù)Precision(精確率)1.0metrics.precision_scoreRecall(召回率)1.0metrics.recall_scoreF1值1.0metrics.f1_scoreCohens Kappa系數(shù)1.0metrics.cohen_kappa_scoreROC曲線最靠近y軸metrics. roc_curve除了使用數(shù)值,表格形式評估分類模型的性能,還可通過繪制ROC曲線的方式來評估分類模型。ROC曲線橫縱坐標(biāo)范

21、圍為0,1,通常情況下ROC曲線與X軸形成的面積越大,表示模型性能越好。但是當(dāng)ROC曲線處于下圖中藍(lán)色虛線的位置,就表明了模型的計(jì)算結(jié)果基本都是隨機(jī)得來的,在此種情況下模型起到的作用幾乎為零。故在實(shí)際中ROC曲線離圖中藍(lán)色虛線越遠(yuǎn)表示模型效果越好。評價(jià)分類模型ROC曲線1構(gòu)建并評價(jià)聚類模型目錄使用sklearn轉(zhuǎn)換器處理數(shù)據(jù)2構(gòu)建并評價(jià)分類模型3構(gòu)建并評價(jià)回歸模型4小結(jié)5從19世紀(jì)初高斯提出最小二乘估計(jì)算起,回歸分析的歷史已有200多年。從經(jīng)典的回歸分析方法到近代的回歸分析方法。按照研究方法劃分,回歸分析研究的范圍大致如圖所示?;貧w算法的實(shí)現(xiàn)步驟和分類算法基本相同,分為學(xué)習(xí)和預(yù)測2個(gè)步驟。學(xué)習(xí)

22、是通過訓(xùn)練樣本數(shù)據(jù)來擬合回歸方程;預(yù)測則是利用學(xué)習(xí)過程中擬合出的回歸方程,將測試數(shù)據(jù)放入方程中求出預(yù)測值。使用sklearn估計(jì)器構(gòu)建回歸模型回歸分析方法回歸模型名稱適用條件算法描述線性回歸因變量與自變量是線性關(guān)系對一個(gè)或多個(gè)自變量和因變量之間的線性關(guān)系進(jìn)行建模,可用最小二乘法求解模型系數(shù)。非線性回歸因變量與自變量之間不都是線性關(guān)系對一個(gè)或多個(gè)自變量和因變量之間的非線性關(guān)系進(jìn)行建模。如果非線性關(guān)系可以通過簡單的函數(shù)變換轉(zhuǎn)化成線性關(guān)系,用線性回歸的思想求解;如果不能轉(zhuǎn)化,用非線性最小二乘方法求解。Logistic回歸因變量一般有1和0(是與否)兩種取值是廣義線性回歸模型的特例,利用Logisti

23、c函數(shù)將因變量的取值范圍控制在0和1之間,表示取值為1的概率。嶺回歸參與建模的自變量之間具有多重共線性是一種改進(jìn)最小二乘估計(jì)的方法。主成分回歸參與建模的自變量之間具有多重共線性主成分回歸是根據(jù)主成分分析的思想提出來的,是對最小二乘法的一種改進(jìn),它是參數(shù)估計(jì)的一種有偏估計(jì)??梢韵宰兞恐g的多重共線性。使用sklearn估計(jì)器構(gòu)建回歸模型常用的回歸模型sklearn內(nèi)部提供了不少回歸算法,常用的函數(shù)如下表所示。可以利用預(yù)測結(jié)果和真實(shí)結(jié)果畫出折線圖作對比,以便更直觀看出線性回歸模型效果。使用sklearn估計(jì)器構(gòu)建回歸模型sklearn庫常用回歸算法函數(shù)模塊名稱函數(shù)名稱算法名稱linear_modelLinearRegression線性回歸svmSVR支持向量回歸neigh

溫馨提示

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

評論

0/150

提交評論