决策树只预测一个类



我在以下数据集上安装决策树:

https://archive.ics.uci.edu/ml/machine-learning-databases/car/car.data

和以下是我的代码:

balance_data=pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/car/car.data",
                           sep= ',', header= None)
le = preprocessing.LabelEncoder()
balance_data = balance_data.apply(le.fit_transform)
X = balance_data.values[:, 0:5]
Y = balance_data.values[:,6]
X_train, X_test, y_train, y_test = train_test_split( X, Y, test_size = 0.2, random_state = 100)
#using Gini index
clf_gini = DecisionTreeClassifier(criterion = "gini", random_state = 100,
                               max_depth=3, min_samples_leaf=5)
clf_gini.fit(X_train, y_train)
#using Information Gain
clf_entropy = DecisionTreeClassifier(criterion = "entropy", random_state = 100,
 max_depth=3, min_samples_leaf=5)
clf_entropy.fit(X_train, y_train)

#Gini prediction
y_pred = clf_gini.predict(X_test)
y_pred
#IG prediction
y_pred_en = clf_entropy.predict(X_test)
y_pred_en

在这两种情况下

array([2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,])

培训有问题吗?此外,如何将此数值转换为字符串值。

edit1:我计算了准确性,它说71.是否有可能出现输出的问题?

您的数据集是不平衡的

鉴于您的数据看起来像这样:

       0      1  2  3      4     5      6
0  vhigh  vhigh  2  2  small   low  unacc
1  vhigh  vhigh  2  2  small   med  unacc
2  vhigh  vhigh  2  2  small  high  unacc
3  vhigh  vhigh  2  2    med   low  unacc
4  vhigh  vhigh  2  2    med   med  unacc

并且您的目标变量是第6列Y = balance_data.values[:,6]。快速查看目标变量分布会得出结论,您的数据集是不平衡的。

实际上,在启动新的机器学习项目时,要做的主要任务之一就是检查您的数据集是否不平衡。这可以通过计算目标变量值的观测值的分布来完成。

由于您的数据是PANDAS DataFrame,因此获得值分布如下:

In [46]: balance_data.iloc[:,6].value_counts()
Out[46]: 
unacc    1210
acc       384
good       69
vgood      65
Name: 6, dtype: int64

您可以看到,数据集主要包含目标值unacc的观测值,而70%的准确性:

In [49]: 1210/1728.
Out[49]: 0.7002314814814815

您提到的,模型的准确性约为71%,对应于总体数据集中目标值unacc的百分比。

有几种克服此问题的技术,请检查以下链接以获取有关此问题的详细教程:

  • https://machinelearningmastery.com/tactics-to-combat-mmpalanced-classes-in-your-machine-learning-dataset/
  • https://www.analyticsvidhya.com/blog/2017/03/imbalanced-classification-problem/

相关内容

  • 没有找到相关文章

最新更新