成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

技術分享:數據不平衡問題

大數據
在學術研究與教學中,很多算法都有一個基本假設,那就是數據分布是均勻的。當我們把這些算法直接應用于實際數據時,大多數情況下都無法取得理想的結果。因為實際數據往往分布得很不均勻,都會存在“長尾現象”,也就是數據不平衡”。

在學術研究與教學中,很多算法都有一個基本假設,那就是數據分布是均勻的。當我們把這些算法直接應用于實際數據時,大多數情況下都無法取得理想的結果。因為實際數據往往分布得很不均勻,都會存在“長尾現象”,也就是數據不平衡”。

[[243245]]

以下幾種方法是針對數據不平衡問題所做的處理,具體包括:

  1. smote采樣
  2. adasyn采樣
  3. 欠采樣
  4. 一分類
  5. 改進的adaboost方法

一、smote采樣

SMOTE全稱是Synthetic Minority Oversampling Technique即合成少數類過采樣技術,它是基于隨機過采樣算法的一種改進方案,由于隨機過采樣采取簡單復制樣本的策略來增加少數類樣本,這樣容易產生模型過擬合的問題,即使得模型學習到的信息過于特別(Specific)而不夠泛化(General),SMOTE算法的基本思想是對少數類樣本進行分析并根據少數類樣本人工合成新樣本添加到數據集中,算法流程如下。

  1. 對于少數類中每一個樣本x,以歐氏距離為標準計算它到少數類樣本集中所有樣本的距離,得到其k近鄰。
  2. 根據樣本不平衡比例設置一個采樣比例以確定采樣倍率N,對于每一個少數類樣本x,從其k近鄰中隨機選擇若干個樣本,假設選擇的近鄰為xn。
  3. 對于每一個隨機選出的近鄰xn,分別與原樣本按照如下的公式構建新的樣本 xnew=x+rand(0,1)∗|x−xn|

部分代碼如下: 

  1. df=get_data()  
  2. x, y = load_creditcard_data(df)  
  3. X_resampled_smote, y_resampled_smote = SMOTE().fit_sample(x, y) # print(y_resampled_smote)  
  4. X_train, X_test, y_train, y_test = train_test_split(X_resampled_smote, y_resampled_smote, test_size=0.3,random_state=0) 

二、adasyn采樣

本文介紹的是 ADASYN: 自適應綜合過采樣方法。

算法步驟如下:

(1)計算不平衡度

記少數類樣本為ms,多數類為ml,則不平衡度為 d = ms / ml,則d∈(0,1]。(作者在這里右邊用了閉區間,我覺得應該用開區間,若是d = 1,則少數類與多數類樣本數量一致,此時數據應該平衡的)

(2)計算需要合成的樣本數量

G = (ml - ms)* b,b∈[0,1],當b = 1時,即G等于少數類和多數類的差值,此時合成數據后的多數類個數和少數類數據正好平衡

(3)對每個屬于少數類的樣本用歐式距離計算k個鄰居,為k個鄰居中屬于多數類的樣本數目,記比例r為r = / k,r∈[0,1]

(4)在(3)中得到每一個少數類樣本的 ri ,

用 計算每個少數類樣本的周圍多數類的情況

(5)對每個少數類樣本計算合成樣本的數目 (6)在每個待合成的少數類樣本周圍k個鄰居中選擇1個少數類樣本,根據下列等式進行合成

重復合成直到滿足需要步驟(5)合成的數目為止。

部分代碼如下: 

  1. df=get_data()  
  2. x, y = load_creditcard_data(df)  
  3. X_resampled_smote, y_resampled_smote = ADASYN().fit_sample(x, y) 

三、欠采樣

以下兩種方法都屬于欠抽樣,不同于直接欠抽樣,他們將信息的丟失程度盡量降低。兩者的核心思想為:

1. EasyEnsemble 核心思想是:

  • 首先通過從多數類中獨立隨機抽取出若干子集
  • 將每個子集與少數類數據聯合起來訓練生成多個基分類器
  • 最終將這些基分類器組合形成一個集成學習系統

EasyEnsemble 算法被認為是非監督學習算法,因此它每次都獨立利用可放回隨機抽樣機制來提取多數類樣本

2. BalanceCascade 核心思想是:

  • 使用之前已形成的集成分類器來為下一次訓練選擇多類樣本
  • 然后再進行欠抽樣

四、一分類

對于正負樣本極不平衡的場景,我們可以換一個完全不同的角度來看待問題:把它看做一分類(One Class Learning)或異常檢測(Novelty Detection)問題。這類方法的重點不在于捕捉類間的差別,而是為其中一類進行建模,經典的工作包括One-class SVM等。

我們只對一類進行訓練,模型的結果會聚集在某個范圍內,測試集進行測試,則模型的輸出結果為1和-1兩種,當落在這個區間,結果為1,不在這個區間,則結果為-1

部分代碼如下: 

  1. def MechanicalRupture_Model():  
  2. train = pd.read_excel(normal)  
  3. test = pd.read_excel(unnormal)  
  4. clf = svm.OneClassSVM(nu=0.1, kernel=rbf, gamma=0.1)  
  5. clf.fit(train)  
  6. y_pred_train = clf.predict(train)  
  7. y_pred_test = clf.predict(test) 

五、改進的adaboost方法

AdaCost算法修改了Adaboost算法的權重更新策略,其基本思想是對于代價高的誤分類樣本大大地提高其權重,而對于代價高的正確分類樣 本適當地降低其權重,使其權重降低相對較小。總體思想是代價高樣本權重增加得大降低得慢。

具體adacost代碼如下: 

  1. #!/usr/bin/env python3# -*- coding:utf-8 -*-import numpy as npfrom numpy.core.umath_tests import inner1dfrom sklearn.ensemble import AdaBoostClassifierclass AdaCostClassifier(AdaBoostClassifier):#繼承AdaBoostClassifier 
  2. def _boost_real(self, iboost, X, y, sample_weight, random_state):  
  3. implement a single boost using the SAMME.R real algorithm.  
  4. :param iboost:  
  5. :param X:  
  6. :param random_state:  
  7. :param y: 
  8.  :return:sample_weight,estimator_error  
  9. estimator = self._make_estimator(random_state=random_state)  
  10. estimator.fit(X, y, sample_weight=sample_weight)  
  11. y_predict_proba = estimator.predict_proba(X) if iboost == 0:  
  12. self.classes_ = getattr(estimator, 'classes_', None)  
  13. self.n_classes_ = len(self.classes_)  
  14. y_predict = self.classes_.take(np.argmax(y_predict_proba, axis=1),axis=0)  
  15. incorrect = y_predict != y  
  16. estimator_error = np.mean(np.average(incorrect, weights=sample_weight, axis=0)) if estimator_error = 0: return sample_weight, 1., 0.  
  17. n_classes = self.n_classes_ 
  18.  classes = self.classes_  
  19. y_codes = np.array([-1. / (n_classes - 1), 1.])  
  20. y_coding = y_codes.take(classes == y[:, np.newaxis])  
  21. proba = y_predict_proba # alias for readability  
  22. proba[proba np.finfo(proba.dtype).eps] = np.finfo(proba.dtype).eps  
  23. estimator_weight = (-1. * self.learning_rate * (((n_classes - 1.) / n_classes) *  
  24. inner1d(y_coding, np.log(y_predict_proba)))) # 樣本更新的公式,只需要改寫這里  
  25. if not iboost == self.n_estimators - 1:  
  26. sample_weight *= np.exp(estimator_weight *  
  27. ((sample_weight 0) |  
  28. (estimator_weight 0)) *  
  29. self._beta(y, y_predict)) # 在原來的基礎上乘以self._beta(y, y_predict),即代價調整函數  
  30. return sample_weight, 1., estimator_error def _beta(self, y, y_hat):  
  31. adjust cost function weight  
  32. :param y:  
  33. :param y_hat:  
  34. :return:res  
  35. res = [] for i in zip(y, y_hat): if i[0] == i[1]:  
  36. res.append(1) # 正確分類,系數保持不變,按原來的比例減少  
  37. elif i[0] == 0 and i[1] == 1: # elif i[0] == 1 and i[1] == -1:  
  38. res.append(1) # 將負樣本誤判為正樣本代價應該更大一些,比原來的增加比例要高  
  39. elif i[0] == 1 and i[1] == 0: # elif i[0] == -1 and i[1] == 1:  
  40. res.append(1.25) # 將正列判為負列,代價不變,按原來的比例增加  
  41. else: print(i[0], i[1]) return np.array(res) 

總結:

其中

smote采樣 、adasyn采樣、欠采樣、一分類是針對數據集做出處理。

改進的adaboost方法是對模型方法進行的改進。

具體采用哪種方式,需要結合具體情況。

責任編輯:未麗燕 來源: 搜狐
相關推薦

2017-03-28 09:40:23

機器學習數據不平衡

2023-12-26 15:32:25

不平衡數據過采樣機器學習

2021-01-04 10:40:37

Python不平衡數據機器學習

2016-12-13 11:48:05

數據處理不平衡數據

2021-06-06 22:41:30

人才技術預測不平衡

2017-06-16 22:14:45

機器學習數據不平衡

2018-04-20 11:33:22

不平衡數據數據集模型

2019-02-25 08:35:22

機器學習數據模型

2023-09-29 22:51:22

數據不平衡Python機器學習

2018-06-11 16:20:22

數據不平衡數據集算法

2022-05-06 09:48:56

機器學習樣本不平衡

2020-10-06 10:44:16

機器學習不平衡數據算法

2025-01-20 09:00:00

2020-09-21 09:02:56

AI機器學習類不平衡

2024-10-18 07:10:43

2017-03-20 09:25:10

機器學習采樣數據合成

2019-03-27 08:51:38

機器學習類失衡算法

2016-09-07 13:26:25

R語言不平衡數據

2016-09-19 14:52:12

Hadoophdfs磁盤

2013-04-23 11:17:47

Hadoop
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av在线成人 | 亚洲二区在线观看 | 在线免费观看毛片 | 狠狠躁躁夜夜躁波多野结依 | 日韩欧美三级电影在线观看 | 欧美日韩在线一区 | 亚洲综合久久久 | 久久久女女女女999久久 | 日本三级电影免费 | 一区二区三区四区在线视频 | 日韩在线观看一区二区三区 | 久久亚洲一区二区三区四区 | 国产亚洲精品久久情网 | a在线免费观看视频 | 国产伦精品一区二区三区照片91 | 免费国产一区二区视频 | 一区二区三区视频在线免费观看 | 在线视频h | 国产农村妇女精品一区 | 国产一区二区在线免费 | 不卡在线视频 | 无码一区二区三区视频 | 婷婷久久综合 | 玖玖久久| 欧美精品一区二区三区在线播放 | 欧美成人精品一区二区男人看 | 99re| 91中文字幕在线观看 | 亚洲超碰在线观看 | 精品亚洲一区二区 | 97视频成人| 伊人网综合 | 中文字幕在线免费观看 | 天天操天天干天天曰 | 一级a爱片性色毛片免费 | www视频在线观看 | 午夜国产一级 | 一区二区三区 在线 | 精品国产精品一区二区夜夜嗨 | 色一情一乱一伦一区二区三区 | 国产精品一区二区三区在线 |