python调用imblearn中SMOTE踩坑
生活随笔
收集整理的這篇文章主要介紹了
python调用imblearn中SMOTE踩坑
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??SMOTE是用來解決樣本種類不均衡,專門用來過采樣化的一種方法。第一次接觸,踩了一些坑,寫這篇記錄一下:
問題一:SMOTE包下載及調用
# 包下載 pip install imblearn# 調用 from imblearn.over_sampling import SMOTE # 使用SMOTE進行過采樣時正樣本和負樣本要放在一起,生成比例1:1 smo = SMOTE(n_jobs=-1) # 這里必須是fit_resample(),有些版本是fit_sample()無法運行 x_sampling, y_sampling = smo.fit_resample(train_x_data, train_y_data)對于SMOTE函數API參數如下:
API介紹imblearn.over_sampling.SMOTE( sampling_strategy = ‘auto’, random_state = None, ## 隨機器設定 k_neighbors = 5, ## 用相近的 5 個樣本(中的一個)生成正樣本 m_neighbors = 10, ## 當使用 kind={'borderline1', 'borderline2', 'svm'} out_step = ‘0.5’, ## 當使用kind = 'svm' kind = 'regular', ## 隨機選取少數類的樣本 – borderline1: 最近鄰中的隨機樣本b與該少數類樣本a來自于不同的類 – borderline2: 隨機樣本b可以是屬于任何一個類的樣本; – svm:使用支持向量機分類器產生支持向量然后再生成新的少數類樣本 svm_estimator = SVC(), ## svm 分類器的選取 n_jobs = 1, ## 使用的例程數,為-1時使用全部CPU ratio=None )參考博客:https://blog.csdn.net/yeziyezi1986/article/details/103202012
問題二:ValueError: Unknown label type: ‘continuous’
解決方法:標簽類型必須是int型
參考博客:https://blog.csdn.net/qq_41870817/article/details/89419726
問題三:ValueError: Expected n_neighbors <= n_samples, but n_samples = 1, n_neighbors = 6
解決方法:
??1.調整k_neighbors參數值
??2.復制數據集,讓數據條數多一點兒
參考博客:https://blog.csdn.net/weixin_45494978/article/details/107669996
https://blog.csdn.net/LinJing_2020/article/details/104606596
最后留一個比較清晰的使用文章:
https://blog.csdn.net/opp003/article/details/89920665
總結
以上是生活随笔為你收集整理的python调用imblearn中SMOTE踩坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++:Windows编程—MFC基
- 下一篇: Redis 与 key 相关的常用命令