日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

SMOTE算法解决样本不平衡

發布時間:2023/12/13 综合教程 40 生活家
生活随笔 收集整理的這篇文章主要介紹了 SMOTE算法解决样本不平衡 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先,看下Smote算法之前,我們先看下當正負樣本不均衡的時候,我們通常用的方法:

抽樣

常規的包含過抽樣、欠抽樣、組合抽樣

過抽樣:將樣本較少的一類sample補齊

欠抽樣:將樣本較多的一類sample壓縮

組合抽樣:約定一個量級N,同時進行過抽樣和欠抽樣,使得正負樣本量和等于約定量級N

這種方法要么丟失數據信息,要么會導致較少樣本共線性,存在明顯缺陷

權重調整

常規的包括算法中的weight,weight matrix

改變入參的權重比,比如boosting中的全量迭代方式、邏輯回歸中的前置的權重設置

這種方式的弊端在于無法控制合適的權重比,需要多次嘗試

核函數修正

通過核函數的改變,來抵消樣本不平衡帶來的問題

這種使用場景局限,前置的知識學習代價高,核函數調整代價高,黑盒優化

模型修正

通過現有的較少的樣本類別的數據,用算法去探查數據之間的特征,判讀數據是否滿足一定的規律

比如,通過線性擬合,發現少類樣本成線性關系,可以新增線性擬合模型下的新點

實際規律比較難發現,難度較高

算法基本原理:

(1)對于少數類中每一個樣本x,以歐氏距離為標準計算它到少數類樣本集中所有樣本的距離,得到其k近鄰。

(2)根據樣本不平衡比例設置一個采樣比例以確定采樣倍率N,對于每一個少數類樣本x,從其k近鄰中隨機選擇若干個樣本,假設選擇的近鄰為xn。

(3)對于每一個隨機選出的近鄰xn,分別與原樣本按照如下的公式構建新的樣本。

Smote算法的思想其實很簡單,先隨機選定n個少類的樣本,如下圖

再找出最靠近它的m個少類樣本,如下圖

再任選最臨近的m個少類樣本中的任意一點,

偽代碼:

function SMOTE(T, N, k)

Input: T; N; k # T:少數類樣本數目

# N:過采樣的數目

# K:最近鄰的數量

Output: (N/100) * T # 合成的少數類樣本

Variables: Sample[][] # 存放原始少數類樣本

newindex #控制合成數量

initialized to 0;

Synthetic[][]

if N < 100 then

Randomize the T minority class samples

T = (N/100)*T

N = 100

end if

N = (int)N/100 # 假定SMOTE的數量是100的整數倍

for i = 1 to T do

Compute k nearest neighbors for i, and save the indices in the nnarray

POPULATE(N, i, nnarray)

end for

end function

Algorithm 2 Function to generate synthetic samples

function POPULATE(N, i, nnarray)

Input: N; i; nnarray # N:生成的樣本數量

# i:原始樣本下標

# nnarray:存放最近鄰的數組

Output: N new synthetic samples in Synthetic array

while N != 0 do

nn = random(1,k)

for attr = 1 to numattrs do # numattrs:屬性的數量

Compute: dif = Sample[nnarray[nn]][attr] − Sample[i][attr]

Compute: gap = random(0, 1)

Synthetic[newindex][attr] = Sample[i][attr] + gap * dif

end for

newindex + +

N − −

end while

end function

項目經驗:

1.采樣方法比直接調整閾值的方法要好。

2.使用采樣方法可以提高模型的泛化能力,存在過擬合風險,最好聯合正則化同時使用。

3.過采樣結果比欠采樣多數時間穩定,但是還是要具體問題具體分析,主要還是看數據的分布,SMOTE效果還是不錯的。

4.和SMOTE算法使用的模型最好是可以防止過擬合的模型,隨機森林,L2正則+邏輯回歸,XGBoost等模型。

總結

以上是生活随笔為你收集整理的SMOTE算法解决样本不平衡的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。