當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


R themis bsmote 邊界-SMOTE算法

BSMOTE 使用類之間邊界區域中這些案例的最近鄰來生成少數類的新示例。

用法

bsmote(df, var, k = 5, over_ratio = 1, all_neighbors = FALSE)

參數

df

data.frame 或小標題。必須有 1 個因子變量和其餘的數值變量。

var

字符,包含因子變量的變量名稱。

k

一個整數。用於生成少數類新示例的最近鄰居的數量。

over_ratio

多數頻率與少數頻率之比的數值。默認值 (1) 表示對所有其他級別進行采樣,使其具有與最常出現的級別相同的頻率。值為 0.5 意味著少數級別的行數(最多)(大約)是多數級別的一半。

all_neighbors

兩個borderline-SMOTE方法的類型。默認為 FALSE。查看具體信息。

data.frame 或 tibble,具體取決於 df 的類型。

細節

此方法的用法方式與 smote() 相同,期望不是在少數類的每個點周圍生成點,而是首先將每個點分類到框 "danger" 和 "not" 中。對於每個點,計算 k 個最近鄰點。如果所有鄰居都來自不同的類別,則它會被標記為噪聲並放入 "not" 框中。如果超過一半的鄰居來自不同階層,則被標記為“危險”。

如果all_neighbors = FALSE,則將在其自己的類中的最近鄰居之間生成點。如果all_neighbors = TRUE,則將在任何最近的鄰居之間生成點。請參閱可視化示例。

參數neighbors控製新示例的創建方式。對於每個當前存在的少數類示例,將創建 X 個新示例(這由參數 over_ratio 控製,如上所述)。這些示例將通過使用來自少數類每個示例的 neighbors 最近鄰居的信息來生成。參數neighbors控製使用多少個鄰居。

此步驟中使用的所有列都必須是數字且沒有丟失數據。

參考

韓輝、Wen-Yuan王、Bing-Huan毛。 Borderline-smote:不平衡數據集學習中的一種新的過采樣方法。國際智能計算會議,第 878-887 頁。施普林格,2005。

也可以看看

step_bsmote() 用於此方法的步驟函數

其他直接實現:adasyn()nearmiss()smotenc()smote()tomek()

例子

circle_numeric <- circle_example[, c("x", "y", "class")]

res <- bsmote(circle_numeric, var = "class")

res <- bsmote(circle_numeric, var = "class", k = 10)

res <- bsmote(circle_numeric, var = "class", over_ratio = 0.8)

res <- bsmote(circle_numeric, var = "class", all_neighbors = TRUE)
源代碼:R/bsmote_impl.R

相關用法


注:本文由純淨天空篩選整理自大神的英文原創作品 borderline-SMOTE Algorithm。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。