麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 大數據學習教程:如何處理多類不平衡數據?

大數據學習教程:如何處理多類不平衡數據?

來源:千鋒教育
發布人:syq
時間: 2022-07-04 17:32:00 1656927120

  機器學習中的一個常見問題是處理不平衡數據,其中目標類中比例嚴重失調,存在高度不成比例的數據。如何處理多類不平衡數據呢?什么是多類不平衡數據?什么是SMOTE算法?為什么使用類別權重(Class weight)......下面將進行詳細介紹。

如何處理多類不平衡數據

  什么是多類不平衡數據?

  當分類問題的目標類(兩個或兩個以上)不均勻分布時,稱為不平衡數據。如果不能處理好這個問題,模型將會成為災難,因為使用類不平衡數據建模會偏向于大多數類。處理不平衡數據有不同的方法,最常見的是過采樣(Oversampling)和創建合成樣本。

  什么是SMOTE算法?

  SMOTE是一種從數據集生成合成算例的過采樣技術,它提高了對少數類的預測能力。雖然沒有信息損失,但它有一些限制。

  合成樣本

  限制:

  · SMOTE不適用于高維數據。

  · 可能會發生類的重疊,并給數據帶來更多干擾。

  因此,為了跳過這個問題,可以使用'class_weight '參數手動為類分配權重。

  為什么使用類別權重(Class weight)?

  類別權重通過對具有不同權重的類進行懲罰來直接修改損失函數,有目的地增加少數階級的權力,減少多數階級的權力。因此,它比SMOTE效果更好。本文將介紹一些最受歡迎的獲得數據的權重的技術,它們對不平衡學習問題十分奏效。

  · Sklearn utils

  可以使用sklearn來獲得和計算類權重。在訓練模型的同時將這些權重加入到少數類別中,可以提高類別的分類性能。

  from sklearn.utils import class_weightclass_weight =class_weight.compute_class_weight('balanced,np.unique(target_Y),target_Y)model = LogisticRegression(class_weight = class_weight)model.fit(X,target_Y)# ['balanced', 'calculated balanced', 'normalized'] arehyperpaameterswhic we can play with.

  對于幾乎所有的分類算法,從邏輯回歸到Catboost,都有一個class_weight參數。但是XGboost對二進制分類使用scale_pos_weight,對二進制和多類問題使用樣本權重。

  · 數長比

  非常簡單明了,用行數除以每個類的計數數,然后

  weights = df[target_Y].value_counts()/len(df)model = LGBMClassifier(class_weight = weights)model.fit(X,target_Y)

  · 平和權重技術(Smoothen Weights)

  這是選擇權重的最佳方法之一。labels_dict是包含每個類的計數的字典對象,對數函數對不平衡類的權重進行平和處理。

  def class_weight(labels_dict,mu=0.15): total = np.sum(labels_dict.values()) keys = labels_dict.keys() weight = dict()for i in keys: score =np.log(mu*total/float(labels_dict[i])) weight[i] = score if score > 1else 1return weight# random labels_dictlabels_dict = df[target_Y].value_counts().to_dict()weights =class_weight(labels_dict)model = RandomForestClassifier(class_weight = weights)model.fit(X,target_Y)

  · 樣本權重策略

  下面的函數不同于用于為XGboost算法獲取樣本權重的class_weight參數。它為每個訓練樣本返回不同的權重。樣本權重是一個與數據長度相同的數組,包含應用于每個樣本的模型損失的權重。

  def BalancedSampleWeights(y_train,class_weight_coef): classes = np.unique(y_train, axis =0)classes.sort()class_samples = np.bincount(y_train)total_samples = class_samples.sum()n_classes = len(class_samples) weights = total_samples / (n_classes* class_samples * 1.0)class_weight_dict = {key : value for (key, value) in zip(classes, weights)}class_weight_dict[classes[1]] = class_weight_dict[classes[1]] *class_weight_coefsample_weights = [class_weight_dict[i] for i in y_train] return sample_weights#Usageweight=BalancedSampleWeights(target_Y,class_weight_coef)model = XGBClassifier(sample_weight = weight)model.fit(X, target_Y)

  · 類權重與樣本權重:

  樣本權重用于為每個訓練樣本提供權重,這意味著應該傳遞一個一維數組,其元素數量與訓練樣本完全相同。類權重用于為每個目標類提供權重,這意味著應該為要分類的每個類傳遞一個權重。

  更多關于大數據培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 男朋友想吻我腿中间那个部位| 波多野结大战三个黑鬼| 久热这里只有精品视频6| 国产破外女出血视频| 日本黄色免费观看| yy一级毛片免费视频| 草莓视频网站下载| 美女把尿口扒开让男人桶到出水| bwbwbwbwbwbw精彩| 日本年轻的妈妈| 韩国三级大全久久电影| 亚洲欧美综合国产精品一区| 正在播放宾馆露脸对白视频| 国产欧美va欧美va香蕉在| 日本三级中文字版电影| 国产大片中文字幕在线观看| 一个人看的www高清频道免费| 天下第一社区视频welcome | 污网站在线观看免费| 老子影院午夜| 北条麻妃大战黑人| 欧美人与性动交α欧美精品 | 欧美一区二区三区久久久人妖 | 国产特级毛片aaaaaa毛片| 色无极影视| 无忧传媒在线观看| 日韩aaa电影| 日本一卡精品视频免费| 老师你的兔子好软水好多作文高清| 全彩口工彩漫画无遮漫画| 村上凉子丰满禁断五十路| 国产成人免费a在线资源| 精品精品国产高清a级毛片 | 国产精品宾馆在线| 奇米网奇米色| 亚洲黄色在线看| 欧美一级www| 国产69精品久久久久777| 日韩三级| 久久大香伊人中文字幕| 91成人影院|