建立决策树首先得建立树桩,单层决策树(仅基于单个特征来做决策)
transpose
转置可以对数组进行重置,返回的是源数据的视图(不会进行任何复制操作)。
def plotimage(dataMat, labelMat):
matplus = []
matmini = []
for i in range(len(dataMat)):
if labelMat[i] > 0:
matplus.append(dataMat[i])
else:
matmini.append(dataMat[i])
###当满足条件的时候是增加的这个点,因此一点要加上i
matplusnp = np.array(matplus)
matmininp = np.array(matmini)
###文本输入是list,具体分析的时候需要转换成array
plt.scatter(np.transpose(matplusnp)[0], np.transpose(matplusnp)[1])
plt.scatter(np.transpose(matmininp)[0], np.transpose(matmininp)[1])
plt.show()
可以看到,如果想要试着从某个坐标轴上选择一个值(即选择一条与坐标轴平行的直线)来将所有的蓝色圆点和橘色圆点分开,这显然是不可能的。这就是单层决策树难以处理的一个著名问题。通过使用多颗单层决策树,我们可以构建出一个能够对该数据集完全正确分类的分类器