网站性能检测评分
注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。
方法
机器学习之确定最佳聚类数目的10种方法 - iDoNews 流量视频课程
原标题:机器学习之确定最佳聚类数目的10种方法雷锋网AI科技评论按,本文作者贝尔塔,原文载于知乎专栏数据分析与可视化,雷锋网AI科技评论获其授权发布。在聚类分析的时候确定最佳聚类数目是一个很重要的问题,比如kmeans函数就要你提供聚类数目这个参数,总不能两眼一抹黑乱填一个吧。之前也被这个问题困扰过,看了很多博客,大多泛泛带过。今天把看到的这么多方法进行汇总以及代码实现并尽量弄清每个方法的原理。数据集选用比较出名的wine数据集进行分析因为我们要找一个数据集进行聚类分析,所以不需要第一列的种类标签信息,因此去掉第一列。同时注意到每一列的值差别很大,从1到100多都有,这样会造成误差,所以需要归一化,用scale函数去掉标签之后就可以开始对数据集进行聚类分析了,下面就一一介绍各种确定最佳聚类数目的方法判定方法1.mclust包mclust包是聚类分析非常强大的一个包,也是上课时老师给我们介绍的一个包,每次导入时有一种科技感:)帮助文档非常详尽,可以进行聚类、分类、密度分析Mclust包方法有点“暴力”,聚类数目自定义,比如我选取的从1到20,然后一共14种模型,每一种模型都计算聚类数目从1到20的BIC值,最终确定最佳聚类数目,这种方法的思想很直接了当,但是弊端也就显然易见了——时间复杂度太高,效率低。635164可见该函数已经把数据集聚类为3种类型了。数目分别为63、51、64。再画出14个指标随着聚类数目变化的走势图下表是这些模型的意义它们应该分别代表着相关性(完全正负相关——对角线、稍强正负相关——椭圆、无关——圆)等参数的改变对应的模型,研究清楚这些又是非常复杂的问题了,先按下表,知道BIC值越大则说明所选取的变量集合拟合效果越好。上图中除了两个模型一直递增,其他的12模型数基本上都是在聚类数目为3的时候达到峰值,所以该算法由此得出最佳聚类数目为3的结论。mclust包还可以用于分类、密度估计等,这个包值得好好把玩。注意:此BIC并不是贝叶斯信息准则!!!最近上课老师讲金融模型时提到了BIC值,说BIC值越小模型效果越好,顿时想起这里是在图中BIC极大值为最佳聚类数目,然后和老师探讨了这个问题,之前这里误导大家了,Mclust包里面的BIC并不是贝叶斯信息准则。1.维基上的贝叶斯信息准则定义与log(likelihood)成反比,极大似然估计是值越大越好,那么BIC值确实是越小模型效果越好2.Mclust包中的BIC定义[3]这是Mclust包里面作者定义的“BIC值”,此BIC非彼BIC,这里是作者自己定义的BIC,可以看到,这里的BIC与极大似然估计是成正比的,所以这里是BIC值越大越好,与贝叶斯信息准则值越小模型越好的结论并不冲突2.Nbclust包Nbclust包是我在《R语言实战》上看到的一个包,思想和mclust包比较相近,也是定义了几十个评估指标,然后聚类数目从2遍历到15(自己设定),然后通过这些指标看分别在聚类数为多少时达到最优,最后选择指标支持数最多的聚类数目就是最佳聚类数目。可以看到有16个指标支持最佳聚类数目为3,5个指标支持聚类数为2,所以该方法推荐的最佳聚类数目为3.3.组内平方误差和——拐点图想必之前动辄几十个指标,这里就用一个最简单的指标——sumofsquarederror(SSE)组内平方误差和来确定最佳聚类数目。这个方法也是出于《R语言实战》,自定义的一个求组内误差平方和的函数。随着聚类数目增多,每一个类别中数量越来越少,距离越来越近,因此WSS值肯定是随着聚类数目增多而减少的,所以关注的是斜率的变化,但WWS减少得很缓慢时,就认为进一步增大聚类数效果也并不能增强,存在得这个“肘点”就是最佳聚类数目,从一类到三类下降得很快,之后下降得很慢,所以最佳聚类个数选为三另外也有现成的包(factoextra)可以调用选定为3类为最佳聚类数目用该包下的fviz_cluster函数可视化一下聚类结果4.PAM(PartitioningAroundMedoids)围绕中心点的分割算法k-means算法取得是均值,那么对于异常点其实对其的影响非常大,很可能这种孤立的点就聚为一类,一个改进的方法就是PAM算法,也叫k-medoidsclustering首先通过fpc包中的pamk函数得到最佳聚类数目3pamk函数不需要提供聚类数目,也会直接自动计算出最佳聚类数,这里也得到为3得到聚类数提供给cluster包下的pam函数并进行可视化5.Calinskycriterion这个评估标准定义[5]如下:其中,k是聚类数,N是样本数,SSw是我们之前提到过的组内平方和误差,SSb是组与组之间的平方和误差,SSw越小,SSb越大聚类效果越好,所以Calinskycriterion值一般来说是越大,聚类效果越好可以看到该函数把组内平方和误差和Calinsky都计算出来了,可以看到calinski在聚类数为3时达到最大值。3画图出来观察一下注意到那个红点就是对应的最大值,自带的绘图横轴纵轴取的可能不符合我们的直觉,把数据取出来自己单独画一下这个看上去直观多了。这就很清晰的可以看到在聚类数目为3时,calinski指标达到了最大值,所以最佳数目为36.Affinitypropagation(AP)clustering这个本质上是类似kmeans或者层次聚类一样,是一种聚类方法,因为不需要像kmeans一样提供聚类数,会自动算出最佳聚类数,因此也放到这里作为一种计算最佳聚类数目的方法。AP算法的基本思想是将全部样本看作网络的节点,然后通过网络中各条边的消息传递计算出各样本的聚类中心。聚类过程中,共有两种消息在各节点间传递,分别是吸引度(responsibility)和归属度(availability)。AP算法通过迭代过程不断更新每一个点的吸引度和归属度值,直到产生m个高质量的Exemplar(类似于质心),同时将其余的数据点分配到相应的聚类中[7]15该聚类方法推荐的最佳聚类数目为15,再用热力图可视化一下选x或者y方向看(对称),可以数出来“叶子节点”一共15个7.轮廓系数Averagesilhouettemethod轮廓系数是类的密集与分散程度的评价指标。a(i)是测量组内的相似度,b(i)是测量组间的相似度,s(i)范围从-1到1,值越大说明组内吻合越高,组间距离越远——也就是说,轮廓系数值越大,聚类效果越好[9]可以看到也是在聚类数为3时轮廓系数达到了峰值,所以最佳聚类数为38.GapStatistic之前我们提到了WSSE组内平方和误差,该种方法是通过找“肘点”来找到最佳聚类数,肘点的选择并不是那么清晰,因此斯坦福大学的Robert等教授提出了GapStatistic方法,定义的Gap值为[9]取对数的原因是因为Wk的值可能很大通过这个式子来找出Wk跌落最快的点,Gap最大值对应的k值就是最佳聚类数可以看到也是在聚类数为3的时候gap值取到了最大值,所以最佳聚类数为39.层次聚类层次聚类是通过可视化然后人为去判断大致聚为几类,很明显在共同父节点的一颗子树可以被聚类为一个类10.clustergram最后一种算法是TalGalili[10]大牛自己定义的一种聚类可视化的展示,绘制随着聚类数目的增加,所有成员是如何分配到各个类别的。该代码没有被制作成R包,可以去Galili介绍页面)里面的github地址找到源代码跑一遍然后就可以用这个函数了,因为源代码有点长我就不放博客里面了,直接放出运行代码的截图。随着K的增加,从最开始的两类到最后的八类,图肯定是越到后面越密集。通过这个图判断最佳聚类数目的方法应该是看随着K每增加1,分出来的线越少说明在该k值下越稳定。比如k=7到k=8,假设k=7是很好的聚类数,那分成8类时应该可能只是某一类分成了两类,其他6类都每怎么变。反应到图中应该是有6簇平行线,有一簇分成了两股,而现在可以看到从7到8,线完全乱了,说明k=7时效果并不好。按照这个分析,k=3到k=4时,第一股和第三股几本没变,就第二股拆成了2类,所以k=3是最佳聚类数目方法汇总与比较wine数据集我们知道其实是分为3类的,以上10种判定方法中:可见上述方法中有的因为数据太大不能运行,有的结果很明显不对,一个可能是数据集的本身的原因(缺失值太多等),但是也告诉了我们在确定最佳聚类数目的时候需要多尝试几种方法,并没有固定的套路,然后选择一种可信度较高的聚类数目。最后再把这10种方法总结一下:
快速落地AI应用 你可以参考这些平台和方法 行业视频课程
如果说前50年是AI的潜伏期,那么,2017就是人工智能的全面爆发年。我们在各行各业都可以看到AI的身影,包括各厂商推出的自研AI算法,以及满屏的基于AI的智能化探索和研究,无可否认的是,人工智能技术已经渗透到生活的各个领域当中。那么,在AI技术实际落地的过程中,会遇到什么样的瓶颈?基于深度学习的框架这么多,企业该如何选择最适合自己的那一条道儿?12月9日UCloud收官战,聚焦AI技术的落地实践,通过高可用的异构AI计算平台构建过程、如何流程化地生产和发布AI产品、及深度学习性能优化工具和实现等内容分享,为开发者在快速落地AI应用和产品上提供了一些可用的方法和途径。美团丁雪涛:美团配送智能网络规划系统美团配送已承担日千万级单量的配送,为上百万商家和千万级用户提供服务。这其中如何建立配送网络的规划工具和规划策略至关重要,不过,仅仅依靠人工来对百万级别的网络进行调整,不但效率低成本高,而且标准不一。来自美团的资深技术专家丁雪涛,就美团配送网络的总体设计和规划、商家配送范围的策略和算法演进、区域规划的策略等内容展开了深入分享。美团的整个配送网络整体设计包括三个核心概念:取件范围、送件范围以及配送范围。取件范围就表示加盟商的势力范围,每一个商家对应一个独立的配送团队,势力范围即配送小哥能够为哪些地方取件,送件范围的目的是为配送团队规划一个整体可以到达用户的地;配送范围是指商家的配送范围,只有在这个配送范围内的用户才可以看到这样一个商家。那么,美团怎样规划取件范围和配送范围呢?在取件范围的规划上,美团以效率、体验和公平为基准点,制定了生成划分方案,即基于聚类和多目标优化,来生成候选划分方案,通过迭代反馈,将生成的候选方案输入到仿真系统,通过真实历史订单骑手配置来模拟配送过程,得出效率和体验评估报告。在配送范围的规划上,美团首先将配送场景划分为常规配送范围、恶劣天气范围、闲时配送范围、新商家范围等等,通过block决策、导航路线画图、中间指标、商家推荐、机器学习预估多种技术手段,分析出不同场景下最优的配送范围。UCloud宋翔:构建商用AI平台的挑战与思考随后,UCloud高级研发工程师宋翔,结合UCloud在AIPaaS产品研发过程中遇到的问题,以及AI平台构建过程中的挑战与解决方案,为现场参会者深入讲解了如何构建一个高可用的异构AI计算平台。宋翔表示,目前,业界主流的AI算法和框架非常多,算法包括VCG、LSTM、RestNet、Fast-RCNN等等,而框架又有TensorFlow、Keras、Caffe、MXNet等,其组合种类更加让人眼花缭乱。那么,如何在繁杂的组合里选择合适的算法和框架?宋翔分享了AI平台构建需要考虑的五大要素:算法兼容性、平台扩展性、分布式话、纵向拓展、易用性,用户可以以这五大要素为基准点,根据平台构建的目的来搭配最适合的算法和框架。基于以上五大要素,UCloud构建了自有的AI基础平台,里面包含AI训练和AI在线服务两大核心功能。如下图所示,最上层是训练日志和TensorBoard框架,下面接着就是图形化界面,这里面主要是完成一些基本的部署操作,右侧是PythonSDK接口,接入层下面即为平台核心的AITrain和AIService,最底层封装了所有的硬件和存储接入。这个平台看起来虽然简单,但基本上包含了AI商用平台的常用功能和接口,可以说是麻雀虽小,五脏俱全。谈起AI平台的实现过程,宋翔表示,AI框架的构建最重要的两点就是保障平台的兼容性和可靠性。在兼容性上,UCloud采用了容器封装和数据接入两种方法实现环境的分离,将不同功能的AI框架、依赖环境、硬件设备、存储分隔开来,让不同的模块实现不同的功能。可靠性的实现上,UCloud主要采用负载均衡、请求调度算法优化、性能监控以及高可用的部署等方式,完成全局的弹性扩容。值得一提的是,UCloud在GitHub开源了自身基于AI基础平台的公共镜像库和SDK,用户可以通过开源的SDK,将UCloud开源的镜像库打包成自身可以应用的镜像,开发者可以再本地镜像使用,也可以放在UCloud的在线服务或者说训练的平台,这些都是完全兼容的。感兴趣的同学也可以访问链接https://github.com/ucloud/uai-sdk/,进行深入了解和演练。UCloud范融:如何轻装上阵玩转AI在产品化AI服务的过程中,普遍都会遇到基础资源管理、使用、封装等等问题,如何提升AI产品研发效率,简化非核心业务的研发流程是各个公司最关心的问题之一。来自UCloud高级研发工程师范融,现场结合动手实践,详细分享了如何流程化地生产和发布AI产品,节省开发时间和成本。本地开发AI之前,开发者需要提前配置基础的环境,包括CPU、GPU的支持,以及深度学习框架准备和科学计算库的加载等,基础环境配置完成之后,即可进行开发工作。下图为UCloudAI本地开发的整个过程,下层是基础环境的配置,上面白框是应用代码部分,这部分主要解决两个的问题,一个是数据的训练,一个是数据的预测。一般来说预测网络和训练网络是类似的,如果预测模型和预测程序不止在本地运行,则需要加一个Web服务框架。为了简化应用代码的部署和构建过程,UCloud提供了一些开源的工具和框架(上图蓝色框架的所有内容),包括辅助工具里面的代码打包和自动部署工具,开发者也可以在UCloud提供的SDK里面免费下载使用,省去许多部署烦恼。AI本地训练虽然安全性比较高,但在资源申请和迭代开发方面具有一定的局限性,如字眼扩容较慢,多任务穿行是等待时间较长,调参困难等,范融认为,合理的将部分的AITrain放在云端实现,可以有效的完成云端资源的按需申请、多任务并行处理以及任务参数记录等工作。在数据的上云实践方面,UCloud提供了比较完善的工具和方法,用户只需通过代码改写、打包镜像、上传训练数据以及启动任务四个步骤即可轻松上云。Intel何普江:深度学习性能优化工具及实践UCloud的两位讲师分享了AI落地实践的一些平台构建思路和方法,来自Intel何普江,则现场分享了基于深度学习的性能优化工具和实践经验,包括在高性能计算库(MKL和MKL-DNN)和框架(Intel发行版Caffe)的使用、注意事项和一些经验,以及基于CPU的高效的RNN设计实现过程。Intel数学核心函数库(MKL)是一套高度优化、线程安全的数学例程、函数,能加速加速机器学习、科学研究、工程、财务和设计等领域的数学处理,并提供了稠密及稀疏线性代数(BLAS,LAPACK,PARDISO),FFTs,vectormath,summarystatistics等支持,具有标准的API以及高度优化的特点,最大限度发挥多核核和SIMD指令的优势。MKL不同的是,MKL-DNN是一个开源的深度学习框架。下图为使用IntelMKL-DNN进行推理的过程,有两种方式可以实现这个过程,一种是训练好的模型,直接进入模型转换器,然后再用topo.txt(网络拓扑)生成Inference.cpp(基于MKL-DNN的Inference代码,在初始化的时候会加载weights.bin),这套逻辑需要用到Intel自身的网络拓扑模型的中间表示形式。另外一种方式是待topo.txt生成后,再用简单的代码转换器,实现轻量级的InferenceFramework.cpp(轻量级Inference框架,可以解析topo.txt并加载weights.bin)。caffe是一个清晰、可读性高、快速的深度学习框架,Intel发行版的Caffe同样也是开源框架,它基于BAIR/BVLCCaffe改进而来,Intel在BAIR/BVLCCaffe的基础上添加了流行检测网络的支持(如SSD),同时,也支持多节点训练以及CAFFE、MKL2017和MKLDNN三种引擎。在RNN的优化上,何普江介绍到,Intel主要对高效的GEMM实现、一些小操作的合并、并行化元素级操作、合理的数据排布以及低精度表示上进行了系列改进实践,优化之后的CPU性能基本上可以比GPU高甚至高出不少。写在最后这次分享从平台、方法和工具等不同角度,全面诠释和讲解了开发者该如何从0开始快速落地AI产品。虽然目前人工智能技术整体都还处在探索阶段,不过相信大家定能从这次分享中吸取精华,有所收获,在并将其应用在未来的开发者之路上。UCan下午茶2017系列沙龙,在走过了北京、上海、深圳、广州等一线城市后,于美丽的杭州湖畔完美收官。
不良资产估值方法有哪些,瑞威资本详谈 企业视频课程
不良资产的估值是一项较为复杂的过程,正确进行估值对于后续的处置起关键作用。在不良资产处置过程中需要跨界整合能力,尤其在地产领域,只有打通法律、金融、地产三个层面的壁垒,才能较为顺畅的处理不良资产所产生的风险。因此,不良资产估值是不良资产处置的前提。
(不良资产估值的方法有哪些,瑞威资本来详谈)
瑞威资本认为对抵质押物的估值判定,需要从两个方面来考虑,首先考虑抵押或质押资产快速变现的价值,其次要考虑企业的经营状况。若企业经营状况较好,企业可能会通过协商了结该债务,此时可以用一个区间来判断该项目的价值,以抵押或质押物快速变现的价格做为底价,以企业访谈过程中愿意偿还的金额作为最高价进行评估,测算该债权资产的价值。 瑞威资本认为准确的对不良资产包估值,有两种方法,即全面调查估值法和抽样调查估值法。全面调查指将所有的调查企业的估值累计相加后,即可获得资产包的估值;由于受时间和人员的限制,可以采取抽样调查的方法,根据抽样调查企业的估值除以抽样调查资产的债权金额获得一个估值系数,然后用该估值系数乘以资产包债权总金额,可以初步得出对总资产的估值,再根据一些特殊情况进行调整,最后得出整个资产包的估值。 因此,不良资产的估值判断,实际上除了资产本身的“硬件”条件,就是金融机构或投资人对基础资产即抵押物价值的定价和判断能力、以及对抵押物运营、盘活和价值提升的能力决定了投资的收益率。
(不良资产估值的方法有哪些,瑞威资本来详谈)
瑞威资本认为对抵质押物的估值判定,需要从两个方面来考虑,首先考虑抵押或质押资产快速变现的价值,其次要考虑企业的经营状况。若企业经营状况较好,企业可能会通过协商了结该债务,此时可以用一个区间来判断该项目的价值,以抵押或质押物快速变现的价格做为底价,以企业访谈过程中愿意偿还的金额作为最高价进行评估,测算该债权资产的价值。