想问一下,用哪种方式来使用击打?我的数据集是不平衡的,是一个多类问题。正如我在许多文章中所看到的,只对训练数据集(X_train和y_train)使用SMOTE方法。不适用于测试数据集(X_test和y_test)。在这里,我包括验证数据。如何处理验证数据?
df = pd.read_excel...
X=df.drop('column1',axis=1)
y=df.column1
#Training part
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=True, random_state=42)
smote = SMOTE(random_state=42)
X_train_smote, y_train_smote = smote.fit_resample(X_train, y_train)
#validation part
X_train_smote, X_val, y_train_smote, y_val = train_test_split(X_train_smote, y_train_smote, test_size=0.5, random_state=42)这是正确的吗?
对吗,验证数据集(X_val和y_val)都在内部受到打击吗?还是我应该从正常的火车测试中解脱出来: X_train,X_val,y_train,y_val = train_test_split(X_train,y_train,test_size=0.5,random_state=42)?我很困惑。
发布于 2020-10-31 13:09:44
在数据和应用拆分(测试/或验证并不重要)中应用smote的问题是,您可能会受到数据泄漏的影响。这意味着来自列车的一些信息可能会泄露到未来,并且错误地给出了很好的预测。我建议对所有三个数据集进行单独的数据生成过程。分裂也是如此,而不是数据生成。
https://datascience.stackexchange.com/questions/84742
复制相似问题