问题描述
我在使用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的长度和/或尺寸,看它们是否都符合预期。