optimization - 决策树的 CART 算法中的基尼指数如何最小化?
问题描述
例如,对于神经网络,我通过使用反向传播算法来最小化成本函数。决策树中的基尼指数是否有等价物?
CART 算法总是声明“选择集合 A 的分区,以最小化 Gini-Index”,但我如何在数学上实际得到该分区?
对此的任何输入都会有所帮助:)
解决方案
对于决策树,有不同的方法可以拆分年龄、体重、收入等连续变量。
A) 将连续变量离散化,以将其用作 DT 算法各个方面的分类变量。可以这样做:
- 在开始时仅一次,然后保持此离散化静态
- 在需要拆分的每个阶段,使用百分位数或区间范围或聚类对变量进行分桶
B) 拆分变量所有可能的不同值,看看基尼指数下降幅度最大的地方。这在计算上可能很昂贵。因此,有一些优化的变体,您可以对变量进行排序,而不是选择所有不同的值,而是选择两个连续值之间的中点作为拆分。例如,如果变量“体重”在数据点中有 70、80、90 和 100 公斤,尝试 75、85、95 作为拆分并选择最好的一个(基尼或其他杂质的降幅最高)
但是,在 python 中的 scikit-learn、R 中的 rpart和 pyspark 中的mlib 包中实现的确切分割算法是什么,以及它们在分割连续变量方面的区别是什么我不确定以及我仍在研究。
推荐阅读
- python - 如何使用python将图像插入特定的excel文件单元格?
- python - Tensorflow,GPU 比 CPU 快多少?(余弦相似度计算)
- java - 在 dp android 中设置文本大小后,文本在我的自定义视图中的不同屏幕上被拉伸
- javascript - Javascript 对象数组的控制台输出差异
- wxmaxima - Wxmaxima 中的线不够高,无法显示指数的指数 [已解决]
- sql-server - SQL Server 2016,游标
- openshift - Openshift 4.6 节点和主配置文件
- python-3.x - 一个搜索模块,用于搜索所有模型或使用 Django REST Framework 搜索过滤器从不同的应用程序中搜索。如何构建它?
- raspberry-pi - Raspberry PI:如何解决此“无法连接”问题?
- cmake - 如何使用 CMake FetchContent 链接 OpenSSL?