rus = RandomUnderSampler(sampling_strategy=0.5, random_state=42) X_knn = np.array(X_knn)#转换为矩阵 y_knn = np.array(y_knn)#转换为矩阵 X_res, y_res = rus.fit_resample(X_knn, y_knn) print('欠采样') X_train, X_test, y_train, y_test = train_test_split(X_res, y_res, test_size=0.4) clf = RandomForestClassifier() clf.fit(X_train, y_train) result_rus = classification_report(y_test, clf.predict(X_test)) #print(result) testing_acc_ = clf.score(X_test, y_test) * 100 print('随机森林分类测试准确率: {:.2f}%'.format(testing_acc_))
时间: 2023-12-24 17:31:59 浏览: 190
欠采样是一种处理不平衡数据集的方法,它通过减少多数类样本的数量来平衡数据集。在这段代码中,首先使用了RandomUnderSampler来进行欠采样,其中sampling_strategy参数设置为0.5,即将多数类样本数量减少到少数类样本数量的一半。然后将输入特征X_knn和目标变量y_knn转换为矩阵形式。接下来,使用fit_resample方法对数据进行欠采样处理,得到了欠采样后的特征矩阵X_res和目标变量矩阵y_res。然后将数据集划分为训练集和测试集,其中测试集占总样本数量的40%。使用RandomForestClassifier来构建随机森林分类器,并使用fit方法训练模型。最后,使用classification_report函数计算模型在测试集上的分类报告,并使用score方法计算模型在测试集上的准确率,并打印出来。
阅读全文