分箱问题

问题

假设12个销售价格记录组已经排序如下:5, 10, 11, 13, 15,35, 50, 55, 72, 92, 204, 215 使用如下每种方法将它们划分成四个箱。等频(等深)划分时,15在第几个箱子内?等宽划分时在第几个箱?

分箱问题分为有监督分箱和无监督分箱。

无监督分箱

  1. 等宽分箱
         将变量的取值范围分为k个等宽的区间,每个区间当作一个分箱。
         在本问题中变量的取值范围为5–215,k为4.(215-5)/4=52.5划分点为57.5,110,162.5,4个箱中数据为
         A箱:5, 10, 11, 13, 15,35, 50, 55
         B箱:72, 92
         C箱:空
         D箱:204, 215
  2. 等频(等深)分箱
         把观测值按照从小到大的顺序排列,根据观测的个数等分为k部分,每部分当作一个分箱,例如,数值最小的1/k比例的观测形成第一个分箱,等等。
         在本问题中观测个数为12.k=4.每箱里有3个数据。
         A箱:5, 10, 11,
    B箱:13, 15,35
    C箱: 50, 55,72
    D箱:92
    ,204, 215 
  3. k聚类分箱
         用k均值聚类法将观测值聚为k类,但在聚类过程中需要保证分箱的有序性:第一个分箱中所有观测值都要小于第二个分箱中的观测值,第二个分箱中所有观测值都要小于第三个分箱中的观测值。手算太费时间,笔试中应该不会出现。

有监督分箱

在分箱时考虑因变量的取值,使得分箱后达到最小(minimumentropy)或最小描述长度(minimumdescriptionlength)。

(1)假设因变量为分类变量,可取值1,…,J。令pl(j)表示第l个分箱内因变量取值为j的观测的比例,l=1,…,k,j=1,…,J;那么第l个分箱的熵值为Jj=1[-pl(j)×log(pl(j))]。如果第l个分箱内因变量各类别的比例相等,即pl(1)=…=pl(J)=1/J,那么第l个分箱的熵值达到最大值;如果第l个分箱内因变量只有一种取值,即某个pl(j)等于1而其他类别的比例等于0,那么第l个分箱的熵值达到最小值。

(2)令rl表示第l个分箱的观测数占所有观测数的比例;那么总熵值为kl= 1rl×Jj=1[-pl(j)×log(pl(j ))]。需要使总熵值达到最小,也就是使分箱能够最大限度地区分因变量的各类别。

  • 19
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Python中,可以使用lambda函数进行分箱操作。lambda函数是一种匿名函数,可以在一行代码中定义和使用函数。使用lambda函数进行分箱的一种常见方法是使用pandas的qcut()函数。在较新版本的Python中,pandas.qcut()函数提供了一个duplicates参数,可以解决等频分箱中遇到重复值过多引起报错的问题。 另外,函数本身就相当于一个集装箱,它把之前编写的代码装进去,并提供参数和返回值。在定义函数时,可以通过lambda函数来创建简单的函数。对于分箱操作,可以使用lambda函数来指定分箱的逻辑和条件。 以下是一个使用lambda函数进行分箱的示例代码: ```python import pandas as pd # 定义lambda函数来指定分箱的逻辑 pct_rank_qcut = lambda series, n: pd.qcut(series, n, duplicates='drop') # 使用lambda函数进行分箱 data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] result = pct_rank_qcut(data, 3) print(result) ``` 在这个示例中,我们定义了一个lambda函数pct_rank_qcut,它接受一个series和一个n作为参数,并使用pandas的qcut函数进行分箱操作。我们将数据[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]分成3个箱子,并打印结果。请注意,我们在调用qcut函数时指定了duplicates参数为'drop',以处理重复值过多的情况。 希望这个例子能帮助您理解如何使用lambda函数进行分箱操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [python分箱_python 分箱_python等宽分箱 - 云+社区 - 腾讯云](https://blog.csdn.net/weixin_39818521/article/details/110369858)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [基于python 等频分箱qcut问题的解决](https://download.csdn.net/download/weixin_38631389/13736342)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值