如何解决sklearn错误:“发现输入变量的样本数量不一致”? 上下文

问题描述

我在使用sklearn 70-30部门时遇到了挑战。我在网上收到错误消息:

X_train,X_test,y_train,y_test = train_test_split(X_smote,y_smote,test_size=0.3,stratify=y)

错误是:

Found input variables with inconsistent numbers of samples

上下文

from imblearn.over_sampling import SMOTE
    
sm = SMOTE(k_neighbors = 1)
X = data.drop('cluster',axis=1)
y = data['cluster']
    
X_smote,y_smote= sm.fit_sample(X,y)
    
data_bal = pd.DataFrame(columns=X.columns.values,data=X_smote)
data_bal['cluster']=y_smote
    
from sklearn.model_selection import  train_test_split
X_train,stratify=y)
y_train.value_counts().plot(kind='bar')

修改

解决了这个错误,我只需要将stratify=y放在stratify=y_smote

解决方法

只需在您的代码行中观察一下即可

X_train,X_test,y_train,y_test = train_test_split(X_smote,y_smote,test_size = 0.3,stratify = y)

抛出的错误通常是由于某些输入值预期具有与其他输入值一致的特定尺寸或长度所致。

检查X_smote,y_smote和y的长度和/或尺寸,看它们是否都符合预期。