gpt4 book ai didi

python - 使用 matplotlib python 绘制决策树分类器的 2 个以上特征

转载 作者:行者123 更新时间:2023-12-01 08:42:40 26 4
gpt4 key购买 nike

数据集

我一直在玩Pima Indians Dataset使用决策树分类器进行分类。不过,我已经得到了结果,并且作为明显的阶段,我一直在寻找相同的可视化。

这是数据集的头部:

   TimesPregnant  GlucoseConcentration  BloodPrs  SkinThickness  Serum   BMI  \
0 6 148 72 35 0 33.6
1 1 85 66 29 0 26.6
2 8 183 64 0 0 23.3
3 1 89 66 23 94 28.1
4 0 137 40 35 168 43.1

DiabetesFunct Age Class
0 0.627 50 1
1 0.351 31 0
2 0.672 32 1
3 0.167 21 0
4 2.288 33 1

绘制 2 个以上特征?

这是我使用网络上的引用资料和教程组装的代码。显然它不适用于超过 2 个功能。在这里,你可以注意到除了最后一栏之外,其他都是我的特色。

代码

# Visualising the Training set results
from matplotlib.colors import ListedColormap
X_set, y_set = X_train, y_train
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('Decision Tree (Train set)')
plt.xlabel('Age')
plt.ylabel('Estimated Salary')
plt.legend()
plt.show()

您可能会注意到这些 X1X2 由网格网格组成,以便利用我用于着色的空间,但是如果解决方案您可以忽略,您可以随意忽略建议涵盖在 matplotlib 上绘制 2 个以上特征。

现在,我无法在这里为 8 个功能制作 8 个 X,我正在寻找非常有效的方法来做到这一点。

最佳答案

具体操作方法如下:

from itertools import product
from matplotlib import pyplot as plt
import numpy as np
import scipy.stats as sts

features = [np.linspace(0, 5),

np.linspace(9, 14),

np.linspace(6, 11),
np.linspace(3, 8)]

labels = ['height',
'weight',
'bmi',
'age']

n = len(features)
fig, axarr = plt.subplots(n, n, figsize=(4*n, 4*n))
fig.subplots_adjust(0, 0, 1, 1, 0, 0)

for (x,y),ax in zip(product(features, features), axarr.T.flat):
X,Y = np.meshgrid(x, y)

# get some fake data for demo purposes
mnorm = sts.multivariate_normal([x.mean()**(7/10), y.mean()**(11/10)])
Z = mnorm.pdf(np.stack([X, Y], 2))

ax.contourf(X, Y, Z)

# label and style the plot
# ...in progress

输出:

enter image description here

关于python - 使用 matplotlib python 绘制决策树分类器的 2 个以上特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53437076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com