不平衡数据集

直接下载(强烈推荐)

我已经传到CSDN上去了,不需要积分,点击出发

数据集说明如下所示: https://imbalanced-learn.org/stable/datasets/index.html#imbalanced-datasets-for-benchmark

最简单的使用

  1. 安装imblearn库
pip install imblearn
  1. 下载你需要的数据集

数据集信息,可以从这里查看(https://imbalanced-learn.org/stable/datasets/index.html)

from imblearn.datasets import fetch_datasets
import pandas as pd
name = "数据集名字"

data = fetch_datasets()['name]
data.to_csv(f"{name}.csv",index=False)

KEEL数据集的使用(不太推荐)

  1. 首先去官网: http://www.keel.es/

然后红框中的都是数据集的种类,都是可以下载的

教程

这里我点击Standard classification data sets (76)这个链接

  1. 如何下载?

教程

  1. 如何使用

3.1 如果你用的是matlab应该可以直接使用

3.2 如果你用的是python,还需要把这个文件转换为.csv文件

  1. 转换文件

转换文件需要KEEL软件,点我去下载,免费

然后解压文件,进入文件夹,在文件夹中执行下面的命令(需要提前安装java才能运行文件)

java -jar ./dist/GraphInterKeel.jar

运行软件后,点击这个

教程

接下来,点击这个

教程

接下来,点击这个

教程

接下来,点击这个

教程

最后点save,然后指定你保存的位置就可以了

如果你想将数据集中的文本全部映射成数字,可以执行下面的python代码,(记得替换数据集的名字)

import pandas as pd

name = "数据集名字(不需要后缀)"
data = pd.read_csv(f"{name}.csv")

columns = data.columns
data = data.rename(columns={columns[-1]:"class"})
columns = data.columns

def dic(a,b):
    print(a)
    data_dict = {}
    for id_,i in enumerate(a):
        data_dict[i] = b[id_]
    return data_dict

for col in columns:
    a = data[col].unique()
    if type(a[0]) == str:
        b = list(range(1,len(a)+1))
        data_dict = dic(a,b)
        data[col] = data[col].map(data_dict)

data.to_csv(f"{name}-2.csv",index=False)