函数阈值域的问题。看图,我写的对否?

OTSU又称大津算法是nobuyuki otsu于1979年提出的一種寻找图像阈值的最大类间方差算法。

OTSU算法的步骤如下:

//统计灰度级中每个像素在整幅图的个数 //计算每个灰度级占图像中的分布 //遍历灰度级[0,255]计算最大类方差的阈值 //分别计算各类平均值 //依次寻找最大类间方差的阈值

当然经典的算法也有加入到Opencv库中,下面即是直接调用API的方式实現OTSU阈值化操作:

}上面函数阈值就是采用的THRESH_OTSU方式即Opencv封装好的大津算法的二值化。

当然也可以添加一个TrackBar来实时调整阈值(当前为固定的167)。

下面嘚两个图能直观的显示对应的阈值化类型的效果:

不同类型的阈值化有不同的效果:

在这里推荐一位大牛的主页:

鄙人才疏学浅如有疏漏还望指正。

}

被窝中的尿床大王迷失传奇私服發布网吃一粒糖

中国多地联手破获特大冻品走私案

}

欢迎关注天善智能我们是专注於商业智能BI,人工智能AI大数据分析与挖掘领域的垂直社区,学习问答、求职一站式搞定!

对商业智能BI、大数据分析挖掘、机器学习,pythonR等数据领域感兴趣的同学加微信:tstoutiao,邀请你进入数据爱好者交流群数据爱好者们都在这儿。

介绍:追求内心世界自由的灵魂

对模型预測结果无贡献的特征(即zero importance)

对模型预测结果只有很小贡献的特征(即low importance)

具有单个值的特征(即数据集中该特征取值的集合只有一个元素)

從上面可以看出feature-selector确实是非常基础的特征选择工具正因为非常的基础,所以才非常的常用(这也是为什么williamkoehrsen要写这个特征选择库的原因)茬拿到一个数据集的时候,往往都需要将上述类型的特征从数据集中剔除掉针对上面五种类型的特征,feature-selector分别提供以下五个函数阈值来对此处理:

在这里使用kaggle上的训练数据集原训练数据集稍微有点大,30+万行(150+MB)pandas导入数据都花了一点时间,为此我从原数据集中采样了1万+行数据莋为此次练习的数据集数据集采样代码如下:

 
 
 
 
该方法用于选择相关性大于指定值(通过correlation_threshold指定值)的feature。该方法同样适用于监督学习和非监督学習
 
图2. 选择的特征的相关矩阵图
 
图3. 所有特征相关矩阵图
该方法内部主要执行步骤如下:


3. 遍历 C_upper 的每一列(即每一个特征),如果该列的任何一个楿关值大于correlation_threshold则取出该列,并放到一个列表中(该列表中的feature即具有high 相关性的特征,之后会从数据集去除);
4. 到这一步做什么呢?回到源码看一波就知道了;


该方法用于选择对模型预测结果毫无贡献的feature(即zero importance从数据集中去除或者保留该feature对模型的结果不会有任何影响)。
GBM)然后甴GBM得到每一个feature的重要性分数,对所有特征的重要性分数进行归一化处理选择出重要性分数等于零的feature。
为了使计算得到的feature重要性分数具有佷小的方差identify_zero_importance内部会对GBM训练多次,取多次训练的平均值得到最终的feature重要性分数。同时为了防止过拟合identify_zero_importance内部从数据集中抽取一部分作为驗证集,在训练GBM的时候计算GBM在验证集上的某一metric,当metric满足一定条件时停止GBM的训练。
 
 
 


该方法内部主要执行了以下步骤:







8. 到这一步主要步驟完成了,其他部分请查看源码


该方法是使用identify_zero_importance计算的结果,选择出对importance累积和达到指定阈值没有贡献的feature(这样说有点拗口)即图5中蓝色虛线之后的feature。该方法只适用于监督学习identify_low_importance有点类似于PCA中留下主要分量去除不重要的分量。


该方法用于选择只有单个取值的feature单个值的feature的方差为0,对于模型的训练不会有任何作用(从信息熵的角度看该feature的熵为0)。该方法可应用于监督学习和非监督学习
 
 

从数据集去除选择的特征
上面介绍了feature-selector提供的特征选择方法,这些方法从数据集中识别了feature但并没有从数据集中将这些feature去除。feature-selector中提供了remove方法将选择的特征从数据集中去除并返回去除特征之后的数据集。
 

注意:调用remove函数阈值的时候必须先调用特征选择函数阈值,即identify_*函数阈值

 

一次性选择所有类型的特征
feature-selector除了能每次运行一个identify_*函数阈值来选择一种类型特征外,还可以使用identify_all函数阈值一次性选择5种类型的特征选
 
 
feature-selector属于非常基础的特征选擇工具,它提供了五种特征的选择函数阈值每个函数阈值负责选择一种类型的特征。一般情况下在对某一数据集构建模型之前,都需偠考虑从数据集中去除这五种类型的特征所以feature-selector帮你省去data-science生活中一部分重复性的代码工作。
如果有兴趣和充足的时间建议阅读一下feature-selector的代碼,代码量很少七百多行,相信看了之后对feature-selector各个函数阈值的实现思路以及相应代码实现有一定认识有心者还可以贡献一下自己的代码。
本文转载自公众号:Python数据科学


金州勇士4年3冠的成功秘诀!数据可视化分析告诉你答案
20张图表达程序员的心酸
干货 | 机器学习概念的深度解析(入门必看)
公众号后台回复关键词学习








回复 自然语言处理 自然语言处理之AI深度学习
}

我要回帖

更多关于 函数域 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信