Python 不平衡数据集的分类步骤是什么?
我需要任何熟悉我所面临问题的人的帮助 我想用SVM、随机森林和深度神经网络(DNN)对两个不同的数据集进行分类。我的一个数据集是平衡的,另一个数据集是高度不平衡的。下面是我的数据集的图像,分类不平衡 我想比较用于这两种数据的所有机器学习的分类结果。哪个数据集产生了更好的分类结果。对于平衡数据集,我没有问题,因为正常处理它的方法是正确的,但是对于不平衡数据集,我有点困惑 我的问题是,我对使用不平衡数据进行分类的步骤感到困惑。据我所知,为了处理不平衡的数据,我们应该进行抽样 我必须先分类并得到结果,还是应该先进行过采样并分类并得到结果?使用不平衡数据集进行分类的正确步骤是什么?我希望任何人都能帮助我,因为我在这方面还是新手Python 不平衡数据集的分类步骤是什么?,python,machine-learning,classification,Python,Machine Learning,Classification,我需要任何熟悉我所面临问题的人的帮助 我想用SVM、随机森林和深度神经网络(DNN)对两个不同的数据集进行分类。我的一个数据集是平衡的,另一个数据集是高度不平衡的。下面是我的数据集的图像,分类不平衡 我想比较用于这两种数据的所有机器学习的分类结果。哪个数据集产生了更好的分类结果。对于平衡数据集,我没有问题,因为正常处理它的方法是正确的,但是对于不平衡数据集,我有点困惑 我的问题是,我对使用不平衡数据进行分类的步骤感到困惑。据我所知,为了处理不平衡的数据,我们应该进行抽样 我必须先分类并得到结果
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report
data=pd.read_csv("ImbalancedData.csv")
y = data.Class
x = data.drop('Class,axis=1)
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.3)
正如在评论中所说,我也认为这个问题并不适合这样做。但是,为了帮助您,您还有一些选择: 1) 您可以处理数据的不平衡性-对多数类进行欠采样,对少数类进行上采样等。您可以检查SMOTE 2) 对于训练和测试分离,保持训练和测试之间的分布相同非常重要,以便获得反映真实数据的良好结果。Scikit learn具有StratetifySplit,它可以让您这样做,而不是常规的训练测试分割
3) 您可以使用已知的特定模型处理不平衡数据,并将其视为异常检测问题来解决。查看隔离林、本地异常值因子、自动编码器(无监督)等,它们可以给您带来更好的结果。请记住,还有许多其他的和超参数需要调整。将是一个更好的网站,我想他们可能已经有了关于如何处理分类的不平衡数据的问题和答案1类中有多少样本?这种巨大的类不平衡在异常检测中很常见,有一些技术可以解决它。类似于将其表述为一类问题(仅培训0类模型),然后对其进行验证/测试both@jonnor0类有126348个样本,1类有1840个样本。