我写了下面的代码。 X
是形状为(1000,5)
的数据帧,而y
是形状为(1000,1)
的数据帧。 y
是要预测的目标数据,并且不平衡。我想应用交叉验证和SMOTE。
def Learning(n, est, X, y):
s_k_fold = StratifiedKFold(n_splits = n)
acc_scores = []
rec_scores = []
f1_scores = []
for train_index, test_index in s_k_fold.split(X, y):
X_train = X[train_index]
y_train = y[train_index]
sm = SMOTE(random_state=42)
X_resampled, y_resampled = sm.fit_resample(X_train, y_train)
X_test = X[test_index]
y_test = y[test_index]
est.fit(X_resampled, y_resampled)
y_pred = est.predict(X_test)
acc_scores.append(accuracy_score(y_test, y_pred))
rec_scores.append(recall_score(y_test, y_pred))
f1_scores.append(f1_score(y_test, y_pred))
print('Accuracy:',np.mean(acc_scores))
print('Recall:',np.mean(rec_scores))
print('F1:',np.mean(f1_scores))
Learning(3, SGDClassifier(), X_train_s_pca, y_train)
运行代码时,出现以下错误:
[Int64Index([4231,4235,4246,4250,4255,4295,4317, 4344,4381,\ n 4387,\ n ... \ n 13122, 13123、13124、13125、13126、13127、13128、13129、13130,\ n
13131],\ n dtype ='int64',length = 8754)]在[列]“中
感谢帮助使其运行。