SMOTE处理PIDD数据集后y_smote形状仅为(1000,)是否正常?
关于SMOTE处理后标签数组形状的问题解答
分类任务里,模型接受的标签本来就是一维数组(像(1000,)这种形状),这是完全合规的,Scikit-learn这类主流框架的分类器都能直接用这种格式的标签训练,所以你现在的y_smote形状是正常状态,没必要刻意加第二个维度。
如果因为某些特定需求(比如自定义函数、特定框架要求)必须把标签改成二维(比如(1000, 1)),可以用下面两种简单方法实现:
- 用NumPy的
reshape方法:
import numpy as np y_smote_2d = y_smote.reshape(-1, 1)
执行后y_smote_2d的形状就会变成(1000, 1)。
- 如果你的标签是Pandas Series类型,直接转成DataFrame:
import pandas as pd y_smote_2d = pd.DataFrame(y_smote)
这样得到的结果形状也是(1000, 1)。
内容的提问来源于stack exchange,提问作者Ebuka Eluzai
相关产品推荐
相关产品推荐

