《數據挖掘與機器學習》 課件 項目四 電商平臺運輸行為預測-邏輯回歸_第1頁
《數據挖掘與機器學習》 課件 項目四 電商平臺運輸行為預測-邏輯回歸_第2頁
《數據挖掘與機器學習》 課件 項目四 電商平臺運輸行為預測-邏輯回歸_第3頁
《數據挖掘與機器學習》 課件 項目四 電商平臺運輸行為預測-邏輯回歸_第4頁
《數據挖掘與機器學習》 課件 項目四 電商平臺運輸行為預測-邏輯回歸_第5頁
已閱讀5頁,還剩105頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

處理電商平臺用戶行為數據電商平臺用戶購買預測——邏輯回歸任務描述某電商平臺需要對該平臺的運輸行為進行分析,并預測運輸行為是否會按時到達。本任務需要對這些數據進行處理和分析,以幫助該電商平臺更好地了解運輸行為,并優化運輸策略,提高客戶滿意度。在處理敏感的電商平臺用戶數據時,需要特別關注網絡信息安全問題。在數據預處理過程中,應當采取措施保證用戶數據的機密性、完整性和可用性。本任務的目標是對原始數據進行數據預處理與探索,包括數據的啞變量處理和屬性構造。任務要求探索電商平臺運輸行為數據。對性別變量進行啞變量處理。構造總成本的特征。啞變量處理離散化處理屬性構造啞變量處理什么是啞變量處理?在某些分類問題中,原始數據可能包含一些分類變量(也稱為離散變量),如性別、顏色等。男女無法識別啞變量處理啞變量處理:即將每個分類變量拆分成多個二元變量。拆分后性別變量變為“男”“女”兩種形式,其中1表示肯定,0表示否定。用戶ID性別1男2女3男4男5女6女7男8女9男10男性別_男性別_女10011010010110011010啞變量處理01如何實現啞變量處理?

在Python中,使用pandas庫的get_dummies函數可以對類別型數據進行啞變量處理,其基本使用格式如下。啞變量處理pd.get_dummies(data,prefix=None,prefix_sep='_',dummy_na=False,columns=None,sparse=False,drop_first=False)啞變量處理get_dummies函數常用參數及其說明參數名稱說明data接收DataFrame。表示輸入數據集,無默認值prefix接收字符串。表示虛擬變量的名稱前綴,默認為Noneprefix_sep接收字符串。表示虛擬變量的名稱前綴與原始列名之間的分隔符,默認為'_'dummy_na接收字符串或列表。表示是否添加一列表示缺失值,默認為Falsecolumns接收字符串或列表。要進行獨熱編碼的列名,默認為Nonesparse接收bool。表示是否使用稀疏矩陣表示虛擬變量,默認為Falsedrop_first接收bool。表示是否刪除每個虛擬變量的第一列,默認為False雙十一是中國的網購狂歡節。一家電商品牌公司統計了其旗艦店老客戶在雙十一期間的是否購買某美妝產品的消費者信息數據。啞變量處理例題用戶ID年齡/歲地區歷史消費金額/元是否購買128北京12001232上海8000325廣州5000440上海32001535深圳15001627廣州6000730北京9001826北京7000938北京240011029上海10000例題分析對地區變量進行啞變量處理主要通過以下4個步驟實現。觀察啞變量處理前的數據集選取數據集的“地區”變量列將“地區”列按照類別“北上廣深”拆分為4個二元變量輸出啞變量處理后的數據集處理電商平臺用戶行為數據電商平臺用戶購買預測——邏輯回歸任務描述某電商平臺需要對該平臺的運輸行為進行分析,并預測運輸行為是否會按時到達。本任務需要對這些數據進行處理和分析,以幫助該電商平臺更好地了解運輸行為,并優化運輸策略,提高客戶滿意度。在處理敏感的電商平臺用戶數據時,需要特別關注網絡信息安全問題。在數據預處理過程中,應當采取措施保證用戶數據的機密性、完整性和可用性。本任務的目標是對原始數據進行數據預處理與探索,包括數據的啞變量處理和屬性構造。任務要求探索電商平臺運輸行為數據。對性別變量進行啞變量處理。構造總成本的特征。啞變量處理離散化處理屬性構造離散化處理離散化處理主要應用于某些場景下的連續變量數據,將其轉化為離散變量數據,從而降低數據的復雜度、降低計算量,提高模型的建立和訓練效率。常見的離散化方法有等寬離散化、等頻離散化等,可以根據實際情況選擇不同的離散化方法。什么是離散化處理?等寬法等寬法(Equi-WidthBinning)將變量的取值范圍劃分為k個等寬的區間,將落在同一個區間內的數據歸為同一類。什么是等寬法?012345678910111213

14等寬法等寬法(Equi-WidthBinning)將變量的取值范圍劃分為k個等寬的區間,將落在同一個區間內的數據歸為同一類。什么是等寬法?01234567891011

121314等寬法等寬法劃分示例圖用戶ID年齡1282323254405356277308269381029年齡[26-30][31-35][20-25][36-40][31-35][26-30][26-30][26-30][36-40][26-30]如何實現等寬法處理?

在Python中,使用pandas庫的cut函數可以實現等寬離散化處理,其基本使用格式如下。等寬法pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False,duplicates='raise')cut函數常用參數及其說明等寬法pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False,duplicates='raise')參數名稱說明x接收Series或Numpy。表示輸入的數據集,無默認值bins接收int。指定離散化的區間,可以是一個整數、一個序列(表示區間邊緣的數值)或者字符串(表示自定義區間的名稱),無默認值right接收bool。是否包含右邊界,默認為Truelabels接收bool。指定離散化后每個區間的標簽,可以是一個列表或數組,長度應該與分組后的區間數量相同。默認為Nonecut函數常用參數及其說明等寬法retbins接收bool。是否返回每個區間的邊界值,默認為Falseprecision接收int。設置顯示區間邊界的小數位數,默認為3include_lowest接收bool。是否將最小值包含在第一個區間內,默認為Falseduplicates接收指定str。當區間存在重復時,指定如何處理。默認為raise參數名稱說明pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False,duplicates='raise')等寬法對年齡變量進行等寬離散化處理主要通過以下4個步驟實現。觀察離散化處理前的數據集選取數據集的“年齡”變量列將“年齡”列按照相同間距劃分為4個區間輸出離散化處理后的數據集等頻法等頻法(Equi-DepthBinning)將變量的取值范圍劃分為k個區間,每個區間包含大致相等數量的數據點,也稱為分位數法(QuantileBinning)。什么是等頻法?等頻法等頻法(Equi-DepthBinning)將變量的取值范圍劃分為k個區間,每個區間包含大致相等數量的數據點,也稱為分位數法(QuantileBinning)。什么是等頻法?等頻法如何實現等頻法處理?

在Python中,使用pandas庫的qcut函數可以實現等頻離散化處理,其基本使用格式如下。pandas.qcut(x,q,labels=None,retbins=False,precision=3,duplicates='raise')等頻法qcut函數常用參數及其說明pandas.qcut(x,q,labels=None,retbins=False,precision=3,duplicates='raise')參數名稱說明retbins接收bool類型。表示是否返回每個區間的邊界值,默認為Falseprecision接收int。表示設置顯示區間邊界的小數位數,默認為3duplicates接收指定str。表示當區間存在重復時,指定如何處理。默認為raisex接收Series或Numpy。表示輸入數據集。無默認值q接收int或列表。表示指定要分成的區間數量,表示分位數。無默認值labels接收bool、int、序列或bool標記。表示指定離散化后每個區間的標簽,可以是一個列表或數組,長度應該與分組后的區間數量相同。如果未指定,則默認為整數索引等頻法對歷史消費金額變量進行等頻離散化處理主要通過以下4個步驟實現。觀察離散化處理前的數據集選取數據集的“歷史消費金額”變量列按照“歷史消費金額”將顧客消費水平等頻劃分為3個消費等級輸出離散化處理后的數據集屬性構造是指在某些場景下,原始數據可能不夠完整或不夠豐富,無法滿足模型的需求。在這種情況下,可以采用屬性構造,即通過計算、轉換、組合等方式生成新的屬性來增加數據的信息量,以便在建模時能夠更好地反映實際情況。屬性構造什么是屬性構造?屬性構造什么是屬性構造?是否購買歷史消費金額年齡地區

[20,25][26,30][31,35][36,40]

北京上海廣州深圳

進行屬性構造屬性構造什么是屬性構造?歷史消費金額

進行屬性構造

歷史消費金額差異消費金額平均消費金額

屬性構造構造歷史消費金額差異屬性主要通過以下4個步驟實現。計算歷史消費金額的平均值計算每個用戶消費金額與平均值的差值并單獨保存一列,名為“歷史消費金額差異”輸出屬性構造后的數據集輸出離散化處理后的數據集處理電商平臺運輸行為數據電商平臺運輸行為預測——邏輯回歸任務描述某電商平臺需要對該平臺的運輸行為進行分析,并預測運輸行為是否會按時到達。本任務需要對這些數據進行處理和分析,以幫助該電商平臺更好地了解運輸行為,并優化運輸策略,提高客戶滿意度。在處理敏感的電商平臺用戶數據時,需要特別關注網絡信息安全問題。在數據預處理過程中,應當采取措施保證用戶數據的機密性、完整性和可用性。本任務的目標是對原始數據進行數據預處理與探索,包括數據的啞變量處理和屬性構造。任務要求探索電商平臺運輸行為數據。對性別變量進行啞變量處理。構造總成本的特征。讀取電商平臺運輸行為數據啞變量處理屬性構造讀取電商平臺運輸行為數據讀取電商平臺運輸行為數據主要通過以下6個步驟實現。查看電商平臺運輸行為數據讀取數據查看數據維度查看數據類型分析產品重要程度分析是否按時到達查看電商平臺運輸行為數據考慮到電商平臺用戶數據的敏感性和網絡信息安全問題,在采取保證用戶數據的機密性、完整性和可用性的基礎上,已到數據進行脫敏處理,加強個人信息保護。脫敏后的特征說明如表所示。客戶ID客戶的ID號,已經過脫敏處理公司廠庫公司的倉庫編號,分為1~5等區裝運方式裝運產品的方式,分為船舶、飛行和公路。其中0代表公路,1表示船舶,2表示飛行客戶服務電話數量從詢價到詢價的客戶服務電話總數量字段字段說明查看電商平臺運輸行為數據考慮到電商平臺用戶數據的敏感性和網絡信息安全問題,在采取保證用戶數據的機密性、完整性和可用性的基礎上,已到數據進行脫敏處理,加強個人信息保護。脫敏后的特征說明如表所示。運輸數量運輸數量字段字段說明客戶評價公司已對每位客戶進行了評價。1為最低,5為最高產品重要性公司根據產品的重要程度,為0~10的評分數產品成本產品成本查看電商平臺運輸行為數據考慮到電商平臺用戶數據的敏感性和網絡信息安全問題,在采取保證用戶數據的機密性、完整性和可用性的基礎上,已到數據進行脫敏處理,加強個人信息保護。脫敏后的特征說明如表所示。字段字段說明性別客戶的性別重量產品的重量折扣針對該特定產品提供的折扣準時到達商品是否準時到達。其中0表示未按時到達產品,1表示已按時到達讀取數據使用pandas庫中read_csv函數讀取用戶行為數據。查看電子商務運輸數據,輸出前5行數據。讀取數據維度使用pandas庫中shape屬性可以得到DataFrame對象的維度信息。返回一個包含行數和列數的元組。查看數據類型使用pandas庫中info()方法查看電商平臺運輸行為數據類型。分析產品重要程度使用Python中的pandas庫中的cut函數可以對產品重要性進行等寬離散化處理。使用Matplotlib庫的pie函數繪制產品重要程度分布餅圖。讀取電商平臺運輸行為數據使用Matplotlib庫的pie函數繪制是否按時到達分布的餅圖。由圖可知,初始數據集中有53.9%的客戶按時到達,46.1%的客戶未按時到達。啞變量處理使用pandas庫中get_dummies函數對性別變量進行啞變量處理。將一元變量性別拆分為性別_男和性別_女二元變量,并查看處理后的數據情況。客戶ID性別1男2女3女4女5男性別_男性別_女1001010110屬性說明想要得到測試集的類別標簽,需要模型經過訓練集學習,模型在訓練集上學習的其實就是特征。在給模型輸入數據時,實際上模型用到的是特征及其相應的類別標簽,而特征就是用于描述為什么該樣本的類別標簽如此。在本例中即用于描述某用戶運輸行為準時/不準時。結合生活經驗及業務理解,為數據集增加“總成本”屬性。構造總成本屬性使用pandas的DataFrame數據結構df訪問“產品成本”和“運輸數量”這兩個屬性列,并將它們相乘,得到每個客戶的總成本。將總成本除以1000,得到以千元為單位的總成本,并將結果存儲在一個新的列“總成本/千元”中。保存數據使用pandas庫的to_csv()方法將處理后的數據保存為新的數據集“新電子商務運輸數據.csv”。保存路徑為tmp文件,保留原有的中文表頭且不保存行索引。構建電商平臺運輸行為預測電商平臺用戶購買預測——邏輯回歸任務描述電商平臺運輸預測是一項非常重要的任務。堅持一切為了人民,通過預測用戶的運輸行為,電商平臺可以更好地了解用戶需求。然而,運輸行為往往是一個難以捉摸的過程,不受規律和時間限制的影響,這給預測模型的建立帶來了很大的挑戰。本任務基于邏輯回歸模型,從歷史交互數據中學習運輸行為的一般特征,預測下一個月用戶可能會運輸哪些品牌。將重點關注電商平臺用戶的運輸行為,提高運輸預測的準確率,優化平臺的運營管理和商業決策,從而提高平臺的競爭力和收益。任務要求利用sklearn庫建立邏輯回歸模型。邏輯回歸模型邏輯回歸模型二分類問題是一種基本的分類問題,它涉及將數據樣本分為兩個不同的類別或標簽中的一個。例如,將垃圾郵件與正常郵件分類、將腫瘤分為惡性和良性等都是二分類問題。在二分類問題中,通常將一個類別標記為“正例”(positive)和另一個標記為“反例”(negative)。分類模型的目標是學習如何將輸入特征與相應的標簽相關聯,以便在新的未知數據上進行分類預測。邏輯回歸模型常用的二分類算法包括邏輯回歸、決策樹、隨機森林等。這些算法在不同的數據集和應用場景中表現不同,因此,選擇合適的算法以及進行適當的特征工程是進行二分類任務的重要部分。邏輯回歸模型在任務3.1的學習中已經介紹了線性回歸的一般形式,給出了自變量x與因變量y成線性關系時所建立的函數關系。但是,現實場景中更多的情況y不是與x成線性關系,而是與x的某個函數成線性關系,此時需要引入廣義線性回歸模型。需要注意的是,邏輯回歸雖然稱作“回歸”,但實際上是一種分類算法。該算法期望所有預測值都介于0~1之間。具體的分類方法為設定一個分類閾值,將預測結果y大于分類閾值的樣本歸為正類,反之歸為反類。邏輯回歸模型邏輯回歸雖然稱作“回歸”,但實際上是一種分類算法。該算法期望所有預測值都介于0~1之間。具體的分類方法為設定一個分類閾值,將預測結果y大于分類閾值的樣本歸為正類,反之歸為反類。決策邊界邏輯回歸模型假設函數如下式所示。

表示分類閾值參數集。

上式的圖像如圖所示,保證了所有函數值都介于[0,1]之間。Logstic函數如下式所示。邏輯回歸模型合并左邊兩式轉為標準邏輯回歸形式如左式所示。

邏輯回歸模型建模步驟根據分析目的設置因變量和自變量,并進行屬性篩選列出線性回歸方程,估計回歸系數模型檢驗模型預測邏輯回歸模型LogisticRegression類使用scikit-learn庫中linear_model模塊的LogisticRegression類可以建立邏輯回歸模型,其語法格式如下。classsklearn.linear_model.LogisticRegression(penalty='l2',dual=False,tol=0.0001,C=1.0,fit_intercept=True,intercept_scaling=1,class_weight=None,random_state=None,solver='liblinear',max_iter=100,multi_class='ovr',verbose=0,warm_start=False,n_jobs=1)邏輯回歸模型LogisticRegression類常用參數及其說明penalty接收str。表示正則化選擇參數,可選l1或l2。默認為l2solver接收str。表示優化算法選擇參數,可選參數為newton-cg、lbfg、liblinear、sag,當penalty='l2'時,4種都可選;當penalty='l1'時,只能選liblinear。默認為liblinearmulti_class接收str。表示分類方式選擇參數,可選ovr和multinomial。默認為ovr參數名稱說明classsklearn.linear_model.LogisticRegression(penalty='l2',dual=False,tol=0.0001,C=1.0,fit_intercept=True,intercept_scaling=1,class_weight=None,random_state=None,solver='liblinear',max_iter=100,multi_class='ovr',verbose=0,warm_start=False,n_jobs=1)邏輯回歸模型LogisticRegression類常用參數及其說明class_weight接收balanced以及字典。表示類型權重參數,如對于因變量取值為0或1的二元模型,可以定義class_weight={0:0.9,1:0.1},這樣類型0的權重為90%,而類型1的權重為10%。默認為Nonecopy_X接收bool。表示是否復制數據表進行運算。默認為Truen_jobs接收int。表示計算時使用的核數。默認為1參數名稱說明classsklearn.linear_model.LogisticRegression(penalty='l2',dual=False,tol=0.0001,C=1.0,fit_intercept=True,intercept_scaling=1,class_weight=None,random_state=None,solver='liblinear',max_iter=100,multi_class='ovr',verbose=0,warm_start=False,n_jobs=1)邏輯回歸模型人才是第一資源,碩士研究生招生考試競爭非常激烈,尤其是在一些熱門專業中,招生人數往往遠遠少于報考人數。因此,考生需要充分準備,提高自己的綜合素質和應試能力,加快建設教育強國。研究生入學考試分為初試和復試兩個環節。下表為某高校某專業2022年考生的考研分數數據集,其中初試成績已按比例處理為百分制。初試成績復試成績錄取結果34.6278.02094.8345.69135.8472.900………55.3464.93142.0878.840邏輯回歸模型繪制數據集的散點圖構建邏輯回歸模型預測考生錄取情況繪制決策邊界使用LogisticRegression構建考生錄取情況預測模型主要分為以下四個步驟。構建邏輯回歸模型繪制運輸預測結果柱形圖構建邏輯回歸模型讀取數據提取特征變量和目標變量拆分訓練集和測試集構建模型使用LogisticRegression構建電商平臺運輸行為預測主要分為以下五個步驟。對電商平臺運輸行為進行預測讀取數據使用pandas庫中read_csv函數讀取處理后的電子商務運輸數據。提取特征變量和目標變量從原始數據集中提取出特征變量(即用于預測的變量)和目標變量(即要預測的變量)。客戶ID公司廠庫裝運方式客戶服務電話數量客戶評價產品成本運輸數量產品重要性折扣重量準時到達性別_女性別_男總成本/千元特征變量目標變量拆分訓練集和測試集將數據集拆分為訓練集和測試集。使用訓練集對模型進行訓練,使用測試集對構建的模型進行測試,其中測試集占整個數據集的20%。使用train_test_split類拆分為訓練集和測試集構建邏輯回歸模型使用LogisticRegression類構建電商平臺運輸邏輯回歸預測模型。對電商平臺運輸行為進行預測利用訓練后的電商平臺運輸行為預測模型來預測測試集中的運輸行為。繪制運輸預測結果柱形圖使用柱形圖可視化展示預測得到的各類型的柱形圖。觀察圖可以看出模型的預測結果,預測前的真實值是861人運輸不準時,1068人運輸準時。預測后的結果是964運輸不準時,965人運輸準時。評估與優化電商平臺運輸行為預測電商平臺用戶購買預測——邏輯回歸任務描述電商平臺運輸預測模型已經建立,通過各種指標(例如準確率、召回率、精確率等)來評價模型的性能,并找出模型存在的不足之處。在了解模型不足的地方之后,可以采用類不平衡問題處理等方法改進模型,以優化模型,提高模型預測效果,貫徹高質量發展精神。不斷地優化模型,使其在預測電商客戶運輸行為方面的準確率和效果不斷提高。任務要求使用sklearn.metrics模塊對邏輯回歸模型進行評價。使用imblearn庫解決類不平衡問題。混淆矩陣、準確率與召回率ROC曲線樣本平衡混淆矩陣(ConfusionMatrix)是模式識別領域中一種常用的表達形式,描繪樣本數據的真實屬性與識別結果類型之間的關系,是評價分類器性能的一種常用方法,并且可以將分類問題的結果進行可視化。以一個二分類任務為例,可將樣本根據真實類別與預測的分類結果的組合劃分為真正例(TruePositive,TP)、假正例(FalsePositive,FP)、真反例(TrueNegative,TN)和假反例(FalseNegative,FN)共4種情形,并對應其樣本數,則有總樣本數=TP+FP+FN+TN。混淆矩陣分類結束后的混淆矩陣如表所示。混淆矩陣真實結果預測結果正類反類正類TPFN反類FPTNTP:正確地將正樣本預測為正樣本的分類數FN:錯誤地將正樣本預測為負樣本的分類數FP:錯誤地將負樣本預測為正樣本的分類數TN:正確地將負樣本預測為負樣本的分類數準確率(Accuracy)是指分類器正確分類的樣本數與總樣本數之比,它可以展示分類器的整體分類效果。準確率定義如式所示。

準確率取值范圍為[0,1],取值越高表示分類模型效果越好,完美分類的準確率為1,完全隨機猜測的準確率為分類的類別數的倒數。準確率召回率(Recall),是指分類器正確分類的正樣本數與實際正樣本數之比,它可以展示分類器對于正樣本的分類效果,用于評估模型對正類的識別能力。計算公式如公式所示。召回率的取值范圍為[0,1],取值越大表示模型在預測正樣本方面的能力越強,即能夠更準確地將正樣本識別出來。當召回率為1時,表示模型能夠將所有正樣本都識別出來,沒有遺漏,這是理想的情況。召回率classification_report是一個用于生成分類報告的類,用于評估分類模型的性能。它計算并打印出準確率、召回率、F1-score和support等指標。分類報告ROC曲線接收者操作特征曲線(ReceiverOperatingCharacteristiccurve,ROC曲線)是一種非常有效的模型評價方法,可為選定臨界值給出定量提示。正確地將正例預測為正例的比率為縱坐標錯誤地將負例預測為正例的比率為橫坐標該曲線下的面積(AUC)為0.93,而面積的大小與每種方法的優劣密切相關,可反映分類器正確分類的統計概率,因此,其值越接近1說明該算法效果越好。在Python中,使用sklearn.metrics模塊中的roc_curve類中的roc_curve函數可以計算ROC曲線,其基本使用格式如下。ROC曲線fpr,tpr,thresholds=roc_curve(y_true,y_score,pos_label=None,sample_weight=None,drop_intermediate=True)ROC曲線roc_curve函數常用參數及其說明如下。參數名稱說明y_true接收數組。表示樣本真實的標簽,必須為0或1。無默認值y_score接收數組。表示分類器預測的樣本得分,可以是概率值、決策函數的值等。無默認值pos_label接收int或str。表示正類的標簽。默認為Nonesample_weight接收數組。表示樣本的權重,可以用于不平衡樣本的處理。默認為Nonedrop_intermediate接收bool。表示是否刪除不必要的閾值點,如果為True,則只返回fpr和tpr值中有效的部分。默認為True對邏輯回歸模型進行評價對考生錄取預測模型進行評價主要通過以下4個步驟實現。計算考生錄取情況預測模型的混淆矩陣計算考生錄取情況預測模型的準確率與召回率計算考生錄取情況預測模型的分類報告繪制考生錄取情況預測模型的ROC曲線在現實分類模型中,常存在類別不平衡問題,即指在數據集中,不同類別的樣本數量差別很大,其中一個類別的樣本數量遠遠少于另一個類別的樣本數量。這種情況在機器學習任務中很常見,如欺詐檢測、罕見病預測等。如果不處理類別不平衡問題,那么訓練得到的模型可能會偏向于樣本數量多的類別,對樣本數量少的類別預測效果較差。樣本平衡什么是類別不平衡?解決類別不平衡問題的方法有欠采樣、過采樣等。欠采樣是一種處理類不平衡問題的方法,它通過減少多數類樣本的數量來達到平衡樣本分布的目的。欠采樣的主要思想是從多數類中隨機選擇一部分樣本作為訓練集,使得多數類樣本數量和少數類樣本數量相近。在Python中,可以使用imblearn庫中under_sampling模塊的RandomUnderSampler類實現欠采樣。樣本平衡如何解決類別不平衡問題?SMOTE(SyntheticMinorityOver-samplingTechnique)是一種常見的過采樣方法,它通過生成新的合成樣本來增加少數類別的樣本數量,從而平衡數據集中各個類別的樣本數量。它主要是通過生成一些與小類樣本相似的樣本來達到平衡數據的目的。該算法不是簡單復地制小類樣本,而是增加新的并不存在的樣本,因此在一定程度上可以避免過擬合的問題。樣本平衡SMOTE過采樣SMOTE算法的實現過程如下

樣本平衡對于少數類樣本中的每一個樣本,計算其與所有少數類樣本的歐氏距離。選取距離該樣本最近的k個少數類樣本,對其進行隨機采樣。對于每個選中的少數類樣本,按照公式生成一個新的合成樣本。新樣本=原樣本+隨機因子(選中樣本-原樣本)其中,選中樣本為為樣本空間中隨機選擇的一個樣本,隨機因子為[0,1]之間的隨機數。在Python中,可以使用imblearn庫中over_sampling模塊的SMOTE類實現過采樣,其基本使用格式如下。樣本平衡SMOTE=SMOTE(sampling_strategy='auto',k_neighbors=5,random_state=42)樣本平衡SMOTE類常用參數及其說明如下。參數名稱說明sampling_strategy接收str或float。表示用于設置合成樣本的數量,默認為autok_neighbors接收int。表示用于設置用于合成樣本的k個最近鄰居的數量,默認為5random_state接收int。表示用于設置

溫馨提示

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

評論

0/150

提交評論