




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
線上書籍網站數據綜合分析——
使用scikit-learn構建模型目錄1構建基于線上書籍網站數據的聚類模型使用sklearn轉換器處理線上書籍網站數據2構建基于線上書籍網站數據的分類模型3構建基于線上書籍網站數據的回歸模型4任務描述本任務將基于預處理后的線上網站書籍數據,使用pandas加載數據集,并結合sklearn進行數據預處理,為模型的訓練和測試打下堅實的基礎。任務分析(1)使用pandas加載線上網站書籍數據。(2)選取用于聚類分析的特征,并使用sklearn進行標準差標準化處理。使用sklearn轉換器處理線上書籍網站數據加載datasets模塊中的數據集數據集加載函數數據集任務類型數據集加載函數數據集任務類型load_boston回歸load_breast_cancer分類、聚類fetch_california_housing回歸load_iris分類、聚類load_digits分類load_wine分類load_diabetes回歸load_linnerud回歸sklearn庫的datasets模塊集成了部分數據分析的經典數據集,讀者可以使用這些數據集進行數據預處理、建
模等操作,以及熟悉sklearn的數據處理流程和建模流程。datasets模塊常用數據集的加載函數及其解釋,如下表。
使用sklearn進行數據預處理需要用到sklearn提供的統一接口——轉換器(Transformer)。加載datasets模塊中的數據集fromsklearn.datasetsimportload_diabetes#加載diabetes數據集diabetes=load_diabetes()#將數據集賦值給diabetes變量print('diabetes數據集的長度為:',len(diabetes))#使用len函數查看數據集長度print('diabetes數據集的類型為:',type(diabetes))#使用type函數查看數據集類型diabetes數據集的長度為:7diabetes數據集的類型為:<class'sklearn.utils.Bunch'>
如果需要加載某個數據集,那么可以將對應的函數賦值給某個變量。加載diabetes數據集,如以下代碼。加載datasets模塊中的數據集diabetes_data=diabetes['data']#獲取數據集的數據diabetes_target=diabetes['target']#獲取數據集的標簽diabetes_names=diabetes['feature_names']#獲取數據集的特征名diabetes_desc=diabetes['DESCR']#獲取數據集的描述信息查看對應信息只需print()輸入對應變量名即可加載后的數據集可以視為一個字典,幾乎所有的sklearn數據集均可以使用如下屬性分別獲取數據集的數據、標簽、特征名稱和描述信息。datatargetfeature_namesDESCR獲取sklearn自帶數據集的內部信息,如以下代碼。將數據集劃分為訓練集和測試集
在數據分析過程中,為了保證模型在實際系統中能夠起到預期作用,一般需要將總樣本分劃分成獨立的3
部分如下。訓練集(trainset)驗證集(validationset)測試集(testset)
典型的劃分方式如下。
訓練集數量,占總樣本數量的50%。
驗證集數量,占總樣本數量的25%。
測試集數量,占總樣本數量的25%。用于估計模型用于確定網絡結構或控制模型復雜程度的參數用于檢驗最優模型的性能將數據集劃分為訓練集和測試集當總樣本數據較少時,使用上面的方法將樣本數據劃分為3部分將會不合適。常用的方法是留少部分樣本數據做測試集,然后對其余N個樣本采用K折交叉驗證法。其基本步驟如下。
將樣本打亂。
均勻分成K份。
輪流選擇其中K-1份做訓練,剩余的一份做驗證。
計算預測誤差平方和。
將K次的預測誤差平方和的均值作為選擇最優模型結構的依據。將數據集劃分為訓練集和測試集
在sklearn的model_selection模塊中提供了train_test_split函數,可實現對數據集進行拆分,train_test_split函數
的基本使用格式如下。train_test_split函數是最常用的數據劃分方法,在model_selection模塊中還提供了其他數據集劃分的函數,如PredefinedSplit函數、ShuffleSplit函數等。讀者可以通過查看官方文檔學習其使用方法。sklearn.model_selection.train_test_split(*arrays,test_size=None,train_size=None,random_state=None,shuffle=True,stratify=None)將數據集劃分為訓練集和測試集train_test_split函數的常用參數及其說明如下表。數值型數據類型說明*arrays接收list、numpy數組、scipy-sparse矩陣、Pandas數據幀。表示需要劃分的數據集。若為分類回歸,則分別傳入數據和標簽;若為聚類,則傳入數據。無默認值test_size接收float、int。表示測試集的大小。若傳入為float型參數值,則應介于0~1之間,表示測試集在總數據集中的占比;若傳入為int型參數值,則表示測試樣本的絕對數量。默認為Nonetrain_size接收float、int。表示訓練集的大小,傳入的參數值說明與test_size參數的參數值說明相似。默認為Nonerandom_state接收int。表示用于隨機抽樣的偽隨機數發生器的狀態。默認為Noneshuffle接收bool。表示在拆分數據集前是否對數據進行混洗。默認為Truestratify接收array。表示用于保持拆分前類的分布平衡。默認為None將數據集劃分為訓練集和測試集查看對應信息只需print()輸入對應變量名.shape即可train_test_split函數可分別將傳入的數據集劃分為訓練集和測試集。如果傳入的是一組數據集,那么生成的就是這一組數據集隨機劃分后的訓練集和測試集,總共兩組。如果傳入的是兩組數據集,則生成的訓練集和測試集分別兩組,總共4組。將breast_cancer數據集劃分為訓練集和測試集,如以下代碼。fromsklearn.model_selectionimporttrain_test_split#加載diabetes數據集diabetes_data_train,diabetes_data_test,diabetes_target_train,diabetes_target_test=\#定義變量名train_test_split(diabetes_data,diabetes_target,test_size=0.2,random_state=42)#調用函數劃分數據集使用sklearn轉換器進行數據預處理為了幫助用戶實現大量的特征處理相關操作,sklearn將相關的功能封裝為轉換器。轉換器主要包括3個方法:fit()、transform()和fit_transform()。轉換器的3種方法及其說明如下表。方法名稱方法說明fit()主要通過分析特征和目標值提取有價值的信息,這些信息可以是統計量、權值系數等transform()主要用于對特征進行轉換。從可利用信息的角度分為無信息轉換和有信息轉換。無信息轉換是指不利用任何其他信息進行轉換,如指數函數和對數函數轉換等。有信息轉換根據是否利用目標值向量又可分為無監督轉換和有監督轉換。無監督轉換指只利用特征的統計信息的轉換,如標準化和PCA降維等。有監督轉換指既利用了特征信息又利用了目標值信息的轉換,如通過模型選擇特征和LDA降維等fit_transform()即先調用fit()方法,然后調用transform()方法使用sklearn轉換器進行數據預處理目前,使用sklearn轉換器能夠實現對傳入的NumPy數組進行如下處理。標準化處理。歸一化處理。二值化處理。PCA降維等操作。在第5章中,基于pandas庫介紹了標準化處理的原理、概念與方法。但是在數據分析過程中,各類特征處理相關的操作都需要對訓練集和測試集分開進行,需要將訓練集的操作規則、權重系數等應用到測試集中。如果使用pandas,那么應用至測試集的過程相對煩瑣,使用sklearn轉換器可以解決這一困擾。使用sklearn轉換器進行數據預處理sklearn除了提供離差標準化函數MinMaxScaler外,還提供了一系列數據預處理函數,如下表。函數名稱函數說明StandardScaler對特征進行標準差標準化Normalizer對特征進行歸一化Binarizer對定量特征進行二值化處理OneHotEncoder對定性特征進行獨熱編碼處理FunctionTransformer對特征進行自定義函數變換使用sklearn轉換器進行數據預處理
sklearn除了提供基本的特征變換函數外,還提供了降維算法、特征選擇算法,這些算法的使用也是通過轉換器的方式進行的。sklearn的decomposition模塊中提供了PCA類,可實現對數據集進行PCA降維,PCA類的基本使用格式如下。classsklearn.decomposition.PCA(n_components=None,*,copy=True,whiten=False,svd_solver='auto',tol=0.0,iterated_power='auto',random_state=None)使用sklearn轉換器進行數據預處理PCA類常用參數及其說明如下表。參數名稱參數說明n_components接收int、float、'mle'。表示降維后要保留的特征緯度數目。若未指定參數值,則表示所有特征均會被保留下來;若傳入為int型參數值,則表示將原始數據降低到n個維度;若傳入為float型參數值,則將根據樣本特征方差來決定降維后的維度數;若賦值為“mle”,則將會使用MLE算法來根據特征的方差分布情況自動選擇一定數量的主成分特征來降維。默認為Nonecopy接收bool。表示是否在運行算法時將原始訓練數據進行復制。若為True,則運行算法后原始訓練數據的值不會有任何改變;若為False,則運行算法后原始訓練數據的值將會發生改變。默認為Truewhiten接收bool。表示對降維后的特征進行標準化處理,使得具有相同的方差。默認為Falsesvd_solver接收str。表示使用的SVD算法,可選randomized、full、arpack、auto。randomized一般適用于數據量大,數據維度多,同時主成分數目比例又較低的PCA降維。full是使用SciPy庫實現的傳統SVD算法。arpack和randomized的適用場景類似,區別在于,randomized使用的是sklearn自己的SVD實現,而arpack直接使用了SciPy庫的sparseSVD實現。auto則代表PCA類會自動在上述3種算法中去權衡,選擇一個合適的SVD算法來降維。默認為auto目錄1構建基于線上書籍網站數據的聚類模型使用sklearn轉換器處理線上書籍網站數據2構建基于線上書籍網站數據的分類模型3構建基于線上書籍網站數據的回歸模型4任務描述隨著線上書籍銷售平臺的發展,用戶評價和評分成為讀者選擇書籍的重要參考因素。本任務將構建線上網站書籍數據聚類模型,識別書籍之間的潛在模式和相似性,幫助平臺更好地理解用戶需求。任務分析(1)使用sklearn構建線上網站書籍數據聚類模型。(2)使用輪廓系數評價法和Calinski-Harabasz指數評價法評估線上網站書籍數據聚類模型。構建基于線上書籍網站數據的聚類模型使用sklearn估計器構建聚類模型聚類的輸入是一組未被標記的樣本,聚類根據數據自身的距離或相似度將它們劃分為若干組,劃分的原則是組內(內部)距離最小化,而組間(外部)距離最大化,如圖所示。使用sklearn估計器構建聚類模型常用的聚類算法及其類別如下表。算法類別包括的主要算法劃分(分裂)方法K-Means算法(K-平均)、K-MEDOIDS算法(K-中心點)和CLARANS算法(基于選擇的算法)層次分析方法BIRCH算法(平衡迭代規約和聚類)、CURE算法(代表點聚類)和CHAMELEON算法(動態模型)基于密度的方法DBSCAN算法(基于高密度連接區域)、DENCLUE算法(密度分布函數)和OPTICS算法(對象排序識別)基于網格的方法STING算法(統計信息網絡)、CLIOUE算法(聚類高維空間)和WAVE-CLUSTER算法(小波變換)使用sklearn估計器構建聚類模型sklearn常用的聚類算法模塊cluster提供的聚類算法及其適用范圍如下表。算法名稱參數適用范圍距離度量K-Means簇數可用于樣本數目很大、聚類數目中等的場景點之間的距離Spectralclustering簇數可用于樣本數目中等、聚類數目較小的場景圖距離Wardhierarchicalclustering簇數可用于樣本數目較大、聚類數目較大的場景點之間的距離Agglomerativeclustering簇數、鏈接類型、距離可用于樣本數目較大、聚類數目較大的場景任意成對點線圖間的距離DBSCAN半徑大小、最低成員數目可用于樣本數目很大、聚類數目中等的場景最近的點之間的距離Birch分支因子、閾值、可選全局集群可用于樣本數目很大、聚類數目較大的場景點之間的歐式距離使用sklearn估計器構建聚類模型方法名稱方法說明fit()fit()方法主要用于訓練算法。該方法可接收用于有監督學習的訓練集及其標簽兩個參數,也可以接收用于無監督學習的數據predict()predict()方法用于預測有監督學習的測試集標簽,亦可以用于劃分傳入數據的類別聚類算法實現需要使用sklearn估計器(estimator)。sklearn估計器擁有fit()和predict()兩個方法,其說明如下表。使用sklearn轉換器進行數據預處理與降維
使用customer數據集,通過sklearn估計器構建K-Means聚類模型,對客戶群體進行劃分。并使用sklearn的manifold模塊中的TSNE類可實現多維數據的可視化展現功能,查看聚類效果,TSNE類的基本使用格式如下。classsklearn.manifold.TSNE(n_components=2,*,perplexity=30.0,early_exaggeration=12.0,learning_rate=200.0,n_iter=1000,n_iter_without_progress=300,min_grad_norm=1e-07,metric='euclidean',init='random',verbose=0,random_state=None,method='barnes_hut',angle=0.5,n_jobs=None,square_distances='legacy')使用sklearn轉換器進行數據預處理與降維TSNE類常用參數及其說明如下表。參數名稱參數說明n_components接收int。表示要嵌入空間中的緯度。默認為2perplexity接收float。表示在優化過程中鄰近點數量。默認為30early_exaggeration接收float。表示嵌入空間中簇的緊密程度及簇之間的空間大小。默認為12learning_rate接收float。表示梯度下降的速率。默認為200metric接收str、callable對象。表示用于計算特征數組中實例之間的距離時使用的度量方式。默認為euclideaninit接收str、ndarray對象。表示嵌入的初始化方式。默認為randomrandom_state接收int。表示所確定的隨機數生成器。默認為Nonemethod接收str。表示在進行梯度計算時所選用的優化方法。默認為barnes_hut評價聚類模型聚類評價的標準是組內的對象相互之間是相似的(相關的),而不同組中的對象是不同的(不相關的),即組內的相似性越大,組間差別越大,聚類效果就越好。sklearn的metrics模塊提供的聚類模型評價指標如下表。評價指標名稱真實值最佳值sklearn函數ARI評價法(蘭德系數)需要1.0adjusted_rand_scoreAMI評價法(互信息)需要1.0adjusted_mutual_info_scoreV-measure評分需要1.0completeness_scoreFMI評價法需要1.0fowlkes_mallows_score輪廓系數評價法不需要畸變程度最大silhouette_scoreCalinski-Harabasz指數評價法不需要相較最大calinski_harabaz_score需要真實值的配合才能夠評價聚類算法的優劣,評價的效果更具有說服力,并且在實際運行的過程中,在有真實值做參考的情況下,聚類方法的評價可以等同于分類算法的評價。不需要真實值的配合評價聚類模型除了輪廓系數評價法以外的評價方法,在不考慮業務場景的情況下都是得分越高,其效果越好,最高分值為1。而輪廓系數評價法則需要判斷不同類別數目情況下的輪廓系數的走勢,尋找最優的聚類數目。綜合以上聚類評價方法,在真實值作為參考的情況下,幾種方法均可以很好地評估聚類模型。在沒有真實值作為參考的時候,輪廓系數評價法和Calinski-Harabasz指數評價法可以結合使用。目錄1構建基于線上書籍網站數據的分類模型使用sklearn轉換器處理線上書籍網站數據3構建基于線上書籍網站數據的聚類模型2構建基于線上書籍網站數據的回歸模型4任務描述書籍評分是消費者選擇書籍的重要參考因素。本任務選取評論相關的特征,建立分類模型,預測書籍是否會獲得高評分,識別高評分書籍。任務分析(1)對分類特征進行預處理,包括構造標簽特征、選取分類數據特征與標簽特征、數據標準化和數據劃分。(2)利用隨機森林分類算法構建線上網站書籍分類模型。(3)使用classification_report函數輸出評價報告,并繪制ROC曲線圖評估線上網站書籍分類模型。構建基于線上書籍網站數據的分類模型使用sklearn估計器構建分類模型在數據分析領域,分類算法很多,其原理千差萬別,常用算法如下。基于樣本距離的最近鄰算法基于特征信息熵的決策樹算法基于bagging的隨機森林算法基于boosting的梯度提升分類樹算法但其實現的過程相差不大,如圖所示。使用sklearn估計器構建分類模型sklearn庫中提供的分類算法非常多,分別存在于不同的模塊中。常用的分類算法如下表。模塊名稱函數名稱算法名稱linear_modelLogisticRegression邏輯斯蒂回歸svmSVC支持向量機neighborsKNeighborsClassifierK最近鄰分類naive_bayesGaussianNB高斯樸素貝葉斯treeDecisionTreeClassifier分類決策樹ensembleRandomForestClassifier隨機森林分類ensembleGradientBoostingClassifier梯度提升分類樹評價分類模型分類模型對測試集進行預測而得出的準確率并不能很好地反映模型的性能,為了有效判斷一個預測模型的性能表現,需要結合真實值計算出精確率、召回率、F1值和Cohen’sKappa系數等指標來衡量。常規分類模型的評價方法如下表。方法名稱最佳值sklearn函數Precision(精確率)1.0metrics.precision_scoreRecall(召回率)1.0metrics.recall_scoreF1值1.0metrics.f1_scoreCohen’sKappa系數1.0metrics.cohen_kappa_scoreROC曲線最靠近y軸metrics.roc_curve分值越高越好,其使用方法基本相同通常情況下,ROC曲線與x軸形成的面積越大,表示模型性能越好目錄1構建基于線上書籍網站數據的回歸模型使用sklearn轉換器處理線上書籍網站數據4構建基于線上書籍網站數據的聚類模型2構建基于線上書籍網站數據的分類模型3任務描述書籍評分通常會影響書籍的銷售和消費者的選擇。預測書籍的評分對于出版商和電商平臺來說非常有價值,有助于更好地制定營銷策略、定價策略、出版決策等。本任務將構建回歸模型,預測書籍的評分。任務分析(1)對回歸特征進行預處理,包括選取回歸特征與目標特征、數據標準化和數據劃分。(2)利用隨機森林回歸算法構建書籍評分回歸模型。(3)使用平均絕對誤差、均方誤差、R2值、可解釋方差評估書籍評分回歸模型。構建基于線上書籍網站數據的回歸模型使用sklearn估計器構建線性回歸模型從19世紀初高斯提出最小二乘估計法算起,回歸分析的歷史已有200多年。從經典的回歸分析方法到近代的回歸分析方法,按照研究方法劃分,回歸分析研究的范圍大致如右圖。使用sklearn估計器構建線性回歸模型在回歸模型中,自變量與因變量具有相關關系,自變量的值是已知的,因變量是要預測的。回歸算法的實現步驟和分類算法基本相同,分為學習和預測兩個步驟。學習是通過訓練樣本數據來擬合回歸方程的。預測則是利用學習過程中擬合出的回歸方程,將測試數據放入方程中求出預測值。使用sklearn估計器構建線性回歸模型常用的回歸模型如下表。模塊名稱函數名稱算法名稱線性回歸因變量與自變量是線性關系對一個或多個自變量和因變量之間的線性關系進行建模,可用最小二乘估計法求解模型系數非線性回歸因變量與自變量之間不都是線性關系對一個或多個自變量和因變量之間的非線性
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國紅柳桉木木材項目創業計劃書
- 中國減肥移動應用(APP)項目創業計劃書
- 中國家具測試系統項目創業計劃書
- 中國吉林汽車零部件項目創業計劃書
- 中國三維建模軟件項目創業計劃書
- 中國B2C電子商務項目創業計劃書
- 中國可視電話項目創業計劃書
- 中國計算機及相關設備制造項目創業計劃書
- 中國固態硬盤(SSD)項目創業計劃書
- 2025年企業合同標準范本
- 2025年北京市第一次普通高中學業水平合格性考試歷史試題(含答案)
- 甘肅開放大學2024年《信息技術與信息管理》形考作業1-4答案
- 2022年《數據結構(本)》形考任務實踐活動3
- 生豬屠宰獸醫衛生檢驗人員理論考試題庫及答案
- 醫學檢驗項目管理制度
- 年產4億片阿奇霉素片的精烘包及車間設計
- 《民國人物大辭典》附名錄
- 裝修管理規則-城市綜合體---成都租戶指引
- 玻璃幕墻清洗施工方案最新完整
- 基于QuartusII的多功能數字鐘設計
- 國家開放大學《數學思想與方法》形考任務參考答案
評論
0/150
提交評論