分类
机器学习算法的绘图决策面+
用于分类的机器学习算法涉及学习如何将类别分配给观察。每个算法都有细微差别。每种算法在如何为每个观察值预测类别方面有所不同。对于大多数利益相关者而言,其决策过程似乎是不透明的。
决策面
决策曲面可能是一种强大的工具,可以可视化和理解模型如何达到其预测。它是一种诊断工具,可以识别模型的优缺点。它还提供了一种“快速而肮脏的”方式来识别模型对数据的拟合不足/过度拟合的区域。
本文介绍了如何编写自己的函数以使用Python为任何分类算法绘制决策图。您还将学习如何使用内置库创建简单的合成数据集并测试功能。您可以根据需要自定义功能。
让我们深入其中。
处理-
第1步:
导入库以处理数组和可视化
决策面:导入库
第2步:
让我们创建一个将要素矩阵和目标向量作为输入并创建决策面的函数。
决策面:创建功能
第三步:
然后,绘制原始训练数据的散点图。
决策面:散点图
现在,确定每个功能的最小值和最大值。
决策面:最小和最大特征
然后,可以使用numpy模块的meshgrid函数使用要素的最小值和最大值为每个要素生成值的网格(在所示示例中为500)。
决策面:Meshgrid
步骤4:
每个功能的网格将为500 x 500阵列。这些数组需要展平,然后转换为一维向量。numpy模块的flatten重塑功能可用于此目的。
决策面:y_pred重塑
y_pred重塑
决策面:形状
使用numpy模块的hstack函数,应堆叠特征向量以表示类似于原始特征矩阵的特征矩阵。
决策面:hpstack
步骤4:
让我们将模型拟合到原始数据集上,并使用我们创建的特征网格进行预测。
决策面:模型拟合
预测矢量必须重塑为与特征网格相同的形状,以便能够绘制轮廓图。
决策面:y_pred重塑
步骤5:
现在,我们使用pyplot的内置contourf函数绘制轮廓图。
图片发布
这就是创建用于为任何分类算法绘制决策面的函数的过程。准备在合成数据集上进行测试。请注意,在假设的数据集上测试我们的自定义函数总是一个好主意。
sklearn库的make_blobs函数是为此目的最常用的函数。它允许我们指定样本数量,特征数量,类数量以及其他几个参数。在我们的示例中,为简单起见,我们指定了1000个样本,2个要素和3个类。
图片发布
步骤6:
导入一些不同的分类机器学习库,以测试上述功能。
图片发布
步骤7:
创建分类机器学习模型字典
图片发布
步骤8:
使用上述函数在字典中绘制模型的决策面。
图片发布
以下是不同分类的现成机器学习算法的决策面。
图片发布决策树
图片发布逻辑回归
图片发布随机森林
图片发布梯度提升
图片发布支持向量
图片发布K最近邻居
此函数可与大多数sklearn算法中具有.fit()和.predict()方法的任何模型一起使用。
概要
在本文中,您了解了-
如何创建用于为分类机器学习算法绘制决策面的函数。
如何创建一个假设的数据集。
如何在假设的数据集上测试决策面绘图功能,以及如何获得对机器学习模型的决策过程的见解。
进一步改进
您可以使用预测的概率来查看模型对其预测的信心,而不是使用模型预测来创建决策面。
为更复杂的算法(如
神经网络)绘制决策面,并迭代几对特征。
题库