接下来我应该采取哪些步骤来提高准确性?数据可能是问题吗?

问题描述 投票:-1回答:1

我使用sklearn构建了各种ML模型,以解决二进制分类问题。数据集由我的教授提供给我进行比较研究。

my results are heremy jupyter notebook and dataset can be found here

由于我获得的准确性非常低,我担心在构建模型时一定做错了什么。因此,我在sklearn(乳腺癌数据集)中的内置数据集上测试了决策树,该数据集与我的数据集非常相似,因为它们都是二进制分类。在这里,我得到95%的平均准确度。因此,我现在认为问题可能出在我的数据集上。我可以得到一些有关如何预处理数据或我可能会进行以提高准确性的其他步骤的帮助。

python-3.x dataframe scikit-learn decision-tree
1个回答
0
投票
  1. 编码标签

分类数据是包含标签值而不是数字值的变量。可能值的数量通常限于固定集。例如,通常按国家,性别,年龄组等描述用户。我们将使用Label Encoder标记分类数据。 Label Encoder是Python的SciKit Learn库的一部分,用于将分类数据或文本数据转换为数字,我们的预测模型可以更好地理解该数字。

#Encoding categorical data values

from sklearn.preprocessing import LabelEncoder
labelencoder_Y = LabelEncoder()
Y = labelencoder_Y.fit_transform(Y)
  1. 功能缩放

在大多数情况下,您的数据集将包含在大小,单位和范围上高度变化的要素。但是自那以后,大多数机器学习算法在计算中都使用了两个数据点之间的欧氏距离。我们需要使所有特征达到相同的幅度。这可以通过缩放来实现。这意味着您正在转换数据,使其适合特定范围,例如0–100或0–1。我们将使用SciKit-Learn库中的StandardScaler方法。

#Feature Scalingfrom sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)
  1. 选择权模式

您还可以选择合适的模型。您不能只使用神经网络,所以对于所有问题,这都是无自由度定理。为此,您可以使用K折交叉验证,AIC和BIC

© www.soinside.com 2019 - 2024. All rights reserved.