最近要处理不平衡数据,在网上找到一个不平衡处理的python工具包,官方地址https://imbalanced-learn.org/stable/index.html

Python库中Imblearn是专门用于处理不平衡数据,imblearn库包含了上采样、下采样、混合采样中的SMOTE、SMOTEENN、ADASYN和KMeansSMOTE等多种算法。

首先:看一下安装的环境要求

第二步:在anaconda中创建一个imbalance的虚拟环境,name自定义imbalance,python版本选择3.6版本的

第三步:安装imbalanced-learn包,pip或者conda都可以;

imbalanced-learn is currently available on the PyPi’s repositories and you can install it via pip:

pip install -U imbalanced-learn

The package is release also in Anaconda Cloud platform:

conda install -c conda-forge imbalanced-learn

会自动匹配下载一些安装包。缺的一些自己apply下载或者更新,注意需要满足imbalanced-learn包要求的各种版本。

第四步:测试

使用https://blog.csdn.net/u010654299/article/details/103980964提供的代码

from collections import Counter
from sklearn.datasets import make_classification
from imblearn.over_sampling import SMOTE
X, y = make_classification(n_classes=2, class_sep=2,weights=[0.1, 0.9], n_informative=2, n_redundant=0, flip_y=0,n_features=2, n_clusters_per_class=1, n_samples=100,random_state=10)
print('Original dataset shape %s' % Counter(y))sm = SMOTE(random_state=42)
X_res, y_res = sm.fit_resample(X, y)
print('Resampled dataset shape %s' % Counter(y_res))

会报错,sad(⊙︿⊙)

AttributeError: 'sm' object has no attribute 'fit_resample'

第五步:debug

解决上述问题:单独运行查看每一步的结果,再根据错误提示,查找原因,翻看了很多解决方案,在https://stackoverflow.com/questions/57466592/randomundersampler-object-has-no-attribute-fit-resample?noredirect=1

找到了有效的解决方案,需要更新imbalanced-learn包,或者将“fit_resample”替换为“fit_sample”.

#The method fit_resample was introduced lately to imbalanced-learn API. Either update imbalanced-learn or use fit_sample instead.
#updating the scikit-learn version to 0.23.1

(1)首先试了将“fit_resample”替换为“fit_sample”,并不是所有的地方都管用,

from collections import Counter
from sklearn.datasets import make_classification
from imblearn.over_sampling import BorderlineSMOTE
X, y = make_classification(n_classes=2, class_sep=2,weights=[0.1, 0.9], n_informative=2, n_redundant=0, flip_y=0,n_features=2, n_clusters_per_class=1, n_samples=100, random_state=9)
print('Original dataset shape %s' % Counter(y))
sm = BorderlineSMOTE(random_state=42,kind="borderline-1")
X_res, y_res = sm.fit_resample(X, y)
print('Resampled dataset shape %s' % Counter(y_res))

还是会有报错的,

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-25-4c5cdbf10c4f> in <module>1 from collections import Counter2 from sklearn.datasets import make_classification
----> 3 from imblearn.over_sampling import BorderlineSMOTE4 X, y = make_classification(n_classes=2, class_sep=2,5                            weights=[0.1, 0.9], n_informative=2, n_redundant=0, flip_y=0,ImportError: cannot import name 'BorderlineSMOTE'

(2)用jupyter查看虚拟环境imbalance中安装的各种包的版本,代码如下

# python
import platform; print(platform.platform())
import sys; print("Python", sys.version)
import numpy; print("NumPy", numpy.__version__)
import scipy; print("SciPy", scipy.__version__)
import sklearn; print("Scikit-Learn", sklearn.__version__)
import imblearn; print("imblearn", imblearn.__version__)

输出

Windows-10-10.0.18362-SP0
Python 3.6.13 |Anaconda, Inc.| (default, Mar 16 2021, 11:37:27) [MSC v.1916 64 bit (AMD64)]
NumPy 1.15.4
SciPy 1.1.0
Scikit-Learn 0.18.1
imblearn 0.3.1

发现scikit-learn, imbalanced-learn 其实都有更高的版本, scikit-learn在anaconda中也不能直接upgrade,就使用pip更新了对应的包

pip install --upgrade scikit-learn
pip install --upgrade imbalanced-learn

更新后

Windows-10-10.0.18362-SP0
Python 3.6.13 |Anaconda, Inc.| (default, Mar 16 2021, 11:37:27) [MSC v.1916 64 bit (AMD64)]
NumPy 1.15.4
SciPy 1.1.0
Scikit-Learn 0.24.2
imblearn 0.8.0

记得将之前改为“fit_sample”的部分全部改回来,“fit_resample”……

更新,将不平衡相关的一些数据集、代码集合在一起,动手实践起来:

不平衡处理的python工具包,官方地址https://imbalanced-learn.org/stable/index.html

不平衡数据处理之SMOTE、Borderline SMOTE和ADASYN详解及Python使用https://blog.csdn.net/u010654299/article/details/103980964

https://blog.csdn.net/qq_27802435/article/details/81201357Python sklearn 实现过采样和欠采样

http://archive.ics.uci.edu/ml/index.php包含不平衡数据的UCI数据集

https://www.is.ovgu.de/Research/Codes.html计算智能代码

不平衡篇(一)记录不平衡工具包imbalanced-learn的安装——小白入门相关推荐

  1. Java新手小白入门篇 Java基础(一)

    Java新手小白入门篇 Java基础 Java新手小白入门篇 Java基础(知识点体系汇总) Java新手小白入门篇 Java基础(一) Java新手小白入门篇 Java基础(二) Java新手小白入 ...

  2. Opencv 入门篇学习记录(图片)

    title: Opencv 入门篇学习记录(图片) Opencv 入门篇学习记录(图片) 前言 很早以前就接触Python了,大学的时候还自学了一段时间去做了课设,写了一些最速梯度下降法.黄金分割法. ...

  3. 这篇文章记录平时学习、项目中遇到的问题(未解决的居多)

    前言 这篇文章记录平时学习.项目中遇到的问题(未解决的居多) 快速排序的等号 维基百科的快排如下: while (left < right) {while (arr[left] < mid ...

  4. 第一篇随意记录博文:关于程序员的五年之痒

    第一篇随意记录博文:关于程序员的五年之痒 大家好! 2015年9月16号开启了我在北京实习的第一份工作,这个是一家外包公司,由于要使用到日语,每天到公司后还要开早会晨读日语(扯淡规章制度),还好大学学 ...

  5. 菜鸟学Linux 第030篇笔记 yum使用,源码编译安装

    菜鸟学Linux 第030篇笔记 yum使用,源码编译安装 yum yellow updatet modified c/s: client, server yum repository 文件服务定义 ...

  6. Git快速入门篇—— Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程)

    Git快速入门篇-- Windows版本淘宝镜像快速下载安装详细步骤及简单入门教程(附带图文教程) 前言:我们平时在整理代码的时候,尤其是与别人一起开发项目的时候,常常涉及到代码的更新,因此代码版本问 ...

  7. 【Autopsy数字取证篇】Autopsy数字取证软件的下载安装与优化配置

    [Autopsy数字取证篇]Autopsy数字取证软件的下载安装与优化配置 Autopsy是一款免费开源的优秀数字取证(Digital Forensics)软件,提供与其他数字取证工具相同的核心功能, ...

  8. 3DMax”——新手小白入门篇

    3Dmax 是一个数字化三维制作软件,常简称为3Ds Max或MAX,是Discreet公司开发的(后被Autodesk公司合并)基于PC系统的三维动画渲染和制作软件.其前身是基于DOS操作系统的3D ...

  9. pdo sqlite_ sqlite2 pdo_mysql_PHP数据库连接篇,PDO连接sqlite数据库,Sqlite安装使用说明!(PHP+Sqlite2和PHP+Sqlite3)...

    PHP+Sqlite2和PHP+Sqlite3 PHP数据库连接篇,PDO连接sqlite数据库,Sqlite安装使用说明! SQLite是一种轻量级的关系型数据库,可以内嵌在我们的应用程序中一起发布 ...

最新文章

  1. Oracle 11g必须开启的服务及服务详细介绍
  2. java将图片变成圆角_android图片处理之让图片变成圆形
  3. html坐标绘制路径,canvas学习笔记之绘制简单路径
  4. 正则表达式 正整数_史上最全的正则表达式 (1) -- 校验数字的表达式
  5. c++ 方向_物理微课揭秘摩擦力的方向
  6. 17. Store newed objects in smart pointers in standalone statements
  7. 开发版速达光耀-无公网IP服务器访问整体解决方案
  8. win10系统开机自动修复失败的解决方法
  9. Use junit to test Trangle problem
  10. Spring Boot 从入门到精通(一)HelloWorld(构建项目,热部署,测试)
  11. 【Effective C++】总结
  12. iSCSI initiator
  13. 用Video实现视频播放
  14. seo快排工具真的有用吗?免费SEO手法网站快排技术分享
  15. Fiddler 手机抓包
  16. 产业区块链进场,2020年可能迎来拐点 | 你好2020
  17. 超市小程序怎么做_分享超市微信小程序制作步骤
  18. 从经典到深度学习的数据补全
  19. 中国核电空气压缩机市场现状调查与投资策略研究报告2022-2028年
  20. 试着照魔女之泉弄的道具箱UI

热门文章

  1. 理解Linux系统中的load average(图文版)
  2. Team30 第四次作业-四象限法分析项目
  3. Android 动画详尽教程 [详尽!详尽!]
  4. PHP实现NBA赛事结果即时推送
  5. 基于MATLAB的m序列产生函数及其调用方法
  6. 做自己的决定,自己的路自己走。
  7. 2022集创赛安谋科技杯简析公开课文字版(建议结合视频一起看)
  8. 设计模式——共享模式
  9. Swordphish——一个增强人员防钓鱼意识的安全工具
  10. [笔试] 2009年腾讯校园招聘会武汉长沙笔试试题