AttributeError: 'DataFrame' object has no attribute 'name' when using SMOTE

AttributeError: 'DataFrame' object has no attribute 'name' when using SMOTE

我正在使用 imblearn over_sampling SMOTE 技术来平衡我不平衡的数据集。

这是我的示例代码

import pandas as pd
dataset=pd.read_csv('E://IOT_Netlume//hourly_data.csv')
features= dataset.iloc[:,[1,2,3,4]]
target= dataset.iloc[:,[5]]
from imblearn.over_sampling import SMOTE

# applying SMOTE to our data and checking the class counts
resampled, yresampled = SMOTE(random_state=42).fit_resample(features, target)

因此,每当我尝试拟合 SMOTE 模型时,它都会显示属性错误。 AttributeError: 'DataFrame' object has no attribute 'name' 。谁能帮我解决这个问题?

我也有 pip 安装库

Windows-10-10.0.15063-SP0 Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] NumPy 1.17.4 SciPy 1.3.2 Scikit-Learn 0.22 Above mentioned are the version installed.

特征和目标输出 features output target output

Imbalanced-learn 0.6 将接受 X 的数据帧和 y 的系列。但是写

target= dataset.iloc[:,[5]]

target 将是一个数据帧(2D),而不平衡学习需要一个系列(1D)。 只需编辑您的代码即可获得系列:

target = dataset.iloc[:, 5]